Domótica con Apple HomeKit y ESP8266

[ad_1]

efy probó sani theoEs un proyecto basado en IoT que le permite controlar cuatro electrodomésticos utilizando Apple HomeKit, la aplicación Hey Siri y el módulo WiFi ESP8266. El prototipo del autor se muestra en la Fig. 1.

Fig. 1: Prototipo del autor
Fig. 1: Prototipo del autor

Hace unos meses pensamos en montar un sistema domótico. Después de investigar en Internet, descubrimos que dichos proyectos se basaban principalmente en Google Assistant y Alexa. De ahí surgió la idea de desarrollar un sistema domótico que se pueda controlar con el asistente de Apple, la función “Hey Siri”.

Fig. 2: Módulo de relé
Fig. 2: Módulo de relé

Buscamos este tema, pero la mayoría de los artículos escritos requerían una computadora portátil de Apple y la aplicación Homebridge. Queríamos hacer el proyecto sin esas herramientas. Luego nos encontramos con una biblioteca increíble que podría hacerlo posible, aunque tenía un ejemplo para controlar solo un relé. Aquí está el proyecto de domótica que permite controlar cuatro dispositivos a través de cuatro relés.

Fig. 3: Placa NodeMCU
Fig. 3: Placa NodeMCU

Se requiere el siguiente hardware para crear el proyecto:

  • módulo de relé de 5V
  • Tablero NodeMCU
  • cables de puente
  • Portalámparas (para 230 V CA)
  • bombilla 60W/100W
  • iPhone SE o cualquier iPhone que admita la aplicación Apple HomeKit
Fig. 4: Bombilla y portalámparas
Fig. 4: Bombilla y portalámparas
Índice
  1. circuito
  2. software
  3. Configurar Apple HomeKit

circuito

Las conexiones del circuito son muy simples. La tabla muestra las conexiones entre el módulo de relés y NodeMCU. El diagrama de conexión completo para controlar una lámpara incandescente a través de un módulo de relé se muestra en la Fig. 6. Puede conectar el circuito de manera similar para controlar los tres dispositivos eléctricos restantes.

Fig. 5: Cables puente
Fig. 5: Cables puente

Hay dos cables en el portalámparas, como se muestra en la Fig. 6. Corte uno de los cables por la mitad y conecte uno de los extremos cortados al pin COM y el otro al terminal NO en el módulo de relé. Conecte el pin D2 de NodeMCU al pin IN del módulo de relé.

Fig. 6: Conexiones del circuito
Fig. 6: Conexiones del circuito

software

Descargue la biblioteca Arduino HomeKit desde el enlace.

Una vez descargado, abra el IDE de Arduino y siga los pasos que se indican a continuación.

  1. En Arduino IDE, haga clic en Sketch y luego haga clic en la opción Incluir biblioteca como se muestra en la figura 7. Luego haga clic en Agregar biblioteca .Zip y seleccione la biblioteca HomeKit ESP8266. Los tres archivos Example02_Switch, my_accessory.c y wifi_info.h están incluidos en el IDE de Arduino.

    Fig. 7: Agregar una biblioteca .Zip al IDE de Arduino
    Fig. 7: Agregar una biblioteca .Zip al IDE de Arduino

  2. Abra el archivo "Example02_Switch" como se muestra en la Fig. 8. El código original "Example02_Switch.ino" contiene solo un módulo de relé. Para agregar varios (cuatro) relés, debe realizar algunos cambios en el código, como se explica en la siguiente sección.

    Figura 8: Ejemplo02_Interruptor
    Figura 8: Ejemplo02_Interruptor

  3. En el archivo Wifi_info.h (Fig. 9) especifique su propio SSID y contraseña.

    Fig. 9: Establecer SSID y contraseña
    Fig. 9: Establecer SSID y contraseña

  4. Primero, haga algunos cambios en el código my_accesory.c. Para agregar muchos dispositivos, copie y pegue la parte resaltada en la Fig. 10 tantos dispositivos como desee agregar en el proyecto.

    Fig. 10: El código resaltado para copiar y pegar
    Fig. 10: El código resaltado para copiar y pegar

Después de agregar varias veces, cambie el "id" en la línea "HOMEKIT_ACCESSORY (.id=1, .category=homekit_accessory_category_switch, .services=(homekit_service_t*[])” como se muestra en la Fig. 11.

