Kommunikation zwischen zwei ESP8266-Modulen
Dieses Handbuch zeigt Ihnen, wie Sie eine Verbindung zwischen zwei ESP8266-Geräten über TCP/IP über WLAN herstellen und Daten austauschen. Ein ESP8266 wird als TCP-Client fungieren, während der andere als TCP-Server agiert. Wir erläutern diesen Prozess anhand eines Beispiels:
- ESP8266 #1 wird mit einem Knopf verbunden und als TCP-Client fungieren.
- ESP8266 #2 wird mit einer LED verbunden und als TCP-Server fungieren.
- Beide ESP8266-Geräte werden über das Internet miteinander verbunden.
- Wenn der Knopf an ESP8266 #1 gedrückt wird, wird dadurch die LED an ESP8266 #2 eingeschaltet.
Erforderliche Hardware
2 | × | ESP8266 NodeMCU | |
2 | × | Micro-USB-Kabel | |
1 | × | (Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266 | |
1 | × | (Empfohlen) Stromverteiler für ESP8266 Typ-C |
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Kommunikation zwischen zwei ESP8266 – Überblick
Betrachten wir ein konkretes Beispiel: ESP8266 Nr. 1 interagiert mit ESP8266 Nr. 2. Es gibt zahlreiche Möglichkeiten, die Kommunikation zwischen den beiden ESP8266 zu ermöglichen. Wir können eine davon je nach Reichweite der Kommunikation auswählen. Die untenstehende Tabelle zeigt einige Methoden und deren jeweilige Reichweite.
Methods | Range |
---|---|
I2C | very short |
SPI | very short |
UART (TTL) | very short |
UART (RS-232/485/422) | short |
Bluetooth | short |
LoRa | long |
Ethernet/WiFi | unlimited(*) |
※ Notiz:
- Wenn zwei ESP8266 mit dem Internet verbunden sind, ist die Reichweite der Kommunikation uneingeschränkt.
- Wenn zwei ESP8266 jedoch nicht mit dem Internet verbunden sind, sondern im selben LAN-Netzwerk verbunden sind, ist ihre Kommunikationsreichweite auf dieses lokale Netzwerk beschränkt.
Unter den oben genannten Methoden verwendet dieses Tutorial WiFi, um die Kommunikation zwischen zwei ESP8266 zu ermöglichen, da es eine uneingeschränkte Reichweite der Kommunikation bietet.
Kommunikation zwischen zwei ESP8266 über lokales LAN oder Internet
Zwei ESP8266 können über WLAN miteinander kommunizieren, wenn:
- Sie befinden sich im selben lokalen Netzwerk (LAN) und eine Internetverbindung ist nicht erforderlich.
- Sie befinden sich in verschiedenen LANs und eine Internetverbindung ist erforderlich.
Ganz gleich, ob zwei ESP8266 über ein lokales Netzwerk oder über das Internet verbunden sind, gibt es zwei Kommunikationswege:
- Direkt zwischen den beiden ESP8266
- Über einen zentralen Server (z. B. ein MQTT-Server). Siehe Kommunikation zwischen zwei ESP8266 über MQTT
Wenn es um direkte Kommunikation geht, ist in der Regel ein ESP8266 der TCP-Client und der andere der TCP-Server.
Im Fall der Nutzung eines zentralen Servers für die Kommunikation agieren typischerweise beide ESP8266 als TCP-Clients.
Bei der Festlegung eines Anwendungsprotokolls für die Kommunikation zwischen zwei ESP8266-Modulen haben wir mehrere Optionen zur Auswahl:
- Selbst definiertes Protokoll über rohes TCP
- Modbus TCP
- HTTP
- Telnet
- SSH
- MQTT (das einen zentralen Server erfordert)
Beispielanwendung
Lassen wir das folgende Programm Wirklichkeit werden: Ein an ESP8266 #1 angeschlossener Knopf oder Schalter wird verwendet, um eine LED, die mit ESP8266 #2 verbunden ist, über WiFi ein- und auszuschalten.

Wie bereits erwähnt, gibt es einige Anwendungsprotokolle. Um dieses Beispiel zu vereinfachen, werden wir unser eigenes Protokoll erstellen (ein selbst definiertes Protokoll).
Selbstdefiniertes Protokoll
Lassen Sie uns ein einfaches Protokoll aufsetzen:
- Eine TCP-Verbindung zwischen ESP8266 #1 und ESP8266 #2 herstellen.
- ESP8266 #1:
- Verhalte dich als TCP-Client und initiiere die TCP-Verbindung zu ESP8266 #2.
- Wenn der Schalter auf AN gestellt wird, sende ein Byte (Befehl) mit dem Wert 1 an ESP8266 #2.
- Wenn der Schalter auf AUS gestellt wird, sende ein Byte (Befehl) mit dem Wert 0 an ESP8266 #2.
- ESP8266 #2:
- Als TCP-Server fungieren und Verbindungsanfragen von ESP8266 #1 entgegennehmen.
- Wenn das empfangene Byte 1 ist, schalte die LED ein.
- Wenn das empfangene Byte 0 ist, schalte die LED aus.
- ESP8266 #1 - Verdrahtungsdiagramm zwischen ESP8266 und Taster
- ESP8266 Nr. 2 - Schaltplan zwischen ESP8266 und LED
- Schauen Sie sich das Tutorial zur Einrichtung der Umgebung für ESP8266 in der Arduino IDE an, wenn Sie ESP8266 zum ersten Mal verwenden.
- Verbinden Sie die Komponenten wie im Diagramm gezeigt.
- Schließen Sie zwei ESP8266-Boards mit einem USB-Kabel an Ihren Computer an.
- Öffnen Sie die Arduino IDE (genannt Arduino IDE #1).
- Öffnen Sie die Arduino IDE (genannt Arduino IDE #2).
- Wählen Sie das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E-Modul), und den entsprechenden COM-Port.
- Installieren Sie die ezButton-Bibliothek in der Arduino IDE.
- Kopieren Sie den ESP8266-1-Code, fügen Sie ihn in die Arduino IDE #1 ein und speichern Sie ihn (unter dem Namen ESP8266-1).
- Kopieren Sie den ESP8266-2-Code, fügen Sie ihn in die Arduino IDE #2 ein und speichern Sie ihn (unter dem Namen ESP8266-2).
- Laden Sie zunächst den ESP8266-2-Code auf ESP8266-2 hoch.
- Öffnen Sie den Seriellen Monitor in der Arduino IDE #2 und ermitteln Sie die TCP-Server-IP-Adresse.
- Ändere die TCP-Server-IP-Adresse im Code von ESP8266 #1.
- Lade den ESP8266 #1-Code auf den ESP8266 #1 hoch.
- Öffne den Serial Monitor in der Arduino-IDE #1.
- Drücke den Knopf auf dem ESP8266 #1, halte ihn gedrückt und beobachte den Zustand der LED auf dem ESP8266 #2 (sie sollte AN sein).
- Lass den Knopf am ESP8266 #1 los und beobachte den Zustand der LED am ESP8266 #2 (sie sollte AUS sein).
- Drücke den Knopf, halte ihn gedrückt und lasse ihn mehrmals los.
- Überprüfe die Ausgabe im Serial Monitor #1:
- Überprüfen Sie die Ausgabe im Serial Monitor Nr. 2:
Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
ESP8266-Code für ESP8266 Nr. 1
ESP8266-Code für ESP8266 #2
Schnelle Schritte
Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.
Wie man zwei ESP8266 über das Internet verbindet
Es gibt zwei Arten von IP-Adressen: privat und öffentlich. Die im Heimnetzwerk üblicherweise verwendete IP-Adresse ist privat.
Es ist einfach, eine private IP-Adresse zu erkennen. Es gibt drei Formate privater IP-Adressen: 10.x.x.x, 172.16.x.x, 192.168.x.x
Es ist nicht wichtig, die private IP-Adresse in den folgenden Szenarien zu verwenden:
- Wenn zwei ESP8266 sich im selben lokalen Netzwerk befinden, unabhängig davon, ob sie direkt kommunizieren oder über einen zentralen Server, und unabhängig davon, ob das LAN mit dem Internet verbunden ist oder nicht.
- Wenn zwei ESP8266 sich in unterschiedlichen lokalen Netzwerken befinden und über einen zentralen Server miteinander kommunizieren.
Im Falle zweier ESP8266, die sich in unterschiedlichen LAN-Netzen befinden und direkt miteinander kommunizieren, kann der ESP8266 TCP-Client eine private IP-Adresse verwenden. Der ESP8266 TCP-Server muss jedoch entweder:
- Eine öffentliche IP-Adresse
- Eine private IP-Adresse mit Portweiterleitung am Router oder Zugangspunkt
Die Technik der Portweiterleitung variiert je nach Router bzw. Access Point. Dieses Tutorial behandelt dieses Thema nicht.