ESP-NOW es un protocolo de comunicación inalámbrica desarrollado por Espressif Systems, diseñado específicamente para dispositivos basados en los chips ESP32 y ESP8266.
ESP-NOW es un sistema punto a punto (P2P) que permite a los dispositivos ESP32 y ESP8266 intercambiar datos sin necesidad de conectarse a una red Wi-Fi.
Características principales de ESP-NOW
- Baja latencia: ESP-NOW está diseñado para transmitir datos rápidamente, con tiempos de respuesta muy bajos.
- Bajo consumo de energía: Al no requerir una conexión Wi-Fi completa, ESP-NOW consume menos energía, lo que lo hace ideal para dispositivos alimentados por baterías.
- Conexión directa: Los dispositivos se comunican directamente entre sí, sin necesidad de un punto de acceso (Access Point) o un enrutador.
- Seguridad: ESP-NOW utiliza cifrado AES para garantizar que los datos transmitidos sean seguros.
- Fácil implementación: Con bibliotecas y ejemplos proporcionados por Espressif, es sencillo implementar ESP-NOW en proyectos con ESP32.
Comparación con otros protocolos
ESP-NOW está optimizado para la transmisión de pequeños paquetes de datos con baja latencia y bajo consumo de energía (a diferencia de otros protocolos como Wi-Fi o Bluetooth)
Protocolo | Latencia | Consumo | Alcance | Complejidad |
---|---|---|---|---|
ESP-NOW | 🟢Baja | 🟢 Bajo | 🟡 Medio | 🟢 Baja |
| **Wi-Fi** | 🟡Media | 🔴 Alto | 🟢 Alto | 🔴 Alta |
| Bluetooth| 🟡Media | 🟡 Medio | 🔴 Corto | 🟡 Media |
Como vemos, ESP-NOW ofrece un equilibrio entre latencia, consumo de energía y facilidad de uso, lo que lo convierte en una muy buena opción para muchas aplicaciones IoT.
Tamaño del mensaje: Asegúrate de que el mensaje no sea demasiado grande. ESP-NOW tiene un límite de 250 bytes por mensaje.
Cómo funciona ESP-NOW
ESP-NOW funciona mediante la creación de un enlace directo entre dos o más dispositivos ESP32.
Este enlace se establece utilizando direcciones MAC (Media Access Control), que son identificadores únicos para cada dispositivo en una red.
Para obtener la MAC de vuestro dispositivo, podéis ejecutar este código
#include "WiFi.h"
void setup()
{
Serial.begin(115200);
WiFi.mode(WIFI_MODE_STA);
Serial.println(WiFi.macAddress());
}
void loop()
{
}
Direcciones MAC: Las direcciones MAC deben ser únicas y correctamente configuradas en todos los dispositivos.
Cómo usar ESP-NOW
ESP-NOW está integrado en el core de ESP32, por lo que no necesitas ni hardware, ni instalar ninguna bibloteca.
Simplemente necesitas dos dispositivos ESP32. Puede ser cualquier modelo de ESP32. Y, tener correctamente configurado e instalado el IDE (lo de siempre, vamos).
En las siguientes entradas veremos distintos ejemplos de ESP-NOW, enviando distintos contenidos (json, structs) y en distintas configuraciónes (1 a 1, 1 a muchos, etc).