Fig. 11: Cambio de ID
Fig. 11: Cambio de ID

Cambie .id=1 a .id=2. Una vez que haya agregado el tercer dispositivo, cámbielo a .id=3. Entonces, cada vez que copie y pegue la parte resaltada, aumente el número .id.

Fig. 12: Cambiar el número de cambio de canal
Fig. 12: Cambiar el número de cambio de canal

En la parte resaltada, encontrará la línea "&cha_switch_on" como se muestra en la Fig. 12. Este es el código de número de cambio de canal predeterminado. Si agregó una nueva parte resaltada, cámbiela a "&cha_switch_on2". Debe aumentar el número de interruptor cada vez que agregue una nueva parte resaltada.

Fig. 13: Pines GPIO en la placa NodeMCU
Fig. 13: Pines GPIO en la placa NodeMCU

A continuación, busque "homekit_characteristic_t cha_switch_on= HOMEKIT_CHARACTERISTIC_(ON, false);" en el mismo código. Nuevamente, deberá agregar esta línea tantas veces como haya agregado los dispositivos, y también agregar el número de encendido. Por ejemplo, si agregó dos dispositivos, la línea de código se ve así:

homekit_characteristic_t cha_switch_on = HOMEKIT_CHARACTERISTIC_(ON, false);

homekit_characteristic_t cha_switch_on2 = HOMEKIT_CHARACTERISTIC_(ON, false);

5. Ahora haga algunos cambios en el código de Example02_Switch. Aquí encontrará la línea "extern "C" homekit_characteristic_t cha_switch_on;" Debe agregar esta línea cada vez que agregue un dispositivo y necesite cambiar switch_on a switch_on2, switch_on3, etc. como antes.

A continuación, encontrará una línea de código "#define PIN_SWITCH 2". Copie y pegue esta línea tantas veces como agregue nuevos dispositivos y también cambie cada número de PIN. Este pin en realidad define el pin de la placa NodeMCU donde el dispositivo está conectado a través del módulo de relé.

Figura 14: pines GPIO definidos en el código
Figura 14: pines GPIO definidos en el código

Tenga en cuenta que el pin 2 definido aquí no es el pin físico D2 de NodeMCU; es el pin GPIO 2. Los pines GPIO están marcados en la placa NodeMCU como se muestra en la figura 13. Los pines GPIO definidos en este proyecto para cambiar los cuatro relés se muestran en la Fig. 14.

Para controlar cuatro dispositivos, el autor utilizó los pines GPIO2, GPIO16, GPIO4 y GPIO5 de NodeMCU. Cada pin GPIO debe conectarse al módulo de relé correspondiente como se muestra en el diagrama de conexión de la Fig. 6.

Luego viene la línea de código "cha_switch_on.setter = cha_switch_on_setter;". Copie esto también y agréguelo tantas veces como dispositivos se vayan a agregar en el proyecto. Para agregar cuatro dispositivos nuevos, cambie switch_on y setter como se muestra en la Figura 15.

Fig. 15: Cambiar switch_on y setter en el código
Fig. 15: Cambiar switch_on y setter en el código

Luego viene la línea "void my_homekit_setup()". En él encontrarás “pinMode(PIN_SWITCH, OUTPUT);

digitalWrite(PIN_SWITCH, HIGH);" Debe agregar estas líneas tantas veces como agregue nuevos dispositivos. Si tiene cuatro dispositivos, debe cambiar las variables como se muestra en la Fig. 16.

Fig. 16: Variables PinMode
Fig. 16: Variables PinMode

Luego seleccione las siguientes líneas:

"void cha_switch_on_setter (const homekit_value_t value) { bool on = value.bool_value;

cha_switch_on.value.bool_value = encendido; //sincroniza el valor LOG_D("Switch: %s", on ? "ON" : "OFF");

escritura digital (PIN_SWITCH, a? BAJO: ALTO); }”

Copie y pegue estas líneas tantas veces como nuevos dispositivos haya agregado. Luego cambie el setter, PIN_SWITCH y cha_switch_on en el código como se muestra en la figura 17. Esta es básicamente la función .setter para enviar el evento de cambio desde el dispositivo iOS de Apple.

