Kommunikation zwischen zwei Arduino Nano ESP32 über MQTT
In diesem Tutorial werden wir Folgendes behandeln:
- Bidirektionale Kommunikation zwischen zwei Arduino Nano ESP32s über MQTT.
- Beispielanwendung: Die Verwendung eines Knopfes oder Schalters, der mit Arduino Nano ESP32 #1 verbunden ist, um eine LED zu steuern, die mit Arduino Nano ESP32 #2 verbunden ist, über MQTT.

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Kaufhinweis: Um den Verdrahtungsprozess zu vereinfachen, empfehlen wir die Verwendung des LED Module, das mit einem eingebauten Widerstand geliefert wird.
Über Arduino Nano ESP32 und MQTT
Wir haben hier eine detaillierte Anleitung, wie man den Arduino Nano ESP32 mit MQTT verwendet:
Kommunikation zwischen zwei Arduino Nano ESP32 über MQTT
Zwei Arduino Nano ESP32-Boards können miteinander über einen MQTT-Server kommunizieren. Wenn Sie es bevorzugen, dass sie direkt ohne einen MQTT-Server kommunizieren, lesen Sie bitte das Tutorial zu Arduino Nano ESP32 zu Arduino Nano ESP32 TCP-Client/Server-Kommunikation.
Wenn Arduino Nano ESP32 #1 und Arduino Nano ESP32 #2 Daten über einen MQTT-Broker austauschen:
- Beide Arduino Nano ESP32s verbinden sich mit dem MQTT-Broker.
- Damit Arduino Nano ESP32 #2 Daten an Arduino Nano ESP32 #1 senden kann:
- Arduino Nano ESP32 #1 abonniert ein Thema, zum Beispiel: arduino-nano-esp32-1/data.
- Arduino Nano ESP32 #2 kann Daten an Arduino Nano ESP32 #1 senden, indem die Daten auf das Thema veröffentlicht werden, das von Arduino Nano ESP32 #1 abonniert ist.
- Ähnlich, damit Arduino Nano ESP32 #1 Daten an Arduino Nano ESP32 #2 senden kann:
- Arduino Nano ESP32 #2 abonniert ein Thema, zum Beispiel: arduino-nano-esp32-2/data.
- Arduino Nano ESP32 #1 kann Daten an Arduino Nano ESP32 #2 senden, indem die Daten auf das Thema veröffentlicht werden, das von Arduino Nano ESP32 #2 abonniert ist.
Durch diese Methode können zwei Arduino Nano ESP32s Daten bidirektional austauschen.
Beispiel-Anwendungsfall
Lassen Sie uns die folgende Anwendung realisieren: Ein Knopf oder Schalter, der mit Arduino Nano ESP32 #1 verbunden ist, steuert eine LED, die mit Arduino Nano ESP32 #2 über MQTT verbunden ist.

