Frambuesa pi

Configurar la automatización del hogar Raspberry Pi

Configurar la automatización del hogar Raspberry Pi
Una de las cosas más importantes para la automatización del hogar es controlar la CA de alto voltaje utilizando una CC de bajo voltaje. Para controlar la CA de alto voltaje de Raspberry Pi, necesitará un interruptor de relé de 5V. Puede controlar el interruptor de relé utilizando los pines GPIO de Raspberry Pi. El interruptor de relé puede controlar los electrodomésticos de CA a través de Raspberry Pi.

Este artículo le mostrará cómo usar Raspberry Pi y el interruptor de relé de 5V para encender y apagar una bombilla desde su dispositivo móvil. El artículo incluye una aplicación web a la que puede acceder desde cualquier dispositivo de su red y controlar cualquier electrodoméstico de CA en su hogar de forma inalámbrica. Entonces, comencemos con nuestro sencillo experimento de automatización del hogar Raspberry Pi.

Cosas que necesitará

Si desea utilizar su Raspberry Pi sin cabeza (a través de SSH o VNC), necesitará lo siguiente:

1) Raspberry Pi 3 o Raspberry Pi 4.
2) Interruptor de relé de 5 V.
3) Cables eléctricos.
4) 3 cables de conexión hembra a hembra.
5) bombilla de CA.
6) portalámparas AC.
7) enchufe de CA.
8) Herramienta cortadora de alambre y pelacables.
9) Destornillador CR-V 3.
10) Adaptador de corriente Micro-USB (Raspberry Pi 3) o USB Type-C (Raspberry Pi 4).
11) Tarjeta microSD de 16 GB o 32 GB con sistema operativo Raspberry Pi flasheado.
12) Conectividad de red en Raspberry Pi.
13) Computadora portátil o de escritorio para acceso de escritorio remoto VNC o acceso SSH a Raspberry Pi.

Si no desea acceder a Raspberry Pi de forma remota a través de SSH o VNC, también necesitará lo siguiente:

14) Un monitor.
15) Cable HDMI o micro-HDMI.
16) Un teclado.
17) Un ratón.

Si necesita ayuda para flashear la imagen del sistema operativo Raspberry Pi en la tarjeta microSD, consulte el artículo Cómo instalar y usar Raspberry Pi Imager.

Si es un principiante en Raspberry Pi y necesita ayuda para instalar el sistema operativo Raspberry Pi en Raspberry Pi, consulte el artículo Cómo instalar el sistema operativo Raspberry Pi en Raspberry Pi 4.

Además, si necesita ayuda con la configuración sin cabeza de Raspberry Pi, consulte el artículo Cómo instalar y configurar el sistema operativo Raspberry Pi en Raspberry Pi 4 sin monitor externo.

A continuación se muestran imágenes de todas las herramientas necesarias.

Encendido de Raspberry Pi

A continuación, conecte el cable de alimentación a Raspberry Pi y encienda Raspberry Pi.

Una vez que Raspberry Pi está encendido, puede conectarse a Raspberry Pi a través de VNC o SSH. O puede conectar un teclado, un mouse y un monitor a Raspberry Pi para acceder directamente.

Configuración de pines de relé de 5 V

Un relé es básicamente un interruptor. Pero, a diferencia de un interruptor tradicional, un relé se puede controlar con una pequeña cantidad de voltaje de CC.

El relé de 5 V es muy fácil de usar. Tiene dos lados: un lado se usa para controlar el relé a través de CC de bajo voltaje (de Raspberry Pi), y el otro lado se usa para controlar el CA de alto voltaje (i.mi., la bombilla), dependiendo del estado del relé.


Por un lado, el relé tiene dos LED (uno rojo y otro verde) y tres pines (EN, GND, y VCC). Estos tres pines se utilizan para controlar el relé de Raspberry Pi.

Los dos primeros pines en el otro lado se utilizan para controlar el electrodoméstico de CA.

Conexión del relé de 5 V a Raspberry Pi

Para conectar el relé de 5 V a Raspberry Pi, necesitará tres cables de conexión hembra a hembra.

Enchufe un lado de los cables de conexión al EN (cable amarillo), GND (cable negro), y VCC (cable rojo) pines en el relé de 5 V, como se muestra a continuación.


El otro lado de los cables va a los pines del encabezado GPIO de Raspberry Pi, como se muestra en la imagen a continuación.

