ESP-Now: Schnelle und kabellose Kommunikation für ESP32 & ESP8266

Das ist ein vollwertiger Auszug aus dem Buch Elektronik und Heimautomation DIY.

ESP-NOW ist ein von Espressif entwickeltes verbindungsloses Kommunikationsprotokoll, das eine effiziente Paketübertragung im 2,4-GHz-Band ermöglicht. Mit diesem Protokoll können bis zu zwanzig ESP8266 oder ESP32 auf einfache Weise miteinander kommunizieren und Nachrichten von bis zu 250 Byte austauschen.

Jedes Board kann in einem ESP-NOW Netzwerk als Receiver (Empfänger), Transmitter (Sender) oder Transceiver (Sender & Empfänger) eingesetzt werden. Mit externen Antennen lassen sich Reichweiten von bis zu 400 Metern erzielen, während die eingebauten Antennen für eine zuverlässige Kommunikation innerhalb eines Gebäudes völlig ausreichen.

Ein entscheidender Vorteil ist, dass kein WiFi-Router oder externes Netzwerk erforderlich ist. Die Boards werden einmalig per „Pairing“ gekoppelt und verbinden sich nach einem Stromausfall oder Reset automatisch wieder mit ihren Gegenstücken.

ESP-NOW Netzwerk Modi

Jedes Gerät in einem ESP-NOW Netzwerk arbeitet in einem von zwei grundlegenden Rollen:

  • Initiator: Dieses Gerät startet die Übertragung. Es benötigt zwingend die MAC-Adresse des Zielgeräts.
  • Responder: Dieses Gerät empfängt die Daten des Initiators.

Hinweis: In einem Vollduplex-Netzwerk (Zwei-Wege-Kommunikation) agiert jedes Board gleichzeitig als Initiator und Responder.

Kommunikations-Topologien

ESP-NOW ist extrem flexibel und unterstützt verschiedene Netzwerk-Strukturen:

Einweg Kommunikation (1:1)

SenderSender
Transfer
EmpfängerEmpfänger

Ein Sender – Multiple Empfänger

ESP Now multiple Empfänger Übersicht

Multiple Sender – Ein Empfänger

ESP Now multiple Sender Übersicht

Zwei-Weg Netzwerk (Bidirektional)

ESP Now bidirektionales Netzwerk Übersicht

Die MAC Adresse auslesen

Die MAC-Adresse (Media Access Control) ist die eindeutige Hardware-Kennung eines Netzwerkgeräts. Da ESP-NOW auf dieser Ebene kommuniziert, müssen wir die MAC-Adresse des Empfängers kennen. Mit dem folgenden Sketch könnt ihr die Adresse eures Mikrocontrollers im Serial Monitor auslesen:

Arduino Sketch – MAC-Adresse auslesen
#include <WiFi.h> // Board: ESP32
//#include <ESP8266WiFi.h> // Board: ESP8266

void setup(){
  Serial.begin(115200);
  delay(1000);
  Serial.print("MAC-Address: ");
  Serial.println(WiFi.macAddress());
}

void loop(){}

Praxis Beispiel

In diesem Beispiel senden wir mit einem Arduino Nano ESP32 ein Signal per Tastendruck. Ein zweiter ESP empfängt dieses Signal und schaltet eine LED ein, solange der Taster am Sender gedrückt bleibt.

ESP Now Praxis Beispiel Aufbau

Hier findet ihr das benötigte Material!

Alle Links in dieser Tabelle sind Amazon Affiliate Links.


Der Sketch auf GitHub

Unterstütze meine Projekte

Wenn dir dieser Beitrag geholfen hat, freue ich mich über einen kleinen Beitrag für die Kaffeekasse.