SHome

SHome es un proyecto para controlar la casa desde una aplicación. Voy a actualizar la app y añadiré más opciones. Es un proyecto que hice hace un tiempo, pero no se actualizó desde hace mucho y es hora de darle vida a este proyecto. La información de las nuevas actualizaciones las subiré a mi blog en la categoría SHOME, por lo que le recomiendo que se suscriba a mi blog para recibir una notificación cuando publique nuevas publicaciones sobre mis proyectos. Este proyecto se basa en el microcontrolador Arduino (como la mayoría de mis proyectos). El bajo costo de este microcontrolador, su disponibilidad y fácil uso lo hacen ideal para este tipo de proyectos. Aquí explicaré en detalle cómo funciona la aplicación y cómo programar el Arduino cómo conectar el circuito e.t.c. El smartphone va a todos lados con nosotros, ni siquiera podemos imaginarnos la vida sin él, por eso es muy cómodo usar nuestro teléfono inteligente como control remoto para proyectos de domótica. Como siempre nuestro smartphone está con nosotros, podemos controlar la temperatura, la luz, la humedad, entre otras cosas de una manera cómoda. Es la idea de este proyecto, controlar desde nuestro teléfono inteligente los dispositivos eléctricos sin tener otros controles. Para poder enviar los comandos a Arduino usaremos la conexión bluetooth. Personalmente, me gusta usar el módulo bluetooth HC-05 o HC-06 porque es fácil de usar, tiene un bajo costo y es fácil de obtener. El funcionamiento es bastante simple, el smartphone envía comandos por bluetooth y Arduino los recibe, y de acuerdo con el comando recibido activa o desactiva los relés. Los relés pueden encender y apagar las luces de la casa u otros dispositivos electrónicos, lo que queramos. También tenemos un sensor de temperatura y humedad DHT22 conectado, este sensor controla la temperatura y la humedad. Dentro de la aplicación podemos establecer un límite, por ejemplo, si supera este límite, la temperatura activa un ventilador para bajar la temperatura, o si la temperatura es demasiado baja se activa la calefacción. Lo mismo ocurre con la humedad, podemos establecer un valor para la humedad y si supera este valor se activa un deshumidificador. Estas son las operaciones básicas de este proyecto. Ahora veamos con más detalle lo que necesitaremos y cómo ensamblar todo esto.

Componenеntes necesarios:

Paso 1: Vincular módulo bluetooth con smartphone

Lo primero que tenemos que hacer es vincular el módulo bluetooth que vamos a utilizar. Esto solo lo hacemos una vez y el módulo quedará guardado en la memoria de nuestro smartphone, por lo que no tendremos que vincular el módulo bluetooth cada vez.
Si no sabe cómo vincular el módulo bluetooth, siga leyendo, si ya lo tiene vinculado o si ya sabe cómo hacerlo, puede omitir este paso. Para poder vincular el bluetooth módulo con nuestro smartphone, debemos conectar la alimentación al módulo bluetooth. Simplemente podemos conectar el GND del módulo bluetooth al GND del arduino y el pin +5 v del módulo bluetooth al pin 5v del arduino. Una vez conectado, enchufamos el arduino a nuestra computadora y el circuito estará alimentado. Si todo está bien, la luz del módulo bluetooth debería parpadear rápidamente. Para vincular nuestro módulo con el smartphone, accedemos a la configuración del smartphone en la sección Conexiones / Bluetooth y activemos el Bluetooth (si está desactivado). Cuando está activado presionamos el botón “Buscar”. Cuando smartphone encuentre nuestro módulo, presionamos el nombre del módulo bluetooth y comenzará el proceso de emparejamiento, en unos segundos aparecerá que el módulo bluetooth ya está vinculado. Listo, tenemos el módulo bluetooth emparejado con nuestro smartphone!

1

2

3

4

5

Paso 2: Seleccionar módulo bluetooth

Ahora tenemos que seleccionar en la aplicación  el módulo que vamos a utilizar. Como ya hemos vinculado el módulo Bluetooth, estará en la lista de dispositivos Bluetooth vinculados. Vamos a seleccionar el módulo bluetooth en la aplicación. Primero debemos activar el bluetooth para poder seleccionar el módulo  bluetooth de la lista, luego, en la pantalla de inicio de la aplicación, seleccionamos “Configuración”, abriremos el menú de Configuración y en la lista de configuraciones seleccionaremos “Elegir módulo bluetooth” , veremos la lista de todos los dispositivos vinculados con nuestro smartphone, y debemos elegir el módulo Bluetooth que vamos a utilizar. Una vez seleccionado se guardará, no tenemos que volver a seleccionarlo a menos que queramos usar otro módulo Bluetooth.

1

2

3

Paso 3: Crear una lista de dispositivos para controlar

