- Prerrequisitos:
- Concepto de trabajo:
- Programa IDE de Arduino para ESP8266:
- Diagrama de circuito y hardware:
- Reenvío de puertos de su IP ESP8266:
- Instalación de la aplicación de Android Moni:
- Creación de applets mediante el servicio IFTTT:
- Prueba del proyecto:
Bienvenido a otro proyecto emocionante en el que construiremos un sistema de automatización del hogar controlado por voz usando el módulo Wi-Fi ESP8266, donde puede controlar sus electrodomésticos de CA para el hogar usando su voz a través de una aplicación de Android desde cualquier parte del mundo. Sí, su sueño de encender o apagar sus cargas (luces / ventiladores) simplemente usando un comando de voz se hará realidad al final de este proyecto. Este proyecto es la variación de nuestro proyecto anterior Smart Junction Box for Home Automation, donde hemos controlado los electrodomésticos mediante Webserver a través de la red.
Este proyecto de automatización del hogar controlado por voz basado en IOT es muy fácil de construir y no le cuesta mucho, ya que no requiere que compre módulos de voz costosos. Todo el proyecto me tomó alrededor de 500INR (8 USD) para construirlo. Además, este es un proyecto independiente de microcontroladores, lo que significa que no necesita ningún MCU / MP como Arduino o Raspberry pi. Todo el proyecto se ejecuta en el módulo ESP8266. Obtenga más información sobre ESP8266 aquí. Entonces, comencemos a hablar…
Anteriormente, hemos cubierto muchos tipos de automatizaciones domésticas utilizando diferentes tecnologías como:
- Automatización del hogar basada en DTMF
- Automatización del hogar basada en GSM usando Arduino
- Automatización del hogar controlada por PC usando Arduino
- Automatización del hogar controlada por Bluetooth usando 8051
- Automatización del hogar con control remoto por infrarrojos con Arduino
- proyecto de domótica usando MATLAB y Arduino
- LED de RF controlados a distancia con Raspberry Pi
- Automatización del hogar controlada por teléfono inteligente usando Arduino
Prerrequisitos:
Este proyecto es una continuación de nuestro proyecto anterior Smart Junction Box for Home Automation usando ESP8266, por lo que la mayor parte de la parte del hardware ya se ha cubierto en ese tutorial. Por favor, lea eso antes de continuar con este, ya que omitiré la información cubierta en ese tutorial. Para dar un pequeño resumen de nuestro proyecto anterior, modificamos una caja de conexiones (placa de extensión) en ese tutorial que podría consolar una placa Perf que consta de dos relés y el módulo ESP8266. Los dos relés (cargas de CA) se pueden cambiar utilizando una página web creada por el ESP8266 (actuando como un servidor web). En este tutorial solo voy a agregar algunas características para que también podamos controlar las cargas de CA usando el comando de voz a través de Smart Phone.No cubriremos ninguna parte del hardware en este tutorial, el hardware y el código seguirán siendo los mismos que en el tutorial anterior.
También saber cómo utilizar www.IFTTT.com le dará una ventaja en este proyecto. Si no está familiarizado con IFTTT, no se preocupe, le explicaré cómo usarlo para este tutorial en particular para que pueda hacerlo funcionar.
Concepto de trabajo:
Supongo que ha leído el tutorial anterior, en ese caso, ahora debería saber cómo construir esa caja de conexiones y cómo alternar las cargas de forma remota desde su navegador web. Para que esto sea posible, hemos hecho que nuestra dirección IP asignada al ESP8266 esté disponible públicamente. Esto se puede hacer con la "Técnica de reenvío de puertos". Luego instale una aplicación móvil llamada "Moni" en su dispositivo móvil Android / iPhone. Esta aplicación reconocerá nuestro habla y comunicará la información a los Applets IFTT que a su vez controlarán las cargas a través de los ganchos de Maker Web.
Puede sonar un poco tedioso, pero todas estas cosas se han explicado claramente en este tutorial y créanme con unos pocos clics se puede hacer todo lo anterior. Este tutorial lo ayudará de la mejor manera posible con la ayuda de imágenes y videos. Al final de este tutorial, podrá encender o apagar sus electrodomésticos a través de su voz desde cualquier parte del mundo. Consulte el código completo y el video de demostración al final del tutorial.
Compruebe también las luces controladas por voz con Raspberry Pi y la escritura por voz en una pantalla LCD de 16x2.
Programa IDE de Arduino para ESP8266:
Al igual que en el proyecto anterior, vamos a programar nuestro módulo ESP8266 con la ayuda del IDE de Arduino. Se ha realizado una pequeña modificación en el programa. Esta modificación se realiza para que su ESP8266 se conecte a una dirección IP constante cada vez que establezca una conexión con el enrutador. El programa es exactamente el mismo que el código anterior excepto por estas cuatro líneas
// Obtenga una IP constante cada vez que IPAddress ip (192, 168, 0, 104); // Esta debe ser la IP de mi puerta de enlace IPAddress del módulo ESP (192, 168, 0, 1); // establecer la puerta de enlace para que coincida con su red, la mayoría de la puerta de enlace será la misma por defecto Serial.print (F ("Configurando IP estática a:")); Serial.println (ip); Subred IPAddress (255, 255, 255, 0); // establece la máscara de subred para que coincida con tu red WiFi.config (ip, puerta de enlace, subred);
Aquí, en el lugar de IPAddress ip (192, 168, 0, 104); ingrese la dirección IP deseada. En este caso, mi ESP estará conectado a 192.168.0.104 todo el tiempo y simplemente puedo acceder a él usando esta IP en mi navegador. El código completo que se proporciona al final de este tutorial.
Diagrama de circuito y hardware:
Los esquemas y el hardware para estos electrodomésticos controlados por voz basados en IoT son los mismos que en nuestro proyecto anterior de Smart Junction y he explicado el esquema allí, así que, por favor, revíselo. Aquí puede ver el esquema completo como referencia:
Reenvío de puertos de su IP ESP8266:
El primer paso es habilitar el reenvío de puertos en su enrutador (módem) para que pueda acceder a su ESP desde cualquier parte del mundo, simplemente ingresando su IP pública. Siempre que nuestro ESP8266 se conecte a nuestro enrutador de hogar / oficina, se le dará una dirección IP única y esta dirección IP se utilizará para acceder al ESP8266 a través del navegador web. Esta dirección IP está restringida dentro de la red de su hogar / oficina, lo que significa que no puede acceder a ella globalmente; solo se puede acceder a él mediante dispositivos que estén conectados a su enrutador. El reenvío de puertos es la técnica a través de la cual podemos hacer que esta página web se cargue globalmente. Después del reenvío de puertos, puede usar su IP pública para acceder a esta página web desde cualquier parte del mundo. Suena bien, ¿verdad? Veamos cómo podemos hacer esto. Para hacer esto, conoce lo siguiente de antemano.
1. El nombre del fabricante y la dirección IP de su enrutador. Esto se puede encontrar fácilmente mirando el enrutador. La dirección IP también se mencionará en una etiqueta. Si no es Google para conocer la IP de su Routers.
2. El nombre de usuario y la contraseña de la página de inicio de sesión de su enrutador. La mayoría de los enrutadores tendrán el nombre de usuario como "admin" y la contraseña como "admin".
3. La dirección IP asignada a su módulo ESP8266. Esta es la dirección que utiliza para acceder a la página web del módulo ESP.
4. La dirección IP de su proveedor de servicios de Internet (dirección IP pública). Esto se puede encontrar simplemente buscando en Google "cuál es mi IP".
Una vez que tenga todo a mano, puede seguir los pasos a continuación para el reenvío de puertos, si no puede encontrar algo, use la sección de comentarios a continuación. Yo te ayudare.
Paso 1: Inicie sesión en la página de la utilidad de administración web de su enrutador utilizando la dirección IP de su enrutador, generalmente es 192.168.1.1. Mi pantalla se verá así a continuación
Paso 2: Ingrese el nombre de usuario “admin” por defecto y la contraseña “admin” por defecto y haga clic en Iniciar sesión. Se lo dirigirá a la página de utilidades que se verá más abajo.
La mayor parte de la información que ve aquí es muy confidencial, por lo tanto, no la comparta con ningún desconocido, ya que podría poner en riesgo su seguridad en Internet.
Paso 3: Como se muestra arriba, su página tendrá todas las opciones enumeradas en la parte inferior izquierda. Nuestro objetivo es encontrar algo llamado “Servidores virtuales”. Tengo el mío en la lista de la opción Reenvío. La mayoría de los routers de las habrán aparece como el 6, 7 u 8 ª opción (en su mayoría por debajo del ajuste DHCP). Encuéntrelo y haga clic en él
Paso 4: Ahora debe ingresar la dirección IP asignada al módulo ESP y el número de puerto para reenviar nuestra IP. En mi caso, tengo que hacer clic en Agregar nuevo e ingresar esos detalles. Puede que sea un poco diferente para ti. La dirección IP es la que utiliza para acceder a la página web de su módulo ESP. El número de puerto puede ser de su elección, pero permítanos usar “80” para simplificar. La IP asignada a mi módulo ESP8266 es 192.168.0.104 y, por lo tanto, mi reenvío se verá a continuación:
Paso 5: Ahora tenemos que saber nuestra dirección IP pública. Puede encontrar esto en mi búsqueda en Google de "¿Cuál es mi IP?". La IP de su ISP debe mantenerse altamente confidencial. Por el bien de este tutorial, supongamos que mi dirección IP es 987: 654: 321: 123. La usaré como la IP de mi ISP durante el resto de mi tutorial.
Nota: Es posible que su ISP le haya proporcionado una IP estática / dinámica, si es una IP dinámica, su IP cambiará con cada reinicio del módem / enrutador. En ese caso, debe usar algo como DynDNS. Pero eso está fuera del alcance de este tutorial. Incluso si es una IP dinámica, funcionará para usted siempre que no reinicie su enrutador.
Es decir, si nuestro reenvío de puertos es exitoso, podemos verificarlo ingresando la IP del ISP: nombre del puerto (987: 654: 321: 123: 80) en nuestro navegador y verificar si la página web ESP se carga. Si todo sale como se esperaba, ahora debería poder alternar las cargas desde cualquier parte del mundo utilizando la dirección IP de su ISP.
Instalación de la aplicación de Android Moni:
Moni es una aplicación que está disponible para Android, Windows, iTunes e incluso Skype. Puedes descargar esta aplicación en tu móvil. Moni.ai tiene muchas más capacidades además de responder a sus comandos de voz, es muy amigable para los desarrolladores y puede definir rápidamente conversaciones visualmente y conectarse a los servicios. Moni.ai utiliza una aplicación llamada Node-Red con la que puede crear fácilmente un canal de voz y construir su propio sistema Chabot (AI) para sus negocios / proyectos y automatizarlo con su lenguaje natural. Lo mejor es que Moni es totalmente gratuito para uso no comercial.
Estoy usando un teléfono Android y, por lo tanto, descargo directamente Moni desde Google Play Store. Después de instalar, cree su cuenta gratuita e inicie sesión en ella, su aplicación debería verse así a continuación:
Puede usar esto como cualquier otro asistente virtual, como preguntar el clima, la hora, etc. Pero lo que es adicional es que puede responder a sus applets creados por su servicio Ifttt. Veamos ahora cómo crear applets para su aplicación.
Creación de applets mediante el servicio IFTTT:
Estamos a un paso de completar este proyecto. El último paso es crear los Applets en el sitio web de IFTTT. Aquí es donde instruimos a nuestro Moni para diferentes comandos de voz para controlar diferentes electrodomésticos en el hogar.
Estoy usando esta caja de conexiones controlada por voz para alternar las cargas de mi acuario (luz / filtro) como se muestra en el video a continuación. Por lo tanto, estoy personalizando el Applet para ese requisito, puede personalizarlo para su propósito. Siga los pasos a continuación:
Paso 1: Visite www.IFTTT.com e inicie sesión con su cuenta. Si es nuevo, regístrese.
Paso 2: Ahora haga clic en "Buscar" y escriba Crear webhooks. Selecciónelo y haga clic en "Conectar". Siga los pasos para conectarse con él.
Paso 3: Ahora haga clic nuevamente en "Buscar" y escriba Moni. Seleccione Moni y haga clic en "Conectar". Inicie sesión con su cuenta IFTTT para habilitar la conexión.
Paso 4: Nos hemos conectado a los servicios “Maker Webhooks” y “Moni”. Ahora le permite crear un Applet con estos servicios. Haga clic en My Applets y luego en "New Applet". Debería ver algo como esto:
En esta pantalla tienes que hacer clic en “esto” y seleccionar “Moni”. Luego haga clic en “Pedirle a Moni que realice una acción” y se lo llevará a la siguiente pantalla.
Paso 5: Complete los detalles como lo hice en la imagen de arriba. Aquí mi tarea es encender las luces de mi acuario (Carga 1) cuando digo "Enciende las luces del acuario". Luego haga clic en "Crear activador"
Paso 6: Volverá a la pantalla "SI ESTO QUE ESO". Ahora, haga clic en "eso" y escriba "Maker Webhooks" y selecciónelo. Luego haga clic en "Realizar una solicitud web". Serás llevado a la siguiente pantalla
Este es un paso importante en el que es más probable que cometa errores. En esta página simplemente ingrese la URL que desea cargar. En mi caso, quiero encender la carga conectada a switch1, por lo tanto, se usa la línea http: // 987: 654: 321: 123 / switch1On, debe reemplazar mi IP con su dirección IP pública. Esto funcionará solo si ha utilizado mi código en el tutorial anterior. La lista completa de URL para alternar las cargas se proporciona a continuación.
URL |
Palabra clave del programa |
Acción |
http: // 987: 654: 321: 123 / switch1On |
Switch1On |
GPIO_0 se hace alto, activando así la Carga 1 |
http: // 987: 654: 321: 123 / switch1Off |
Switch1Off |
GPIO_0 se hace bajo, apagando así la carga 1 |
http: // 987: 654: 321: 123 / switch2On |
Switch2On |
GPIO_2 se hace alto, activando así la carga 2 |
http: // 987: 654: 321: 123 / switch2Off |
Switch2Off |
GPIO_2 se hace bajo, apagando así la carga 1 |
Una vez que haya ingresado la URL deseada, haga clic en "Crear acción". Luego haga clic en Finalizar. Del mismo modo, puede crear 4 Applets para ENCENDER / APAGAR ambas cargas en nuestra Caja de conexiones.
Es decir, su subprograma está listo para la acción y debería aparecer en "Mis subprogramas" como se muestra a continuación.
Es hora de probar nuestro código…….
Prueba del proyecto:
Finalmente estamos listos con nuestro proyecto. Probémoslo. Enciéndalo y abra la aplicación Moni en su teléfono móvil. Haga clic en el icono del micrófono y diga el comando. En mi caso es "Enciende las luces del acuario" y debería responder con un "OK" y encender las luces. Consulte el código completo y el video de demostración a continuación.
Espero que les haya gustado el proyecto y lo hayan hecho funcionar. Si está atrapado en algún lugar, use la sección de comentarios a continuación y seguramente lo ayudaré. Nos vemos con otro proyecto interesante hasta entonces estad atentos.
Consulte también nuestros otros proyectos basados en IoT aquí.