El cable rojo debe entrar en el PIN 2 (VCC) de Raspberry Pi.
El cable negro debe entrar en el PIN 6 (TIERRA) de Raspberry Pi.
El cable amarillo debe entrar en el PIN 7 (GPIO 4) de Raspberry Pi.


Una vez que el relé de 5 V está conectado a Raspberry Pi, debería verse como se muestra en la imagen a continuación.

Permitir el acceso de GPIO al usuario de inicio de sesión

Para permitir el acceso a los pines GPIO, el usuario de inicio de sesión predeterminado de Raspberry Pi OS Pi debe agregarse a la gpio grupo.

Puede agregar el Pi usuario al gpio grupo con el siguiente comando:

$ sudo usermod -aG gpio $ (whoami)


Para que los cambios surtan efecto, reinicie Raspberry Pi con el siguiente comando:

$ sudo reiniciar

Crear un directorio de proyectos

También es una buena idea mantener organizados todos los archivos del proyecto.

Para mantener organizados los archivos del proyecto, cree el directorio del proyecto ~ / www y los subdirectorios necesarios con el siguiente comando:

$ mkdir -pv ~ / www / plantillas, estáticas


Una vez que se crea el directorio del proyecto, navegue al directorio del proyecto de la siguiente manera:

$ cd ~ / www

Cambio del relé de 5 V de Raspberry Pi

Ahora que ha conectado el relé de 5V a Raspberry Pi, cambiará el relé de Raspberry Pi utilizando el lenguaje de programación Python.

NOTA: Traspuesta es un término usado en electrónica. Cambiar significa controlar (i.mi. encender / apagar) un determinado dispositivo electrónico.

Para experimentar con la conmutación del relé utilizando el lenguaje de programación Python, cree la nueva prueba de secuencia de comandos de Python.py en el directorio del proyecto de la siguiente manera:

$ nano prueba.py


Escriba las siguientes líneas de códigos en la prueba.secuencia de comandos de Python.

desde gpiozero import LED
desde el momento de importar el sueño
mientras que es verdadero:
relé = LED (4)
imprimir ("Relay: On")
dormir (5)
relé.cerca()
imprimir ("Relay: Off")
dormir (5)

Una vez que haya terminado, presione + X seguido por Y y para salvar el prueba.py Secuencia de comandos de Python.


Aquí, la línea 1 importa DIRIGIÓ desde el gpiozero biblioteca, y la línea 2 importa el dormir función de la hora Biblioteca.


Las líneas 6 a 14 están dentro de un bucle infinito.


La línea 6 inicializa un LED en el GPIO 4 de Raspberry Pi, que está conectado a la EN pin del relé.


La línea 8 enciende el relé usando el en() método.

La línea 9 imprime un mensaje en la consola usando el impresión() función.

La línea 10 retrasa la ejecución de la siguiente línea de código durante cinco segundos utilizando el dormir() función.


La línea 12 apaga el relé usando el cerca() método.

De la misma forma, la línea 9 imprime un mensaje en la consola usando el impresión() función y la línea 10 retrasa la ejecución de la siguiente línea de código durante 5 segundos utilizando el dormir() función.


A continuación, ejecute el prueba.py Secuencia de comandos de Python de la siguiente manera:

prueba $ python3.py


La prueba.py La secuencia de comandos de Python debería comenzar a cambiar el relé de 5V. Debería escuchar un sonido de clic cada cinco segundos. Cuando el relé cambia de estado (de encendido a apagado o de apagado a encendido), hace un ruido de clic. Esto significa que el relé está funcionando correctamente.


Cuando el relé está apagado (funcionamiento normal - la carga de CA está desconectada), solo el rojo El LED debería encenderse, como puede ver en la imagen de abajo.


Cuando el relé está en el estado encendido (la carga de CA está conectada), tanto el verde LED y la rojo El LED debería encenderse, como puede ver en la imagen de abajo.


Una vez que se complete la prueba, presione + C para terminar el prueba.py texto.

Conexión de la bombilla de CA al relé de 5 V

El relé de 5 V ahora debería funcionar correctamente. Ahora, conectará su electrodoméstico de CA (una bombilla, en este caso) al relé de 5V.

Primero, corte el cable eléctrico negro conectado a la bombilla con un cortador de alambre.