Fig. 17: La función .setter para recuperar los eventos de cambio
Fig. 17: La función .setter para recuperar los eventos de cambio

Ahora cargue el código en la placa NodeMCU. A continuación, configure la aplicación Apple HomeKit.

Configurar Apple HomeKit

Siga los pasos a continuación para configurar la aplicación Apple HomeKit con el dispositivo iPhone SE de Apple.

Paso 1. Descarga el HomeKit de la tienda de aplicaciones.

Paso 2. Haga clic en el botón más (+) en la esquina superior derecha. Elija Agregar accesorio. Verá una ventana emergente como se muestra en la figura 18. Seleccione Más opciones... para continuar.

Fig. 18: Ventana Agregar accesorios
Fig. 18: Ventana Agregar accesorios

Paso 3. A continuación, aparecerá otra ventana emergente como se muestra en la Fig. 19. Aquí es donde encontrará su dispositivo "Switch". Haga clic en el interruptor.

Fig. 19: Ventana
Fig. 19: Ventana "Agregar a mi página de inicio".

paso 4 Verá aparecer un mensaje de advertencia. Simplemente haga clic en la opción Agregar de todos modos como se muestra en la Fig. 20.

Fig. 20: Mensaje de advertencia de configuración
Fig. 20: Mensaje de advertencia de configuración

paso 5 Debe agregar un código de configuración de 8 dígitos. Aquí 11111111 es el código de configuración predeterminado, como se muestra en la figura 21.

Fig. 21: Agregar código de configuración
Fig. 21: Agregar código de configuración

paso 6 Ahora pide la ubicación del interruptor. Puedes elegir según tus instalaciones. Aquí es donde entra en juego el interruptor del dormitorio. Haga clic en Siguiente para continuar con los pasos.

paso 7. A continuación, aparecerá la ventana Ver como, como se muestra en la Fig. 22. Puede seleccionar cualquiera de los dispositivos enumerados, incluidos ventiladores, luces o interruptores si están conectados. Luego haga clic en Siguiente.

Fig. 22: Ver como ventana
Fig. 22: Ver como ventana

paso 8 Ahora se le pedirá el nombre del interruptor como se muestra en la figura 23. Esta función le brinda la posibilidad de establecer cualquier nombre personalizado para su conmutador. Luego haga clic en Siguiente

Fig. 23: Nombre del interruptor
Fig. 23: Nombre del interruptor

paso 9 Finalmente, aparecerá una ventana que muestra que el interruptor se ha agregado a su hogar. Haga clic en Listo.

Ahora puede controlar los cuatro dispositivos manualmente desde su dispositivo iPhone presionando los botones apropiados o los comandos de voz. La función Hey Siri te permite controlar los dispositivos con tus propios comandos de voz.

Por ejemplo, para encender la luz del dormitorio, simplemente diga "Oye, Siri, enciende la luz del dormitorio". Inmediatamente, la aplicación responderá con la voz "Ok, el interruptor está encendido" junto con el texto que se muestra en la aplicación, como se muestra en la Fig. 24. Al mismo tiempo, la luz del dormitorio se enciende.

Fig. 24: Respuestas de la aplicación para iPhone
Fig. 24: Respuestas de la aplicación para iPhone

Para apagarlo, di "Oye Siri, apaga la luz del dormitorio". La aplicación dará la respuesta de voz "Ok, el interruptor está apagado" junto con el texto en la aplicación. Al mismo tiempo, la luz del dormitorio se apaga.

Asimismo, puedes controlar otros dispositivos que ya estén conectados a NodeMCU y programados en la app.

Nota. Si desea realizar algunos cambios en el código después de cargar el código en NodeMCU, primero asegúrese de borrar la memoria flash de su NodeMCU. Solo entonces puede cargar el código modificado en NodeMCU. De lo contrario, la aplicación puede arrojar un mensaje de error "No disponible".

Rohan Barnwal es un youtuber y aficionado a la electrónica. Rahul Barnwal, un B.Tech del Instituto Indio de Tecnología de la Información, Kottayam, es un entusiasta de la física y la electrónica.

Descargar código fuente


Rohan Barnwal es un youtuber y aficionado a la electrónica. Rahul Barnwal, un B.Tech del Instituto Indio de Tecnología de la Información, Kottayam, es un entusiasta de la física y la electrónica.



[ad_2]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir