Encender un LED por Bluetooth con ESP32
Control local sin necesidad de Wi-Fi ni router
Introducción
En el tutorial anterior encendimos un LED creando un Servidor Web Wi-Fi. Es una solución fantástica, pero requiere que el ESP32 y tu móvil estén conectados al mismo router de casa. ¿Qué pasa si quieres controlar tu proyecto en el campo, en un coche, o sin red Wi-Fi? Aquí entra el Bluetooth.
El ESP32 incluye Bluetooth Classic (el mismo tipo que usan los altavoces o los cascos) que permite una conexión peer-to-peer directa entre tu móvil y la placa. En este proyecto crearemos un control remoto de LED ultra-simple usando una aplicación de Terminal Bluetooth.
⚠️ App Requerida en tu Móvil
No puedes controlar el Bluetooth desde un navegador web. Necesitas una app en tu Android o iPhone que envíe "mensajes de texto" por Bluetooth. La mejor y más usada por la comunidad Maker es "Serial Bluetooth Terminal" (por Kai Morich). Es gratis y robusta. Descárgala antes de empezar.
El Concepto: Terminal vs Servidor Web
En el post de Wi-Fi, el móvil enviaba una URL (/on). En Bluetooth, el móvil envía cadenas de texto simples (como si estuvieras chateando con el ESP32). Si le envías la palabra "ON", el ESP32 enciende el LED y te responde "LED Encendido".
Código de Arduino: Control por Bluetooth Classic
El ESP32 tiene una librería nativa llamada BluetoothSerial que funciona exactamente igual que Serial, pero enviando los datos por el aire en lugar del cable USB.
Usaremos el LED integrado (Pin 2) para no necesitar cableado extra.
Explicación del Código: El Bug Oculto Resuelto
Este código es muy simple, pero hay un problema técnico que frustra a todos los principiantes y que he solucionado directamente en el código:
- SerialBT.begin("ESP32_LED_Control"): Este es el nombre que aparecerá cuando busques dispositivos Bluetooth en tu móvil. Ponle el que quieras.
- SerialBT.readString(): Lee todo lo que le envías desde la App del móvil.
- El Bug del Salto de Línea (\n): Cuando tú tecleas "ON" en la app y pulsas Enter, la app envía "ON" seguido de un carácter oculto de salto de línea (
\n). Si en tu código pusierasif (message == "ON"), fallaría siempre, porque el ESP32 compara "ON" con "ON\n" y no son iguales. Solucionar esto usando.indexOf("ON")(que busca la palabra dentro del texto completo, ignorando el salto de línea) es el truco profesional que diferencia un blog experto de un blog amateur. - SerialBT.println("LED ENCENDIDO"): El ESP32 no solo recibe, también envía. Esto hará que en la app del móvil veas un mensaje de confirmación, creando una experiencia de chat bidireccional muy satisfactoria.
Cómo probarlo paso a paso
- Sube el código a tu ESP32.
- En tu móvil Android/iOS, ve a Configuración > Bluetooth. Busca el dispositivo "ESP32_LED_Control" y empareja con él (No requiere contraseña, o pone 1234/pin genérico).
- Abre la App "Serial Bluetooth Terminal".
- En la app, haz clic en el icono de Conexión (símbolo de link) y selecciona "ESP32_LED_Control". Deberás escuchar un sonido de conexión.
- En la barra de texto de la app, teclea
ONy pulsa el botón de enviar. El LED azul de la placa se encenderá y en la app aparecerá "LED ENCENDIDO". - Teclea
OFFy pulsa enviar. El LED se apagará.
Wi-Fi vs Bluetooth: ¿Cuándo usar cada uno?
Con esto, dominas las dos formas de comunicación inalámbrica del ESP32:
- Wi-Fi (Servidor Web): Ideal si quieres controlar desde cualquier lugar del mundo (si tu red tiene acceso externo), si quieres una interfaz gráfica bonita con botones en pantalla, o si muchos dispositivos van a conectarse a la vez.
- Bluetooth Classic (Terminal): Ideal para control rápido en la misma habitación sin configurar redes, para depurar proyectos (enviar comandos de prueba), o para proyectos que no tienen acceso a Wi-Fi.
🛒 Materiales para este proyecto
| COMPONENTE | DESCRIPCIÓN | ENLACE |
|---|---|---|
| ESP32 DevKit V1 | Placa con Bluetooth Classic integrado, usa su LED azul en este proyecto. | VER EN AMAZON |
🎥 Vídeo relacionado
❓ Preguntas frecuentes
Conclusión
El ESP32 es una navaja suiza: Wi-Fi, Bluetooth, Dual-Core y pines por montones. Dominar sus comunicaciones inalámbricas te abre las puertas al Smart Home, la robótica avanzada y la domótica industrial. Desde encender un LED por red local hasta controlarlo por Bluetooth, ya tienes las bases sólidas para construir proyectos complejos.
Si quieres comparar las características hardware de este chip con el clásico Arduino, te recomendamos nuestro artículo Arduino vs ESP32: ¿Qué placa debes elegir? (⚠️ URL estimada — confírmame la real). ¡Sigue experimentando!
Comentarios
Publicar un comentario