- Enchufe inteligente ESP para domótica
- Materiales necesarios
- Programa de enchufe inteligente para ESP8266
- Diagrama de circuito
- Carcasa impresa en 3D para enchufe inteligente
Desde que comencé a trabajar con los módulos ESP Wi-Fi, siempre quise construir una toma Wi-Fi inteligente que me permitiera controlar mis cargas de CA de forma inalámbrica a través de un teléfono inteligente. Si bien productos como estos ya están disponibles en el mercado, como el popular Moko WiFi Smart Plug o Sonoff, son un poco caros y además no te dan la alegría de construir el tuyo propio. Entonces, en este proyecto te mostraré cómo puedes construir tu propio enchufe inteligente usando el módulo Wi-Fi ESP8266. El dispositivo que construimos se puede enchufar fácilmente a cualquier toma de CA que salga y luego, en el otro extremo, puede conectar la carga real simplemente enchufándola a esta toma de nuestro dispositivo. Después de eso, mantenga el interruptor principal de su enchufe siempre encendido y podrá controlar su carga directamente desde su teléfono inteligente. Divertido ¿verdad? Así que entremos en el proyecto….
Enchufe inteligente ESP para domótica
Ya hemos creado un puñado de proyectos de automatización del hogar, desde la automatización del hogar basada en RF simple hasta la automatización del hogar controlada por voz basada en mi asistente de Google favorito. Pero hoy, el requisito de este proyecto es ligeramente diferente.
Aquí, el propósito es encender / apagar mi enrutador Wi-Fi simplemente usando el teléfono inteligente directamente desde mi estación de trabajo. Porque a veces mi conexión a Internet se cae y cuando llamo a atención al cliente, la respuesta estándar que recibo es “Señor, lamento las molestias causadas. Reinicie su enrutador, apagándolo y volviéndolo a encender después de unos segundos ” ¡Puffff! Cansado de caminar hacia el enrutador cada vez, decidí construir este enchufe inteligente wifi y controlar mi enrutador usándolo.
¡Pero espere un minuto! Ya no tendré acceso a Internet una vez que apague mi enrutador. Entonces, ¿cómo lo volveré a encender de forma remota? Afortunadamente, nuestro ESP8266 se puede usar como un punto de acceso, lo que significa que también puede actuar como un enrutador enviando su propia señal wi-fi. Esta señal Wi-Fi siempre estará disponible mientras el ESP8266 esté encendido. De ahí que programaremos nuestro ESP8266 como un portal cautivo, de esa forma una vez nos hayamos conectado a la señal wifi del ESP seremos llevados a una página web desde donde podremos encender / apagar nuestra carga.
Materiales necesarios
1. Módulo Wi-Fi ESP8266
2. Convertidor de CA a CC Hi-Link (3,3 V)
3. Relé de 3 V
4. Transistor NPN BC547
5. Módulo programador FTDI
6. Escudo Wi-Fi de Arduino
7. Conexión de cables
Nota: Estamos usando este Arduino Wi-Fi Shield que creamos anteriormente. La placa solo se usa para cargar el código Arduino en el módulo ESP8266. Si no tiene esta placa, puede construir una usando el enlace o usar este simple circuito programador ESP8266 para cargar su código.
Programa de enchufe inteligente para ESP8266
Antes de continuar, profundicemos directamente en el programa para comprender cómo funcionará nuestro enchufe inteligente WiFi DIY. Como puede ver aquí, comenzamos el programa incluyendo algunos archivos de encabezado y configurando un servidor de red DNS.
#incluir
Luego inicializamos el pin GPIO 2 de ESP como salida que se usará para controlar nuestra carga. Después de lo cual tenemos un código HTML largo para nuestra página web. Aquí tenemos tres pantallas en total en nuestra página web, a saber, la pantalla de inicio, la pantalla activada y la pantalla desactivada.
String Home_Screen = "" // Página 1 - Código HTML de la pantalla de inicio "" " " + style_detials + "
""Bienvenido - CircuitDigest
"" "; String ON_Screen =" "// Página 2 - Si el dispositivo está encendido" "" "+ style_detials +" ""Enchufe inteligente: encendido
"" "; String OFF_Screen =" "// Página 3 - Si el dispositivo está APAGADO " " " " + style_detials + " " "Enchufe inteligente - APAGADO
" " ";Estas tres páginas web cuando se abran aparecerán algo como esto. Puede personalizar su página web para que aparezca como desee.
Luego tenemos nuestra función de configuración vacía dentro de la cual definimos nuestro ESP para que funcione como un punto de acceso y también le proporcionamos un nombre, aquí “ESP_Smart_Plug”. Cuando cualquier usuario se conecte a este Wi-Fi, será llevado a la página de inicio que definimos anteriormente.
pinMode (LED_BUILTIN, SALIDA); // Pin LED como salida para indicación pinMode (GPIO_2, OUTPUT); // Pin GPIO como salida para control de relé WiFi.mode (WIFI_AP); // Establecer ESP en modo AP WiFi.softAPConfig (apIP, apIP, IPAddress (255, 255, 255, 0)); WiFi.softAP ("ESP_Smart_Plug"); // Nombre su red AP dnsServer.start (DNS_PORT, "*", apIP); webServer.onNotFound (() { webServer.sendHeader ("Ubicación", String ("http://www.circuitdigest-automation.com/home.html"), true); // Abrir la pantalla de inicio de forma predeterminada webServer.send (302, "texto / plano", ""); });
En la página de inicio, si el usuario hace clic en el botón ON, se mostrará la página en pantalla y el pin GPIO 2 se establecerá en alto
// ON_Screen webServer.on ("/ relay_ON", () {// Si se presiona el botón de encendido digitalWrite (LED_BUILTIN, LOW); // Apaga el LED digitalWrite (GPIO_2, HIGH); // Apaga el relé webServer.send (200, "text / html", ON_Screen); // Mostrar esta pantalla });
De manera similar, si el usuario hace clic en el botón de apagado, se mostrará la página fuera de pantalla y el pin GPIO 2 se establecerá en BAJO.
// OF_Screen webServer.on ("/ relay_OFF", () {// Si se presiona el botón de apagado digitalWrite (LED_BUILTIN, HIGH); // Enciende el LED digitalWrite (GPIO_2, LOW); // Enciende el relé webServer.send (200, "text / html", OFF_Screen); // Mostrar esta pantalla });
El código completo junto con los archivos de la biblioteca se pueden descargar como archivo ZIP desde el enlace que se proporciona a continuación. Ahora que nuestro código está listo, podemos cargarlo en nuestro módulo ESP simplemente haciendo clic en el botón de carga y luego esperar a que se cargue el código. El programa completo junto con los archivos de la biblioteca se pueden descargar desde el siguiente enlace
Enchufe inteligente ESP8266 - Descarga de código Arduino
Aquellos que tienen el escudo Wi-Fi pueden simplemente conectar sus módulos juntos como se muestra arriba y conectarlo a su computadora para comenzar a programar nuestro ESP8266 usando el IDE de Arduino. Las personas que no tienen esta placa pueden usar el diagrama de circuito como se mencionó anteriormente.
Una vez que se cargue el código, busque redes Wi-Fi en su teléfono y debería encontrar una señal llamada “ESP_Smart_Plug”. Conéctese a él y será dirigido a la página web que acabamos de diseñar. Aquí, cuando presiona el botón de apagado, debería notar que el LED en nuestra placa ESP se apaga y cuando presiona el botón de encendido, el LED debe encenderse nuevamente.
Después de verificar el código varias veces más, ya no necesitaremos la placa del programador para este proyecto. Ahora, tenemos que construir un circuito para alimentar nuestro módulo ESP directamente desde el voltaje de la red y usar su pin GPIO para alternar un relé. Para construir este circuito utilicé un módulo convertidor AC-DC de Hi-Link que convierte el voltaje de la red AC a 3.3V DC con una corriente de salida de 900mA suficiente para encender el módulo ESP a través de la red. El relé del lado de salida es un relé de 3.3V que puede ser controlado por el pin GPIO de ESP a través de un transistor como este BC547. También necesitaremos una resistencia de 1k para limitar la corriente base de nuestro transistor.
Diagrama de circuito
El diagrama de circuito completo para el enchufe inteligente Wi-Fi se vería así.
La red de CA para alimentar nuestro proyecto se obtendrá a través de este enchufe. Los otros componentes son los que explicaron antes. Otra cosa importante en la que concentrarse es mantener el GPIO-0 y el GPIO-2 alto mientras se inicia. De lo contrario, el módulo ESP entrará en modo de programación y el código de salida no funcionará. Por lo tanto, he usado una resistencia de 10k (se pueden usar valores entre 3.3k y 10k) para tirar del pin GPIO alto por defecto. Alternativamente, también puede usar un transistor PNP en lugar de BC547 y cambiar el relé desde el lado alto. Con el diagrama de circuito listo, planeé cómo soldar estos componentes manteniendo el tamaño de la placa lo más pequeño posible para que quepa dentro de una carcasa pequeña y proceda a soldar la placa.
Carcasa impresa en 3D para enchufe inteligente
A continuación, medí las dimensiones de la placa con mi nonio y también medí las dimensiones del enchufe y el enchufe para diseñar una carcasa para mi enchufe inteligente. Mi diseño se veía así a continuación una vez hecho.
Después de estar satisfecho con el diseño, lo exporté como un archivo STL, lo corté según la configuración de la impresora y finalmente lo imprimí. Nuevamente, el archivo STL también está disponible para descargar desde Thingiverse y puede imprimir su propia carcasa usándolo.
Una vez terminada la impresión, quedé bastante satisfecho con el resultado. Luego procedí a agregar los cables a mi placa y también los atornillé a los terminales de alimentación y al enchufe. Con la conexión completa hecha, monté el circuito en mi carcasa y todo encajó bien, como puede ver aquí.
Con mi enchufe inteligente listo para la acción, fui a mi enrutador, rastreé su cable para encontrar su adaptador. Luego lo saqué del enchufe, conecté el enchufe inteligente al mismo enchufe y lo encendí. Ahora volví a conectar el adaptador a nuestro enchufe inteligente y así puedo controlarlo desde mi teléfono. De la misma manera, puedes controlar cualquier carga de CA de baja potencia en tu casa y divertirte.
El código completo se puede descargar desde aquí y el video de trabajo para esta toma de corriente inteligente de bricolaje se puede encontrar en la parte inferior de esta página. Espero que hayas disfrutado del proyecto, déjame saber en la sección de comentarios qué automatizarías con este dispositivo. Si tiene alguna pregunta, déjela en el foro y haré todo lo posible para responderla.