Una vez que el cable eléctrico negro conectado a la bombilla se haya cortado con un cortador de alambre, debe verse como se muestra en la imagen a continuación.


A continuación, retire la capa exterior para exponer aproximadamente ½ pulgada del cable eléctrico, como se muestra en la imagen a continuación.


Luego, doble los cables expuestos, como se muestra en la imagen de abajo.


Aflojar los tornillos marcados del relé con un destornillador CV-3.


Inserta los cables expuestos que pelaste y doblaste anteriormente en los dos terminales de tornillo y aprieta los tornillos con un destornillador CV-3.

Prueba de la conmutación del relé después de conectar la carga de CA

Una vez que la carga de CA esté conectada al relé de 5 V, conecte el enchufe de la bombilla al enchufe de la pared.


Ejecutar el prueba.py Secuencia de comandos de Python desde el directorio del proyecto de la siguiente manera:

prueba $ python3.py


La prueba.py La secuencia de comandos de Python debería comenzar a cambiar el relé de 5 V, que, a su vez, cambiará la bombilla de CA de alto voltaje a intervalos de cinco segundos. La bombilla de CA debe permanecer encendida durante cinco segundos, luego permanecer apagada durante cinco segundos, y así sucesivamente.

La bombilla está apagada en la imagen de abajo.


La bombilla está encendida en la imagen de abajo.


Como puede ver, podemos cambiar el relé y controlar la bombilla de CA de alto voltaje utilizando el lenguaje de programación Python. Entonces, presione + C para terminar el prueba.py texto.

Pasemos ahora a la siguiente sección.

Escribir la aplicación web de automatización del hogar

En esta sección, le mostraré cómo escribir una aplicación web basada en API utilizando el lenguaje de programación Python. Puede utilizar la aplicación web para controlar el relé y los electrodomésticos de CA o dispositivos eléctricos conectados al relé desde un navegador web.

NOTA: Todos los códigos que se muestran en esta sección están disponibles en mi repositorio de GitHub shovon8 / raspberry-pi-home-automation. Si lo desea, puede clonar mi repositorio de GitHub y omitir todos los códigos.

Crea el servidor.Python en el directorio del proyecto de la siguiente manera:

$ nano servidor.py


Escriba las siguientes líneas de códigos en el servidor.py Secuencia de comandos de Python.

desde el matraz import Flask, jsonify, url_for, render_template
de gpiozero import LED
desde uuid import uuid4
habitaciones =
habitaciones ['Habitación 1'] = [
'id': uuid4 (),
'nombre': 'Luz 1',
'icon': 'fa fa-bombilla',
'status': Falso,
'relayPin': 4,
'relayInstance': Falso
,
'id': uuid4 (),
'name': 'Fan 1',
'icono': 'fa fa-fan',
'status': Falso,
'relayPin': 6,
'relayInstance': Falso
]
habitaciones ['Baño 1'] = [
'id': uuid4 (),
'nombre': 'Luz 1',
'icon': 'fa fa-bombilla',
'status': Falso,
'relayPin': 5,
'relayInstance': Falso
]
app = Frasco (__ nombre__)
aplicación.config ['SEND_FILE_MAX_AGE_DEFAULT'] = 0
@app.ruta('/')
def hogar ():
return render_template ('./índice.html ', habitaciones = habitaciones)
def toggle_appliance_status (id):
para espacio en habitaciones:
para electrodomésticos en habitaciones [habitación]:
si str (dispositivo ['id']) == id:
si el dispositivo ['relayInstance']:
aparato ['relayInstance'].cerca()
aparato ['relayInstance'] = Falso
demás:
aparato ['relayInstance'] = LED (aparato ['relayPin'])
aparato ['relayInstance'].en()
aparato ['estado'] = no aparato ['estado']
volver verdadero
falso retorno
@app.ruta ('/ aparato / alternar /')
def appliance_toggle (id):
return jsonify ('estado': toggle_appliance_status (id))

Una vez que haya terminado, presione + X seguido por Y y para salvar el servidor.py Secuencia de comandos de Python.


Aquí, las líneas 1-3 importan todos los componentes necesarios de sus respectivas bibliotecas.


La línea 5 crea un vacío habitaciones diccionario. En este diccionario, almacenaremos todos los detalles del aparato de CA que queremos controlar desde la aplicación web.


La habitaciones los detalles se almacenan en las líneas 7-29.


Analicemos la estructura de datos de una de las salas.

Aquí, el nombre de la habitación será Habitación 1. Entonces, Habitación 1 es la clave del habitaciones diccionario.


La Habitación 1 la clave contiene una matriz como valor. La cantidad de elementos de la matriz es igual a la cantidad de electrodomésticos de CA que tiene en esa habitación y que también desea controlar desde la aplicación web. En este caso, tenemos dos electrodomésticos de CA que queremos controlar: Luz 1 y Ventilador 1.


Cada definición de electrodomésticos tiene un identificación. La identificación es un UUID generado aleatoriamente. Esto se usa para identificar qué habitación queremos controlar usando la API.

Un electrodoméstico también tiene todo lo siguiente:

  • nombre (Luz 1 en este caso)
  • icono (Clase de icono Font Awesome, ya que usaremos Font Awesome para los iconos)
  • estado (verdadero Si en y Falso Si apagado)
  • relayPin (el número de pin GPIO utilizado para controlar el relé conectado al electrodoméstico de CA)
  • relayInstance (el inicializado DIRIGIÓ objeto de gpiozero biblioteca responsable de controlar el pin GPIO respectivo - relayPin)


La línea 31 inicializa un servidor web Python de matraz.

La línea 32 configura el servidor web del matraz.


Las líneas 34-36 envían el índice.html archivo de la plantillas/ directorio cuando visita la aplicación web de automatización del hogar.

Usos del matraz Jinja2 lenguaje de plantillas para representar el índice.html expediente. Entonces, he pasado el habitaciones diccionario al índice.html expediente. Jinja2 renderizará la página de inicio usando el habitaciones datos.


La función toggle_appliance_status () en las líneas 39-52 se usa para encender el electrodoméstico si está apagado y apagar el electrodoméstico si está encendido usando el electrodoméstico identificación.

Vuelve Cierto si la operación de alternancia es exitosa. Si hay un error, volverá Falso.


Las líneas 55-57 se utilizan para alternar un electrodoméstico usando el / aparato / alternar / Punto final API del servidor web. Aquí, identificación es la ID del electrodoméstico.


Crea el índice.html archivo en el plantillas/ directorio de su proyecto de la siguiente manera:

$ nano plantillas / índice.html

Escriba las siguientes líneas de códigos en el índice.html texto.








Automatización del hogar con Raspberry Pi



Automatización del hogar Raspberry Pi


% por espacio en habitaciones%

habitación



% para electrodomésticos en habitaciones [habitación]%


dispositivo ['nombre']

% endfor%


% endfor%



Una vez que haya terminado, presione + X seguido por Y y para salvar el índice.html expediente.


Crear un estilo.css archivo en el estático/ directorio de su proyecto de la siguiente manera:

$ nano estático / estilo.css


Escriba las siguientes líneas de códigos en el estilo.css expediente.

@import url ('https: // fuentes.googleapis.com / css2?family = BenchNine: [correo electrónico protegido]; 400; 700 & display = swap ');
*
margen: 0;
acolchado: 0;
familia de fuentes: 'BenchNine', sans-serif;

#content> h1
fondo: gradiente lineal (a la derecha, rgb (112, 24, 163), rgb (86, 127, 240));
color: #fff;
alineación de texto: centro;
relleno: .5em 0;

div.habitación
margen: .5em;
borde: rgb sólido de 2px (112, 24, 163);
radio del borde: 5px;

div.habitación h2
/ * fondo: rgb (9, 76, 121); * /
fondo: gradiente lineal (a la derecha, rgb (112, 24, 163), rgb (86, 127, 240));
acolchado: 0 0 0 .5em;
color: #fff;

div.electrodomésticos
margen: .5em .5em 0 0;
pantalla: flex;
envoltura flexible: envoltura;

div.aparato
borde: rgb sólido de 2px (112, 24, 163);
radio del borde: 5px;
ancho: 110px;
altura: 120px;
alineación de texto: centro;
margen: 0 0 .5em .5em;
pantalla: flex;
flex-direction: columna;

div.aparato i.fa
tamaño de fuente: 4em;
flex-grow: 1;
acolchado-top: 0.3em;
color: rgb (204, 50, 50);

div.dispositivo [data-active = "active"] i.fa
color: rgb (32, 177, 51);

