Llamador ESP-NOW con Deep Sleep | ESP32 bajo consumo
Antonio Romero


Antonio, por aquí.
Esta semana te traigo un proyecto muy práctico que uso en casa: un llamador inalámbrico entre plantas usando dos ESP32 y la tecnología ESP-NOW. Perfecto para cuando estás en el taller y alguien te necesita desde arriba.
Lo mejor de este sistema es que el emisor consume casi nada gracias al deep sleep, puede funcionar meses con una batería. Y el receptor es completamente silencioso, solo enciende un LED RGB hasta que presionas un botón de confirmación.
Materiales
Para el emisor (botón):
1x Pulsador
Para el receptor:
¿Qué es ESP-NOW?
ESP-NOW es un protocolo de comunicación directa entre dispositivos ESP32 que no necesita router WiFi. Es más rápido que conectar a una red WiFi tradicional y perfecto para este tipo de aplicaciones donde necesitas bajo consumo y respuesta inmediata.
La ventaja principal es que el dispositivo emisor puede despertar del deep sleep, enviar el mensaje y volver a dormir en menos de 300ms, consumiendo prácticamente nada.
Descargables
Programas
Los puedes descargar justo arriba!
Librerías necesarias:
esp_now.h
WiFi.h
esp_wifi.h
Todas estas librerías vienen incluidas en el core de ESP32, no necesitas instalar nada adicional.
Configuración paso a paso
1. Configura el Arduino IDE
Asegúrate de tener instalado el soporte para ESP32. En Herramientas, activa USB CDC On Boot tanto para el ESP32-S3 como para el ESP32-C3.
2. Sube el código al receptor (ESP32-C3)
Conecta el ESP32-C3, sube el código del receptor y abre el Monitor Serie a 115200 baudios. Verás algo como esto:
╔════════════════════════════════════╗
║ RECEPTOR LLAMADOR ESP-NOW ║
║ ArtificialRoot - Antonio ║ ╚════════════════════════════════════╝ ═══════════════════════════════════
COPIA ESTA MAC PARA EL EMISOR:
EC:DA:3B:BF:EB:FC
═══════════════════════════════════
🎧 Esperando llamadas...
¡IMPORTANTE! Copia esa dirección MAC, la necesitarás para el emisor.
3. Configura el emisor (ESP32-S3)
Abre el código del emisor y busca esta línea (línea 26):
uint8_t receptorMAC[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
Cámbiala por la MAC que copiaste del receptor. Por ejemplo:
uint8_t receptorMAC[] = {0xEC, 0xDA, 0x3B, 0xBF, 0xEB, 0xFC};
4. Sube el código al emisor
Sube el programa al ESP32-S3. Al terminar, presiona el botón RESET. El dispositivo entrará automáticamente en deep sleep.
Conexiones
Emisor (ESP32-S3):
Pulsador: un pin a GPIO9, otro a GND
LED integrado: GPIO48 (automático)
Batería a B+ y B-
Receptor (ESP32-C3):
LED RGB: + a GPIO2, - a GND
Botón ACK: un pin a GPIO3, otro a GND
USB para alimentación constante
Funcionamiento
El emisor permanece en deep sleep consumiendo ~10µA
Al presionar el botón, despierta en menos de 100ms
Envía el mensaje por ESP-NOW al receptor
Vuelve a deep sleep inmediatamente
El receptor enciende el LED RGB (que cambia de colores automáticamente)
El LED permanece encendido hasta que presionas el botón ACK
Sistema listo para la siguiente llamada
Por último...
Este proyecto es ideal para comunicación entre plantas de una casa, llamar desde el garaje al taller, o cualquier situación donde necesites un sistema de notificación simple y de bajo consumo.
Puedes ampliar el proyecto añadiendo más emisores (cada uno con su batería) que envíen al mismo receptor. Solo necesitas añadir identificadores en el mensaje para saber quién te está llamando.
¡¡Nos vemos o nos leemos!! Únete al Telegram para resolver dudas.
