Encender un LED por Wi-Fi con ESP32
Crea tu primer Servidor Web y controla un LED desde el móvil
Introducción
Imagina encender la luz de tu habitación desde la cama, usando solo el navegador de tu móvil. Eso es el Internet de las Cosas (IoT). En el tutorial anterior aprendimos a conectar el ESP32 al Wi-Fi y obtener una dirección IP. Hoy, vamos a usar esa IP para crear un Servidor Web dentro del propio ESP32.
Este proyecto es el "Hola Mundo" definitivo del IoT. Construiremos una página web ultra-simple que tendrá dos botones (links): uno para ENCENDER el LED integrado de la placa, y otro para APAGARLO.
Esquema de Conexiones
Para este primer proyecto, no necesitas cablear nada extra. Vamos a usar el LED azul integrado en la placa ESP32, que está conectado internamente al Pin 2 (En Arduino usábamos el Pin 13, pero en ESP32 es el Pin 2).
Si decides usar un LED externo con resistencia (220Ω), conéctalo al Pin 2.
El Concepto: ¿Cómo funciona un Servidor Web en un Microcontrolador?
Antes de ver el código, entiende la lógica (es más simple de lo que parece):
- Tu ESP32 se conecta al Wi-Fi y se queda "escuchando" en el puerto 80 (el puerto estándar de internet) esperando visitas.
- Tú abres el navegador de tu móvil y escribes la IP del ESP32 (ej:
192.168.1.50). - El móvil envía un mensaje al ESP32 diciendo: "Quiero ver tu página".
- El ESP32 lee ese mensaje y envía código HTML al móvil. El móvil dibuja dos botones: "ON" y "OFF".
- Cuando tú clicas en "ON", el móvil envía un mensaje nuevo al ESP32: "Quiero acceder a la ruta /on".
- El ESP32 lee la URL, ve que dice "/on", ejecuta
digitalWrite(2, HIGH), y enciende el LED.
Código de Arduino: Servidor Web Básico
Este código une la conexión Wi-Fi del tutorial anterior con la lógica de servidor. Es un código largo, pero la mayoría es estructural para mantener la comunicación HTTP.
Recuerda cambiar SSID y PASSWORD por los datos de tu casa.
Explicación del Código: La Lógica del Servidor
Las tres claves para entender este código y no copiarlo sin saber qué hace:
- WiFiServer server(80): Creamos un objeto "server" que escucha en el puerto 80. Es el puerto por defecto de internet. Si pusieras el 8080, tendrías que escribir en el navegador
192.168.1.50:8080. - client.println(...): Aquí estamos programando como webmasters. Escribimos código HTML que el móvil recibirá y dibujará. Hemos creado dos botones simples (<button>) que son enlaces (<a href>). Si clicas "ENCENDER", el móvil pide la ruta "/on".
- header.indexOf("GET /on"): Esta es la inteligencia. La variable
headerguarda toda la petición del móvil. Buscamos dentro de ese texto la palabra "GET /on". Si la encuentra, significa que el usuario clicó el botón de encender, así que ejecutamosdigitalWrite(HIGH).
Cómo probarlo en tu móvil o PC
- Sube el código a tu ESP32 y abre el Monitor Serie a 115200 baudios.
- El Monitor Serie imprimirá la IP (ej:
192.168.1.50). ¡Apunta esa IP! - Asegúrate que tu móvil está conectado a la misma red Wi-Fi de 2.4GHz que el ESP32.
- Abre Chrome, Safari o Firefox en tu móvil/PC.
- Escribe en la barra de direcciones la IP:
192.168.1.50(sin http ni www, solo los números). - Verás la página web con los dos botones. ¡Pruébalo! Verás el LED azul de la placa encenderse y apagarse, y el Monitor Serie te confirmará cada acción.
🛒 Materiales para este proyecto
| COMPONENTE | DESCRIPCIÓN | ENLACE |
|---|---|---|
| ESP32 DevKit V1 | Placa con Wi-Fi y Bluetooth integrados, usa su LED azul integrado en este proyecto. | VER EN AMAZON |
| Kit de LEDs variados + resistencias | Opcional, si quieres usar un LED externo en vez del integrado en la placa. | VER EN AMAZON |
🎥 Vídeo relacionado
❓ Preguntas frecuentes
Conclusión
Crear un servidor web en un chip de 5 euros es increíble. Has demostrado que puedes interactuar con el mundo físico desde una interfaz digital remota. Este ejemplo usa código HTML crudo muy básico; en proyectos más avanzados, el ESP32 puede servir páginas web complejas con CSS, JavaScript y gráficos (usando la librería ESPAsyncWebServer).
Si quieres ver otra forma de controlarlo sin usar Wi-Fi, en nuestro próximo tutorial te enseñaremos a encender el mismo LED usando Bluetooth Classic con ESP32 desde el móvil
Comentarios
Publicar un comentario