Domótica con Apple HomeKit y ESP8266
[ad_1]
Es 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.
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”.
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.
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
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.
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é.
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.
- 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.
- 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.
- En el archivo Wifi_info.h (Fig. 9) especifique su propio SSID y contraseña.
- 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.
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.
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.
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.
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é.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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