Tenemos todo listo para empezar! Ahora podemos crear la lista de dispositivos eléctricos que vamos a encender / apagar. Podemos encender / apagar la luz, el ventilador, la calefacción o lo que queramos. En la pantalla principal presionamos el botón amarillo y se abrirá otra pantalla donde podemos crear la lista de dispositivos. En la pantalla que se abrió, presione el botón “nuevo elemento” (es el botón con tres líneas y el símbolo más “+“).
Al presionar el botón “nuevo elemento” se abren dos campos para completar. El primer campo es el nombre con el que reconoceremos el dispositivo que vamos a encender / apagar. El segundo campo es el valor que se enviará al arduino cuando presionamos el botón “activar / desactivar“, es importante que no se olvide del valor que ponemos, ¡ya que lo necesitaremos para el código de arduino! El valor es un símbolo o una letra (las letras mayúsculas y minúsculas son dos valores diferentes y debemos recordar esto). ¡Cada uno de los nuevos botones creados debe tener el valor único! Esto significa, por ejemplo, que si creamos un botón con un valor que sea “a” en minúsculas, no podemos poner el mismo valor para otros botones que vamos a crear. A continuación verá la lista de valores en el arduino sketch para cada uno de los pines. Un valor activa o desactiva un pin arduino. Entonces, cuando cree los dispositivos en la lista, elija los valores de la lista o si desea sus propios valores, también tendrá que cambiarlos en el sketch. Un ejemplo si creamos un dispositivo en la lista con el valor “A” cuando presionamos el botón para enviar el comando, se activará el pin 2 del arduino y si presiona el mismo botón nuevamente, el pin 2 se desactivará. IMPORTANTE: no utilice los números del 1 al 9, están reservados para el funcionamiento de la aplicación y no deben utilizarse. Se recomienda como valores utilizar siempre las letras “A” a “Z”. En la versión gratuita podemos crear 4 botones, en la versión Premium tantos como necesitemos. Para modificar un dispositivo en la lista, mantener pulsado el dispositivo de la lista y se abrirá el menú de opciones, ahora puede eliminar o editar el dispositivo, también si hemos olvidado el valor que necesitamos para el código arduino, podemos verlo
 haciendo clic en “editar” en el menú. Ahora, después de crear los dispositivos, los tenemos en la lista y si hacemos clic en un dispositivo de la lista, aparecen dos botones, uno es un botón para volver a la lista de dispositivos y el otro es el botón que envía el valor a arduino ( el valor que escribimos cuando creamos el dispositivo).
Por ejemplo, si creamos un dispositivo “Ventilador 1” con valor “A” presionando el nombre “Ventilador 1” de la lista, aparecerán dos botones, uno grande y otro pequeño, cuando presionamos el botón grande enviará el valor “A” que hemos escrito para el dispositivo “Ventilador 1“. Arduino recibirá el valor “A” y de esta manera podemos escribir el código en el arduino para realizar alguna función cuando reciba este valor “A“. Es por esto que cada dispositivo que vamos a crear debe tener su propia letra o símbolo, para que Arduino pueda distinguir uno de otro. Si quieres controlar más dispositivos puedes usar Arduino Mega. Porque Arduino Mega tiene más pines digitales disponibles.

1

2

3

4

5

6

Ahora, cuando tenemos la lista de dispositivos creados podemos enviar comandos a arduino, pero antes de enviar los comandos debemos conectarnos a arduino, tenemos configurado el módulo bluetooth, por lo que solo necesitamos presionar el botón de conexión para poder enviar comandos a arduino y espere unos segundos cuando el icono rojo del estado de conexión sea verde, esto significa que estamos conectados a arduino y podemos enviar los comandos. Si el botón es rojo, significa que estamos desconectados de arduino y no podemos enviar comandos a arduino. Antes de presionar el botón “Conectar“, no debemos olvidar activar el Bluetooth en nuestro teléfono inteligente o, si no queremos hacerlo manualmente cada vez que abramos la aplicación, active el Bluetooth, en nuestro smartphone podemos activar la opción de menú “Auto conexión ” para que al abrir la aplicación bluetooth se active y cuando salga se apague solo.
En los dispositivos con versión de Android 7.0 o inferior si hemos activado la opción “Auto conexión “, al abrir la aplicación, el bluetooth se activará automáticamente y la aplicación se conectará al arduino por bluetooth (sí arduino y el módulo bluetooth están activados). En la versión de Android 7.0 o superior, si hemos activado la opción “Auto conexión “, al abrir la aplicación solo se activará el bluetooth y para conectar la aplicación con el arduino debemos presionar el botón “Conectar“.

1

2

3

4

Paso 4: Control de temperatura y humedad.

Esta aplicación también nos permite controlar la temperatura y la humedad, para esto utilizamos el sensor de humedad y temperatura DHT22.
El sensor se conectará al arduino y este enviará los resultados de la temperatura y la humedad a la aplicación. Si queremos modificar el sketch de arduino para adaptarlo a otro sensor, debemos saber en qué formato se envían los datos, para que la aplicación pueda recibirlos. Para que la aplicación reciba datos del arduino, debemos encapsular los datos de la siguiente manera:
Ejemplo: por ejemplo, el valor de temperatura es 25.5 y el límite de temperatura es 22, el valor de humedad es 75.5 y el límite de humedad es 65, lo que deberíamos enviar sería este: <25.5 / 22 / 75.5 / 65/1/1>. El primer valor debe ser “<“ luego va “temperatura” luego “/” luego “límite de temperatura” luego “/” luego “humedad” luego “/” luego “2” si el control de humedad está activado, o “1” si la humedad el control está apagado, luego“/” luego “2” si el control de temperatura está activado, o “1” si el control de temperatura está apagado.

Por ejemplo, si enviamos los siguientes valores “<25.5 / 22 / 65.5 / 65 / 2/2>” esto significa que en la aplicación aparecerá temperatura 25.5Cº, 65.5% de humedad, se activará el límite de humedad y de temperatura. Si enviamos “<25.5 / 25 / 65.5 / 65 / 1/1>” , el control de humedad se desactivará y el control de temperatura se desactivará. Si no sabes cómo programar el arduino, no te preocupes, solo descarga el sketch escrito por mí y conecta todo siguiendo el esquema. Solo quería explicar los detalles para aquellos a quienes les gusta hacer sus propias modificaciones, pero otros pueden usar el sketch y el esquema que encontrará a continuación. Si ya tenemos el circuito terminado y todo conectado al arduino, y el arduino ya está encendido, podemos ver la temperatura y la humedad en la aplicación. Para ver la temperatura en la pantalla principal, asegurémonos de que el indicador de estado de la conexión sea verde. Si el indicador es verde, presione el botón de temperatura y se abrirá una nueva pantalla.
Si hemos hecho todo bien deberíamos ver la temperatura actual. Debajo del indicador de temperatura está el indicador de límite de temperatura en rojo; si está rojo, significa que el control de temperatura está desactivado; si presionamos este indicador de límite de temperatura, se enviará un comando al arduino para activar el control de temperatura y cuando el control se activará en el arduino, arduino enviará la confirmación, y si todo va bien el indicador de límite de temperatura se pondrá amarillo. Si queremos apagar el control de temperatura, simplemente presione de nuevo el indicador de límite de temperatura. Hacemos lo mismo con el control de la humedad. El valor en el indicador de límite de temperatura / humedad muestra cuando el pin de control está desactivado. Ejemplo: Si tenemos un valor de “25Cº” en el indicador de límite de temperatura, esto significa que cuando la temperatura alcance los 25ºC, el pin 12 del arduino se desactivará y si cae unos 2ºC a 20ºC, se activará nuevamente. Si tenemos el indicador de control de temperatura en rojo, el pin 12 estará desactivado todo el tiempo. Lo mismo ocurre con la humedad, solo en la humedad, el pin que se desactivará es el pin 11. Explicaré lo que esto significa: Supongamos que queremos mantener la temperatura en + 25Cº, debemos conectar al pin 12 un módulo de relé para arduino y en la aplicación ponemos el límite a 25Cº. El relé activará un calentador o algo que calentará la habitación y cuando la temperatura alcance el límite que hemos establecido, el pin 12 desactivará el relé hasta que la temperatura no caiga unos 2ºC, en este momento  se volverá a activar el calentador, de este modo la temperatura se mantendrá en el valor que hemos establecido en la aplicación. Lo mismo ocurre con la humedad. Para asegurarnos de que arduino haya guardado el valor, debemos mirar cuando el límite de temperatura deje de parpadear. Cuando comenzamos a presionar el botón “arriba” o “abajo” para cambiar el límite de temperatura, el límite de temperatura comienza a parpadear y no se detendrá hasta que la aplicación “SHome” reciba la confirmación de que el valor se ha almacenado correctamente. De esta manera, si al presionar el botón “Guardar” el indicador de límite de temperatura deja de parpadear, sabemos que el valor se almacenó correctamente.

Control de temperatura desactivado

Control de temperatura activado

Información adicional

Pulse el botón “Descargar esquema y sketch” para obtener el esquema y el arduino sketch. Voy a actualizar este proyecto y corregir los errores que puedan aparecer, si encuentra algún error o no entiende algo, escríbame sus dudas o preguntas a mi correo electrónico: necodesarrollo@gmail.com

Descargamos el sketch y el esquema haciendo clic en el botón, luego descomprimimos el archivo “zip” y en él también encontraremos la carpeta con la biblioteca para trabajar con el sensor DHT22. La carpeta de la biblioteca se llama “DHT_sensor_library_1.3.0”, debemos copiar esta carpeta a “Documentos / Arduino / libraries” sin esta carpeta, ¡el sketch generará un error!