div.intervalo de dispositivos
bloqueo de pantalla;
font-weight: negrita;
fondo: rgb (112, 24, 163);
color: #fff;

Una vez que haya terminado, presione + X seguido por Y y para salvar el estilo.css expediente.


Crear un aplicación.js archivo en el estático/ directorio de su proyecto de la siguiente manera:

$ nano static / aplicación.js


Escriba las siguientes líneas de códigos en el aplicación.js expediente.

ventana.addEventListener ('cargar', principal);
function main ()
function toggleApplianceState (e)
var id = e.ruta [1].identificación;
var http = new XMLHttpRequest ();
http.onreadystatechange = function ()
si esto.readyState === 4 && esto.estado === 200)
si (JSON.analizar (esto.responseText).estado === verdadero)
si (e.ruta [1].hasAttribute ('datos activos'))
mi.ruta [1].removeAttribute ('datos activos')
demás
mi.ruta [1].setAttribute ('datos activos', 'activos')




http.open ("OBTENER", '/ appliance / toggle / $ id', verdadero);
http.enviar();

var aparatos = documento.getElementsByClassName ('dispositivo');
para (i = 0; i < appliances.length; i++)
electrodomésticos [i].addEventListener ('clic', toggleApplianceState);

Una vez que haya terminado, presione + X seguido por Y y para salvar el aplicación.js expediente.


Aquí, la línea 1 corre el principal() función cuando la página web termina de cargarse.

En el índice.html archivo, cada electrodoméstico se adjunta en un aparato clase. Las líneas 26-29 se utilizan para seleccionar cada electrodoméstico de la página web y adjuntar el hacer clic evento al aparato. Cuando alguien hace clic en un electrodoméstico desde la página web, el toggleApplianceState () la función se ejecutará.


En las líneas 4-23, el toggleApplianceState () La función se utiliza para solicitar la / aparato / alternar / punto final del servidor web para cambiar el estado del electrodoméstico en el que se hizo clic. La solicitud se realiza en segundo plano a través de AJAX. Una vez que se recibe la respuesta, la página web se actualiza en consecuencia.


Navega al estático/ directorio en el directorio de su proyecto de la siguiente manera:

$ cd estática /


Descarga Font Awesome con el siguiente comando:

$ wget https: // usar.fontawesome.com / releases / v5.15.1 / fontawesome-free-5.15.1 web.Código Postal


Una vez que se descargue Font Awesome, debería encontrar el nuevo archivo zip fontawesome-free-5.15.1 web.Código Postal en el estático/ directorio.

$ ls -lh


Descomprime el fontawesome-free-5.15.1 web.Código Postal archivo con el siguiente comando:

$ descomprimir fontawesome-free-5.15.1 web.Código Postal


La fontawesome-free-5.15.1 web.Código Postal el archivo ahora debería estar descomprimido.


El nuevo directorio fontawesome-free-5.15.1-web / debe crearse en el directorio estático /, como puede ver en la captura de pantalla a continuación.

$ ls -lh

Cambiar el nombre del directorio fontawesome-free-5.15.1-web / a fontawesome / con el siguiente comando:

$ mv -v fontawesome-free-5.15.Fuente de 1 web


Ahora, ya no necesitas el fontawesome-free-5.15.1 web.Código Postal expediente. Entonces, quita el fontawesome-free-5.15.1 web.Código Postal archivo con el siguiente comando:

$ rm -v fontawesome-free-5.15.1 web.Código Postal


La estático/ La estructura del directorio debe verse como se muestra en la captura de pantalla a continuación.

$ ls -lh


Navegar de regreso al directorio del proyecto ~ / www como sigue:

$ cd…

Prueba de la aplicación web de automatización del hogar

Para probar la aplicación web de automatización del hogar, ejecute el siguiente comando en el directorio de su proyecto:

$ FLASK_APP = servidor.py matraz correr


La aplicación web debería estar disponible en el puerto 5000 de su Raspberry Pi.


Desde el navegador web Chromium, visite http: // localhost: 5000. La aplicación web de domótica debería cargarse.

Haga clic en el icono de la bombilla, indicado en la imagen a continuación.


La bombilla de CA ahora debería estar encendida. El color del icono también debe cambiar a verde, lo que indica que la bombilla está encendida.


Entonces, la aplicación web de automatización del hogar está funcionando. prensa + C para terminar el servidor web.

