La automatización del hogar es una de las aplicaciones más interesantes de la electrónica. En este cuarto proyecto de Ideas Makers, aprenderemos a controlar luces desde un teléfono móvil o computadora usando ESP8266 y un módulo relé.
🔎 ¿Por qué usar Wi-Fi para controlar luces?
✅ Comodidad: Enciende y apaga luces sin moverte.
✅ Automatización: Programa horarios de encendido y apagado.
✅ Eficiencia energética: Reduce el consumo eléctrico con control remoto.
🛠️ Materiales necesarios
Para este proyecto, necesitarás:
- ESP8266 (NodeMCU o similar)
- Módulo relé de 5V
- Bombilla LED o lámpara
- Fuente de alimentación de 5V
- Cables de conexión
- Protoboard
🔬 Cómo funciona el sistema
El ESP8266 actúa como un servidor web, permitiendo controlar la luz desde cualquier dispositivo conectado a la misma red Wi-Fi. Al recibir una orden, activa el módulo relé, que enciende o apaga la bombilla.
📐 Esquema del circuito
Aquí tienes el esquema de conexión del ESP8266 con el módulo relé:
+5V
│
┌─────┴─────┐
│ ESP8266 │ ← Microcontrolador con Wi-Fi
└─────┬─────┘
│
┌─────┴─────┐
│ Módulo Relé │ ← Activa la bombilla
└─────┬─────┘
│
🔦 Bombilla LED




💻 Código para ESP8266
Este código crea un servidor web en el ESP8266 para controlar la luz desde un navegador:
# **** VERSION ARDUINO ****
#include <ESP8266WiFi.h>
const char* ssid = "TuRedWiFi";
const char* password = "TuContraseñaWiFi";
WiFiServer server(80);
const int relePin = 5; // Pin del relé
void setup() {
pinMode(relePin, OUTPUT);
digitalWrite(relePin, LOW);
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi conectado");
server.begin();
}
void loop() {
WiFiClient client = server.available();
if (!client) return;
String request = client.readStringUntil('\r');
client.flush();
if (request.indexOf("/ON") != -1) {
digitalWrite(relePin, HIGH);
} else if (request.indexOf("/OFF") != -1) {
digitalWrite(relePin, LOW);
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<html><body>");
client.println("<h1>Control de Luces</h1>");
client.println("<a href='/ON'>Encender</a><br>");
client.println("<a href='/OFF'>Apagar</a>");
client.println("</body></html>");
client.stop();
}
# **** VERSION PYTHON ****
import network
import socket
import machine
# Configuración del Wi-Fi
SSID = "TuRedWiFi"
PASSWORD = "TuContraseñaWiFi"
# Configuración del relé
rele = machine.Pin(5, machine.Pin.OUT) # GPIO 5
# Conectar a Wi-Fi
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(SSID, PASSWORD)
while not wifi.isconnected():
pass # Esperar hasta que se conecte
print("Conectado a Wi-Fi:", wifi.ifconfig())
# Configuración del servidor web
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('', 80))
server.listen(5)
while True:
conn, addr = server.accept()
request = conn.recv(1024)
request = str(request)
if "/ON" in request:
rele.on()
elif "/OFF" in request:
rele.off()
response = """\
HTTP/1.1 200 OK
Content-Type: text/html
<html>
<body>
<h1>Control de Luces</h1>
<a href="/ON">Encender</a><br>
<a href="/OFF">Apagar</a>
</body>
</html>
"""
conn.send(response)
conn.close()
📌 Cómo funciona
✅ ESP8266 se conecta a Wi-Fi y crea un servidor web.
✅ El usuario accede a la página web en su navegador.
✅ Las solicitudes HTTP activan el relé, encendiendo o apagando la luz.
Este código es ideal para domótica y automatización.
🎯 Conclusión y aplicaciones
Este control de luces con Wi-Fi es ideal para:
✅ Domótica y automatización del hogar.
✅ Control remoto de dispositivos eléctricos.
✅ Integración con asistentes de voz.