- Diagrama de circuito para la automatización del hogar controlada por el Asistente de Google
- Configuración de la aplicación Blynk
- Configuración de IFTTT con Google Assistant y Blynk para leer cadenas
- Programación de Arduino para Blynk Home Automation
- Fabricación de PCB utilizando PCBGoGo
- Montaje de la PCB
- Conexión de la placa con unidades de alimentación de CA / placas de extensión
Con el avance de los asistentes virtuales como Google Assistant y Alexa, las aplicaciones de domótica y controladas por voz se están volviendo normales. Ahora, nosotros mismos hemos construido muchos proyectos de automatización del hogar, desde simples luces de escalera automáticas hasta automatización del hogar controlada por web basada en IoT utilizando Raspberry Pi. Pero este proyecto aquí es diferente, la idea aquí es crear una placa domótica práctica que pueda caber en nuestras unidades de energía de CA en nuestras paredes y permanecer oculta dentro de ella. La placa no debe interrumpir el funcionamiento normal de los interruptores de nuestra unidad de potencia, es decir, deben encenderse o apagarse con interruptores manuales también. Y sin decirlo, también debería poder controlar la misma carga con la voz usando el asistente de Google y también configurar un temporizador para que cualquier carga pueda encenderse o apagarse automáticamente durante una hora preestablecida del día.
Este proyecto es muy similar a nuestro enchufe Wi-Fi inteligente ESP8266 pero aquí, dado que usaremos ESP12, tendremos más pines GPIO que nos permitirán controlar cuatro cargas de CA simultáneamente. Además, dado que hemos integrado Blynk y Google Assistant, el proyecto se vuelve interesante y práctico de usar. Para este proyecto, hemos construido las placas de circuito utilizando el servicio de fabricación de placas de circuito impreso PCBGOGO. En la sección posterior del artículo, proporcionamos el archivo Gerber diseñado para el circuito y también explicamos el procedimiento completo para solicitar los PCB de PCBGOGO.
Advertencia: este proyecto implica trabajar con la tensión de red de CA. Tenga en cuenta que se debe tener mucho cuidado al trabajar con voltajes de CA altos. Asegúrese de estar supervisado por una persona con experiencia si es nuevo.
Diagrama de circuito para la automatización del hogar controlada por el Asistente de Google
El diagrama de circuito completo para la automatización del hogar se puede encontrar a continuación.
Como ves, el circuito es muy sencillo, comencemos la explicación desde el Módulo Wi-Fi ESP12E. También puede ver el video a continuación para obtener una explicación detallada del proyecto. El módulo se puede programar como las placas de desarrollo nodeMCU y reduce mucho espacio. De forma predeterminada, cuando se enciende, el ESP12E entra en modo de funcionamiento. Para programarlo tenemos que utilizar el botón Reset y Flash. Eso es para poner el ESP12 en modo de programación, presione y mantenga presionados los botones Reset y Flash, luego suelte el botón Reset. Esto iniciará el ESP12E con el botón de flash presionado, ahora suelte el botón de flash y el ESP12E entrará en el modo de programación. Después de la programación, debe presionar el botón de reinicio nuevamente para iniciar el ESP12E en el modo de operación normal para ejecutar el programa cargado. Los pines de programación Rx, Rx,y Ground se extienden para poder conectarse con una placa FTDI o un convertidor de USB a TTL. Asegúrese de conectar el pin Tx del ESP12 al pin Rx del Programador y viceversa.
Los otros pines de bandera I1 a I4 y R1 a R4 se utilizan para conectar los interruptores y relés. Los pines I1 a I4 representan pines de entrada. Todos estos pines admiten una resistencia pull-up interna, por lo que solo tenemos que conectar los interruptores en la caja de extensión a nuestro pin de entrada a través de una resistencia pull-down como se muestra a continuación.
De manera similar, los pines de salida de relé R1 a R4 se utilizan para controlar los relés. Hemos utilizado un circuito controlador de relé estándar con diodo BC547 e IN4007 como se muestra a continuación. Tenga en cuenta que los relés deben activarse con 5 V, pero los pines de salida del ESP12E son solo de 3,3 V. Por lo tanto, es obligatorio utilizar un transistor para controlar los relés. También hemos colocado un LED en la ruta base del transistor para que siempre que se active el transistor, el LED también se encienda.
Finalmente, para alimentar todos nuestros circuitos, hemos utilizado el convertidor Hi-Link AC-DC para convertir nuestro 220V AC a 5V DC. Luego, estos 5 V CC se convierten en 3,3 V utilizando un regulador de voltaje AMS117-3,3 V. Los 5 V se utilizan para activar los relés y los 3,3 V para alimentar el módulo Wi-Fi ESP21.
Configuración de la aplicación Blynk
Anteriormente, hemos construido muchos proyectos de Blynk como el Robot Arduino controlado por Wi-Fi, por lo que no entraremos en los detalles de la configuración de la aplicación blynk. Pero para ponerlo simple, simplemente instale la aplicación, cree un nuevo proyecto para NodeMCU y comience a colocar sus widgets como se muestra a continuación.
He usado pines virtuales V1 a V4 para controlar el relé 1 a 4 en nuestro proyecto. Asegúrese de cambiar el tipo de botón para cambiar. La opción de temporizador también se puede utilizar para activar los pines virtuales automáticamente durante el tiempo establecido, incluso si el teléfono está apagado. He usado un temporizador solo para el pin virtual V1 aquí, por ejemplo, pero puede usarlo para los cuatro pines si es necesario.
Asegúrese de obtener el valor del token de autenticación de blynk en la página de su proyecto. Simplemente haga clic en el ícono de la tuerca (rodeado en rojo en la imagen de arriba) y copie el token de autenticación usando la opción Copiar todo y péguelo en un lugar seguro, lo necesitaremos al programar la placa Arduino.
Configuración de IFTTT con Google Assistant y Blynk para leer cadenas
La forma más sencilla de utilizar el Asistente de Google para la automatización del hogar es mediante IFTTT. También hemos construido muchos proyectos IFTTT anteriormente con NodeMCU y Raspberry Pi. En este proyecto, utilizaremos la aplicación Blynk para activar un webhook con el asistente de Google. Es muy similar a nuestro proyecto de radio FM y domótica controlada por voz. Excepto que aquí usaremos blynk con IFTTT para enviar cadenas, lo que lo hace mucho más fácil e interesante.
Básicamente, usaremos el pin virtual V5 y V6 en blynk para enviar el comando de activación. V5 se utilizará para los comandos de encendido y V6 para los de apagado. Por ejemplo, si decimos encender TV y lámpara. El comando de cadena aquí "TV y lámpara" se enviará a NodeMCU mediante una API. La sintaxis de API es la siguiente.
http://188.166.206.43//update/V5?value=TV y lámpara
Ahora todo lo que tenemos que hacer en IFTTT es usar el asistente de Google como IF y webhooks como ESO, así que escuche este comando y envíe la información a NodeMCU usando la API mencionada anteriormente. El subprograma de activación es el mismo que se muestra a continuación.
Tenga en cuenta que debe seleccionar decir una frase con la opción de ingrediente de texto al crear una receta para el Asistente de Google. Del mismo modo, debe repetir lo mismo para el pin virtual V6 para apagar los relés. Puede ver el video al final de esta página para obtener información detallada.
Programación de Arduino para Blynk Home Automation
El código completo de Arduino para este proyecto se puede encontrar en la parte inferior de esta página. La explicación del mismo es la siguiente. Antes de eso, asegúrese de que puede usar Blynk y Program NodeMCU de Arduino IDE. De lo contrario, siga el artículo de introducción a ESP12. Además, agregue la biblioteca blynk a Arduino IDE usando el administrador de la placa.
Como siempre, comenzamos nuestro código definiendo los pines de entrada y salida, aquí la entrada será de interruptores y la salida será de relés. Hemos definido los nombres de los pines para los cuatro interruptores como sw y relés como rel, como puede ver a continuación.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
En la siguiente etapa, debe ingresar algunas credenciales como blynk auth token y el nombre de usuario y contraseña del enrutador Wi-Fi al que debe conectarse su nodeMCU. El token de autenticación de parpadeo se puede obtener desde la aplicación blynk. Aprenderemos más sobre eso en la sección de configuración de la aplicación blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // obtener de la aplicación blynk char ssid = "home_wifi"; char pass = "fakepass123";
A continuación, hemos dado la definición de una función llamada read_switch_toggle () . En esta función, compararemos el estado actual y el estado anterior de nuestros interruptores. Si el interruptor se ha encendido o apagado, es decir, si se ha activado el interruptor. Habrá un cambio en el estado del interruptor, la función monitoreará este cambio y devolverá el número del interruptor. Si no se detecta ningún cambio, devolverá 0.
int read_switch_toggle () {int resultado = 0; // Anote todos los valores anteriores para (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Leer el estado actual de los conmutadores crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // compara el estado actual y pvs para (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // si se conmuta cualquier conmutador obtenemos el número de conmutador como resultado return result; } else resultado = 0; // si no hay cambio de resultado 0} devuelve resultado; // devuelve el resultado}
A continuación, tenemos el código para la aplicación blynk. Usaremos el pin virtual V1 a V6 para controlar nuestra caja de conexiones inteligente. Los pines V1 a V4 se usarán para controlar los relés 1 a 4 respectivamente directamente desde la aplicación blynk. El siguiente código muestra lo que sucede cuando V1 se activa desde la aplicación blynk. Simplemente leemos el estado (ALTO o BAJO) y controlamos el relé en consecuencia.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Del mismo modo, los pines virtuales también se pueden usar para leer una cadena de la aplicación blynk. Aprenderemos cómo enviar una cadena desde el asistente de Google a NodeMCU usando IFTTT y el asistente de Google más adelante, pero por ahora, veamos cómo el código de NodeMCU lee esta cadena y busca una palabra clave en particular y activa el relé en consecuencia.
En el siguiente código, puede ver que cuando se activa el pin virtual V5, obtenemos la cadena que pasa a una variable de cadena llamada ON_message . Luego, usando esta variable de cadena y el método inderOf, buscamos si hay palabras clave como “lámpara”, “LED”, “música”, “TV”, si es así, activamos esa carga en particular. Si se detecta la palabra clave “todo”, activamos todo. También se puede hacer lo mismo con V6 para apagar los relés. Comprenderemos más sobre esto cuando entremos en la sección IFTTT.
BLYNK_WRITE (V5) {String ON_message = param.asStr (); Serial.println (ON_message); if (ON_message.indexOf ("lámpara")> = 0) digitalWrite (rel1, HIGH); if (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); if (ON_message.indexOf ("música")> = 0) digitalWrite (rel3, HIGH); if (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); if (ON_message.indexOf ("todo")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Por último, dentro de la función de bucle, solo tenemos que comprobar si algún botón ha cambiado de posición. Si es así, usamos una caja de interruptor como la que se muestra a continuación para alternar la posición de ese relé en particular.
switch (toggle_pin) {caso 0: romper; caso 1: Serial.println ("Alternar relé 1"); digitalWrite (rel1, relé_estado); romper; caso 2: Serial.println ("Alternar relé 2"); digitalWrite (rel2, estado_del_relé); romper; caso 3: Serial.println ("Alternar relé 3"); digitalWrite (rel3, relé_estado); romper; caso 4: Serial.println ("Alternar relé 4"); digitalWrite (rel4, relé_estado); romper; }}
Fabricación de PCB utilizando PCBGoGo
Ahora que entendemos cómo funcionan los esquemas, podemos proceder con la construcción de la PCB para nuestro proyecto de domótica. El diseño de PCB para el circuito anterior también está disponible para descargar como Gerber desde el enlace.
- Descargue GERBER para la automatización del hogar controlada por voz con el Asistente de Google
Ahora que nuestro diseño está listo, es hora de fabricarlos con el archivo Gerber. Hacer el PCB desde PCBGOGO es bastante fácil, simplemente siga los pasos a continuación:
Paso 1: Ingrese a www.pcbgogo.com, regístrese si esta es su primera vez. Luego, en la pestaña Prototipo de PCB, ingrese las dimensiones de su PCB, el número de capas y el número de PCB que necesita. Suponiendo que la PCB mide 80 cm × 80 cm, puede establecer las dimensiones como se muestra a continuación.
Paso 2: Continúe haciendo clic en el botón Cotizar ahora . Se le llevará a una página donde establecer algunos parámetros adicionales si es necesario, como el material utilizado, el espacio entre pistas, etc. Pero, sobre todo, los valores predeterminados funcionarán bien. Lo único que tenemos que considerar aquí es el precio y el tiempo. Como puede ver, el tiempo de construcción es de solo 2-3 días y solo cuesta $ 5 por nuestra PCB. Luego, puede seleccionar un método de envío preferido según sus necesidades.
Paso 3: El paso final es cargar el archivo Gerber y proceder con el pago. Para asegurarse de que el proceso sea fluido, PCBGOGO verifica si su archivo Gerber es válido antes de proceder con el pago. De esta manera, puede estar seguro de que su PCB es amigable con la fabricación y le llegará cuando esté comprometido.
Montaje de la PCB
Después de que se ordenó la placa, me llegó después de algunos días a través del servicio de mensajería en una caja bien empaquetada, bien etiquetada y, como siempre, la calidad de la placa de circuito impreso fue increíble. El PCB que recibí se muestra a continuación. Como puede ver, tanto la capa superior como la inferior han resultado como se esperaba.
Las vías y las almohadillas eran todas del tamaño correcto. Me tomó alrededor de 15 minutos ensamblar la placa PCB para obtener un circuito que funcionara. El tablero ensamblado se muestra a continuación.
Conexión de la placa con unidades de alimentación de CA / placas de extensión
La placa está diseñada para ser fijada dentro de las tomas de corriente AC de nuestros hogares. Pero por el bien de este proyecto, usaremos una caja de extensión. Si desea una solución más permanente, conecte esto dentro de sus tomas de corriente de CA, como puede ver a continuación, la longitud de la PCB es lo suficientemente compacta como para colocarse dentro de una toma de corriente de CA.
Asegúrese de seguir las precauciones de seguridad mientras trabaja con la red de CA. Siga el diagrama de circuito a continuación para comprender cómo conectar sus relés e interruptores a nuestra placa PCB.
El diagrama de conexión está inactivo solo para un relé y un interruptor, pero también puede replicar el mismo para los tres restantes. Una vez que se realizan las conexiones, su placa debería verse así
Una vez hechas las conexiones, asegúrese de haberlas asegurado firmemente con terminales de tornillo y también use pegamento caliente para mayor seguridad. Empaque todo de nuevo en la caja y deberíamos estar listos para la prueba. Puede encontrar el funcionamiento completo de este proyecto en el video a continuación.
Espero que hayas disfrutado del artículo y hayas aprendido algo útil. Si tiene alguna pregunta, déjela en la sección de comentarios a continuación o utilice nuestros foros.