Arduino naar Arduino MQTT-communicatie
In deze tutorial gaan we leren:
- Communicatie tussen twee Arduino’s via MQTT in twee richtingen
- Voorbeeldtoepassing: Een knop/schakelaar verbonden met Arduino #1 bestuurt een LED verbonden met Arduino #2 via MQTT

Benodigde hardware
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over Arduino en MQTT
We hebben een gedetailleerde tutorial over het gebruik van Arduino met MQTT hier:
Communicatie tussen twee Arduino’s via MQTT
Twee Arduino-boards kunnen met elkaar communiceren via een MQTT-server. Wilt u twee Arduino’s direct zonder MQTT-server laten communiceren, bekijk dan de tutorial over Arduino naar Arduino TCP Client/Server communicatie.
Wanneer Arduino #1 en Arduino #2 data uitwisselen via een MQTT-broker:
- Beide Arduino’s maken verbinding met de MQTT-broker.
- Om Arduino #2 data naar Arduino #1 te laten sturen:
- Arduino #1 abonneert zich op een topic, bijvoorbeeld: arduino-1/data.
- Arduino #2 kan data naar Arduino #1 sturen door data te publiceren op het topic waarop Arduino #1 geabonneerd is.
- Op dezelfde manier, om Arduino #1 data naar Arduino #2 te laten sturen:
- Arduino #2 abonneert zich op een topic, bijvoorbeeld: arduino-2/data.
- Arduino #1 kan data naar Arduino #2 sturen door data te publiceren op het topic waarop Arduino #2 geabonneerd is.
Met deze methode kunnen twee Arduino’s bidirectioneel data uitwisselen.
Voorbeeldtoepassing
Laten we de volgende toepassing realiseren: Een knop/schakelaar verbonden met Arduino #1 bestuurt via MQTT een LED verbonden met Arduino #2.

Zoals hierboven vermeld zijn er diverse applicatieprotocollen die we kunnen gebruiken. In dit voorbeeld maken we het eenvoudig en definiëren we zelf een protocol (een zelfgedefinieerd protocol).
Zelfgedefinieerd Protocol
Laten we een eenvoudig protocol definiëren:
- Arduino #1 en Arduino #2 maken verbinding met de MQTT Broker (MQTT-server)
- Arduino #1:
- Arduino #1 publiceert een MQTT-bericht op een topic wanneer de stand van de schakelaar verandert.
- Wanneer de knop/schakelaar aan wordt gezet, is de payload van het MQTT-bericht 1.
- Wanneer de knop/schakelaar uit wordt gezet, is de payload van het MQTT-bericht 0.
- Arduino #2:
- Arduino #2 abonneert zich op het topic.
- Als Arduino #2 een MQTT-bericht ontvangt met payload 1, zet het de LED aan.
- Als Arduino #2 een MQTT-bericht ontvangt met payload 0, zet het de LED uit.
- Arduino #1 - Bedradingsschema tussen Arduino en knop
- Arduino #2 - Bedradingsschema tussen Arduino en LED
Bedradingsschema

This image is created using Fritzing. Click to enlarge image

This image is created using Fritzing. Click to enlarge image
Communicatie tussen twee Arduino’s via MQTT
Arduino Code #1
Arduino Code #2
Snelle stappen
- Verbind een knop/schakelaar met Arduino #1
- Verbind een LED met Arduino #2
- Open de Arduino IDE (genoemd Arduino IDE #1)
- Open een tweede Arduino IDE-venster (genoemd Arduino IDE #2) door op het Arduino IDE-pictogram op uw pc te klikken (belangrijk!())
- Open de Library Manager door te klikken op het Library Manager icoon in de linkerzijbalk van de Arduino IDE
- Typ MQTT in het zoekvak en zoek naar de MQTT library van Joel Gaehwiler.
- Klik op de Installeren knop om de MQTT-library te installeren.

- Typ ezButton in het zoekvak en zoek de button library van ArduinoGetStarted
- Klik op de Installeren knop om de ezButton-library te installeren.

- Verbind Arduino #1 met de pc via USB-kabel en selecteer de COM-poort van Arduino #1 in Arduino IDE #1
- Verbind Arduino #2 met de pc via USB-kabel en selecteer de COM-poort van Arduino #2 in Arduino IDE #2
- Kopieer de code van Arduino #1, plak deze in Arduino IDE #1 en sla het op (noem het Arduino-1)
- Kopieer de code van Arduino #2, plak deze in Arduino IDE #2 en sla het op (noem het Arduino-2)
- Vervang de WiFi-gegevens (SSID en wachtwoord) in beide codes door uw eigen gegevens.
- Vervang het adres van de MQTT-broker in beide codes (domeinnaam of IP-adres).
- Upload de code naar Arduino #1
- Upload de code naar Arduino #2
- Open de Serial Monitor in Arduino IDE #1
- Open de Serial Monitor in Arduino IDE #2
- Druk de knop op Arduino #1 in en houd vast → zie de status van de LED op Arduino #2 (AAN)
- Laat de knop op Arduino #1 los → zie de status van de LED op Arduino #2 (UIT)
- Druk de knop meerdere keren in, houd vast en laat weer los.
- Bekijk de output in beide Serial Monitors
- Serial Monitor van Arduino #1
- Serial Monitor van Arduino #2