Tenía un ventilador viejo en mi habitación desde la infancia — perfectamente funcional, pero sin ningún tipo de mando a distancia. Así que decidí convertirlo en un ventilador controlado por Wi-Fi que puedo activar desde el móvil sin levantarme del sofá.
Lista de componentes
- ESP8266 (NodeMCU o Wemos D1 Mini)
- Módulo relé 5V
- Cargador USB viejo (como fuente de alimentación de 5V)
- Ventilador viejo
- Soldador + estaño
- Cable, termorretráctil o carcasa de cable
Desmontaje — la parte complicada
Abrir el ventilador fue el primer reto. Tres tornillos salieron fácilmente, pero los otros dos estaban completamente dañados — algún tipo de cabeza antivandálica que nunca había visto. Mi solución: marcar el centro del tornillo con un rotulador, calentar el soldador y fundir justo el plástico suficiente alrededor para girarlo. No es elegante y definitivamente no es algo que hacer en un espacio cerrado — los vapores del plástico fundido son dañinos. Abre una ventana o hazlo al aire libre.
Esquema y cableado
El plan es sencillo: el ESP8266 y el módulo relé necesitan 5V. Los obtengo de un cargador USB viejo — sus cables de fase y neutro se conectan a la red eléctrica, y la salida de 5V alimenta el ESP y el relé. El contacto normalmente abierto del relé está en serie con el cable neutro del ventilador. Cuando el relé cierra, el ventilador funciona; cuando abre, se detiene.
- Cargador USB → fase y neutro → salida 5V a ESP8266 VIN y relé VCC
- GPIO del ESP8266 → entrada del relé
- NO del relé → cable neutro del ventilador (en serie)
Tras soldar y aislar las conexiones, verifiqué la tensión de 5V con un multímetro antes de continuar.
El sketch
El ESP8266 se conecta al router Wi-Fi del hogar y arranca un pequeño servidor HTTP. Una única ruta — /toggle — cambia el estado del relé cada vez que se llama. Eso es todo.
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
const char* ssid = "TU_RED";
const char* password = "TU_CONTRASENA";
const int RELAY = D1;
ESP8266WebServer server(80);
bool fanOn = false;
void handleToggle() {
fanOn = !fanOn;
digitalWrite(RELAY, fanOn ? HIGH : LOW);
server.send(200, "text/plain", fanOn ? "ON" : "OFF");
}
void setup() {
pinMode(RELAY, OUTPUT);
digitalWrite(RELAY, LOW);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
server.on("/toggle", handleToggle);
server.begin();
}
void loop() {
server.handleClient();
}
El código fuente completo está en GitHub: github.com/viktoriabuilds/ventilator
Interfaz en el móvil
Un endpoint HTTP funciona, pero escribir una dirección IP cada vez es tedioso. Le pedí a una IA que generase una página HTML mínima con un único botón que llama a la ruta /toggle. La guardé como archivo HTML, la abrí en el móvil — listo. Un toque y el ventilador responde al instante.
Resultado final
Tras montar el ventilador de nuevo y hacer una prueba final, todo funcionó. El ventilador responde al instante, el ESP8266 mantiene la conexión de forma fiable y no tuve que comprar un ventilador inteligente nuevo. El coste total fue prácticamente cero, ya que todas las piezas estaban en mi cajón de componentes. Ahora puedo ser aún más perezosa cuando llegue el verano.