Wie oben erwähnt gibt es einige Anwendungsprotokolle, die wir verwenden können. In diesem Beispiel, um es einfach zu halten, werden wir ein Protokoll selbst definieren (ein selbstdefiniertes Protokoll).
So funktioniert es
Lassen Sie uns ein einfaches Protokoll festlegen:
- Sowohl Arduino Nano ESP32 #1 als auch Arduino Nano ESP32 #2 verbinden sich mit einem MQTT-Broker (MQTT-Server).
- Für Arduino Nano ESP32 #1:
- Arduino Nano ESP32 #1 sendet eine MQTT-Nachricht an ein Thema, wann immer der Zustand eines Schalters sich ändert.
- Wenn der Knopf oder Schalter eingeschaltet wird, wird das Payload der MQTT-Nachricht auf 1 gesetzt.
- Wenn der Knopf oder Schalter ausgeschaltet wird, wird das Payload der MQTT-Nachricht auf 0 gesetzt.
- Für Arduino Nano ESP32 #2:
- Arduino Nano ESP32 #2 abonniert das Thema.
- Wenn Arduino Nano ESP32 #2 eine MQTT-Nachricht mit einem Payload von 1 erhält, schaltet es eine LED ein.
- Wenn Arduino Nano ESP32 #2 eine MQTT-Nachricht mit einem Payload von 0 erhält, schaltet es die LED aus.
- Arduino Nano ESP32 #1 - Verdrahtungsdiagramm zwischen Arduino Nano ESP32 und Taster
- Arduino Nano ESP32 #2 - Verdrahtungsdiagramm zwischen Arduino Nano ESP32 und LED
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Kommunikation zwischen zwei Arduino Nano ESP32 über MQTT
Arduino Nano ESP32 Code Nr. 1
Arduino Nano ESP32 Code Nr. 2
Schnelle Schritte
Um mit dem Arduino Nano ESP32 zu beginnen, befolgen Sie diese Schritte:
- Wenn Sie neu bei Arduino Nano ESP32 sind, lesen Sie das Tutorial zur Einrichtung der Umgebung für Arduino Nano ESP32 in der Arduino IDE wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
- Verdrahten Sie die Bauteile gemäß dem bereitgestellten Diagramm.
- Schließen Sie das Arduino Nano ESP32-Board mit einem USB-Kabel an Ihren Computer an.
- Starten Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das Arduino Nano ESP32-Board und seinen entsprechenden COM-Port aus.
- Verdrahten Sie einen Knopf/Schalter an Arduino Nano ESP32 #1.
- Verdrahten Sie eine LED an Arduino Nano ESP32 #2.
- Öffnen Sie die Arduino IDE (die Arduino IDE #1 genannt).
- Öffnen Sie ein weiteres Arduino IDE-Fenster (genannt Arduino IDE #2) durch Klicken Sie auf das Arduino IDE-Symbol auf Ihrem PC (wichtig!()).
- Öffnen Sie den Library Manager, indem Sie auf das Library Manager-Symbol in der linken Navigationsleiste der Arduino IDE klicken.
- Geben Sie im Suchfeld MQTT ein, suchen Sie dann nach der MQTT-Bibliothek von Joel Gaehwiler.
- Klicken Sie auf die Schaltfläche Install, um die MQTT-Bibliothek zu installieren.

- Geben Sie ezButton in das Suchfeld ein, dann finden Sie die Button-Bibliothek von ArduinoGetStarted
- Klicken Sie auf die Schaltfläche Installieren, um die ezButton-Bibliothek zu installieren.

- Verbinden Sie Arduino Nano ESP32 #1 mit dem PC über ein USB-Kabel und wählen Sie den COM-Port des Arduino Nano ESP32 #1 in der Arduino IDE #1 aus.
- Verbinden Sie Arduino Nano ESP32 #2 mit dem PC über ein USB-Kabel und wählen Sie den COM-Port des Arduino Nano ESP32 #2 in der Arduino IDE #2 aus.
- Kopieren Sie den Code von Arduino Nano ESP32 #1, fügen Sie ihn in die Arduino IDE #1 ein und speichern Sie ihn unter dem Namen Arduino Nano ESP32-1.
- Kopieren Sie den Code von Arduino Nano ESP32 #2, fügen Sie ihn in die Arduino IDE #2 ein und speichern Sie ihn unter dem Namen Arduino Nano ESP32-2.
- Ersetzen Sie die WiFi-Informationen (SSID und Passwort) in beiden Codes durch Ihre eigenen.
- Ersetzen Sie die MQTT-Broker-Adresse in beiden Codes (Domänenname oder IP-Adresse).
- Laden Sie den Code von Arduino Nano ESP32 #1 auf Arduino Nano ESP32 #1 hoch.
- Laden Sie den Code von Arduino Nano ESP32 #2 auf Arduino Nano ESP32 #2 hoch.
- Öffnen Sie den seriellen Monitor in der Arduino IDE #1.
- Öffnen Sie den seriellen Monitor in der Arduino IDE #2.
- Drücken und halten Sie den Knopf am Arduino Nano ESP32 #1 → Sehen Sie den LED-Zustand am Arduino Nano ESP32 #2 (AN).
- Lassen Sie den Knopf am Arduino Nano ESP32 #1 los → sehen Sie den LED-Zustand am Arduino Nano ESP32 #2 (AUS).
- Drücken, halten und mehrmals den Knopf loslassen.
- Sehen Sie die Ausgabe in beiden seriellen Monitoren.
- Serieller Monitor von Arduino Nano ESP32 #1.
- Serieller Monitor von Arduino Nano ESP32 #2