Creación de un servicio Systemd para la aplicación web de automatización del hogar

En esta sección, le mostraré cómo crear un archivo de servicio systemd para la aplicación web de automatización del hogar para que se inicie automáticamente al arrancar.

Primero, crea el raspi-domótica.Servicio archivo en el directorio de su proyecto de la siguiente manera:

$ nano raspi-domótica.Servicio

Escriba las siguientes líneas en raspi-home-automation.archivo de servicio.

[Unidad]
Descripción = Servicio web de automatización del hogar Raspberry Pi
Después = red.objetivo
[Servicio]
WorkingDirectory = / home / pi / www
Entorno = FLASK_APP = servidor.py
Entorno = FLASK_ENV = producción
ExecStart = / usr / bin / flask run --host = 0.0.0.0
StandardOutput = heredar
StandardError = heredar
Reiniciar = siempre
Usuario = pi
[Instalar en pc]
WantedBy = multiusuario.objetivo

Una vez que haya terminado, presione + X seguido por Y y para salvar el raspi-domótica.Servicio expediente.


Copia el raspi-domótica.Servicio archivo al / etc / systemd / system / directorio con el siguiente comando:

$ sudo cp -v raspi-domótica.servicio / etc / systemd / system /


Vuelva a cargar los demonios systemd para que los cambios surtan efecto de la siguiente manera:

$ sudo systemctl daemon-reload


Añade el raspi-domótica servicio al inicio del sistema de Raspberry Pi OS con el siguiente comando:

$ sudo systemctl habilitar raspi-home-automation.Servicio


Reinicie Raspberry Pi con el siguiente comando:

$ sudo reiniciar


Una vez que arranca la Raspberry Pi, raspi-domótica el servicio debe estar activo / en ejecución, como puede ver en la captura de pantalla a continuación.

$ sudo systemctl status raspi-home-automation.Servicio

Acceso a la aplicación web de automatización del hogar desde otros dispositivos

Para acceder a la aplicación web de automatización del hogar desde otros dispositivos en su red doméstica, necesitará conocer la dirección IP de su dispositivo Raspberry Pi.

Puede encontrar la dirección IP de su dispositivo Raspberry Pi 4 en la interfaz de administración web de su enrutador doméstico. En mi caso, la dirección IP es 192.168.0.103. Esto será diferente para ti. Entonces, asegúrese de reemplazar mi IP con la suya a partir de ahora.


Si tiene acceso a la consola Raspberry Pi, también puede ejecutar el siguiente comando para encontrar la dirección IP.

$ nombre de host -I


Una vez que conozca la dirección IP de su dispositivo Raspberry Pi, podrá acceder a ella desde cualquier dispositivo de su red doméstica.

Como puede ver en la captura de pantalla a continuación, he accedido a la aplicación web de automatización del hogar desde mi teléfono inteligente Android.


Asegúrese de enchufar el enchufe de la bombilla a la toma de corriente de la pared.


La bombilla debe estar apagada por defecto.


Si toca el icono de la bombilla de la aplicación web de automatización del hogar, el color del icono de la bombilla debería cambiar a verde, lo que indica que la bombilla está encendida.


Como puede ver en la imagen de abajo, la bombilla está encendida.

Conclusión

Este artículo le mostró cómo usar un relé de 5V para controlar un dispositivo eléctrico de CA de alto voltaje desde Raspberry Pi utilizando el lenguaje de programación Python. El artículo también le mostró cómo escribir una aplicación web de matraces Python basada en API para controlar el relé desde el navegador web. Este artículo debería ayudarlo a comenzar con la automatización del hogar con Raspberry Pi.

Vuelva a asignar los botones del mouse de manera diferente para diferentes programas con X-Mouse Button Control
Tal vez necesite una herramienta que pueda hacer que el control de su mouse cambie con cada aplicación que use. Si este es el caso, puede probar una a...
Revisión del mouse inalámbrico Microsoft Sculpt Touch
Recientemente leí sobre el Microsoft Sculpt Touch mouse inalámbrico y decidí comprarlo. Después de usarlo por un tiempo, decidí compartir mi experienc...
Trackpad en pantalla y puntero del mouse AppyMouse para tabletas Windows
Los usuarios de tabletas a menudo pierden el puntero del mouse, especialmente cuando son habituales para usar las computadoras portátiles. Los teléfon...