ESP32 - MQTT
In deze tutorial gaan we verkennen hoe u de ESP32 kunt gebruiken om gegevens te verzenden en te ontvangen via een MQTT broker met behulp van het MQTT-protocol. We behandelen specifiek:
- Het tot stand brengen van een verbinding tussen ESP32 en een MQTT broker.
- Het programmeren van ESP32 om data te verzenden naar een MQTT broker door te publiceren op een MQTT-topic.
- Het programmeren van ESP32 om data te ontvangen door u te abonneren op een MQTT-topic.

We behandelen twee verschillende scenario’s:
- ESP32 met een online MQTT broker.
- ESP32 met een MQTT broker die op uw PC is geïnstalleerd.
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables ESP32 Starterskit (ESP32 inbegrepen) | |
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over ESP32 en MQTT
Bent u al bekend met het MQTT-protocol? Geweldig! Zo niet, dan kunt u er online informatie over vinden. Deze handleiding gaat over het gebruik van ESP32 om data te verzenden en te ontvangen met MQTT.
Hier zijn enkele manieren waarop ESP32 kan samenwerken met MQTT:
- Verbind de ESP32 met een online MQTT broker zoals Mosquitto of AWS IoT.
- Verbind de ESP32 met een MQTT broker die op uw computer is geïnstalleerd, zoals Mosquitto of HiveMQ.
- Verbind de ESP32 met een MQTT broker die loopt op uw Raspberry Pi, bijvoorbeeld Mosquitto.
- Verbind de ESP32 met een cloud-gebaseerde MQTT broker, zoals Mosquitto of HiveMQ op AWS EC2.
In deze tutorial beginnen we met controleren of de ESP32 verbinding kan maken met een online Mosquitto broker. De ESP32 zal via deze broker data verzenden en ontvangen via internet.
Daarna gaan we de Mosquitto broker op onze pc installeren. We verbinden de ESP32 met deze lokale broker en blijven data versturen en ontvangen.
Na het voltooien van deze tutorial kunt u verder ontdekken met deze extra tutorials:
Deze links bieden verdere begeleiding over gerelateerde onderwerpen.
Verbind ESP32 met een online MQTT broker
In dit gedeelte leren we hoe we ESP32 verbinden met test.mosquitto.org, een online MQTT broker beheerd door Mosquitto. Let op dat deze broker alleen voor testdoeleinden bedoeld is.
ESP32 Code
De onderstaande ESP32-code doet het volgende:
- Verbindt met de MQTT broker
- Abonneert zich op een topic
- Publiceert periodiek berichten op hetzelfde topic waarop het is geabonneerd
Snelle Stappen
- Als dit de eerste keer is dat u ESP32 gebruikt, bekijk dan hoe u de omgeving voor ESP32 instelt in de Arduino IDE.
- Maak de bedrading volgens de afbeelding hierboven.
- Verbind de ESP32 met uw pc via een USB-kabel.
- Open Arduino IDE op uw pc.
- Selecteer de juiste ESP32 board (bijvoorbeeld ESP32 Dev Module) en de juiste COM-poort.
- Open Arduino IDE op uw pc.
- Open de Library Manager door te klikken op het Library Manager icoon in de linker navigatiebalk van Arduino IDE.
- Typ MQTT in het zoekvak en zoek de MQTT library van Joel Gaehwiler.
- Klik op de knop Install om de MQTT library te installeren.

- Typ ArduinoJson in het zoekvak en zoek de ArduinoJson library van Benoit Blanchon.
- Klik op de knop Install om de ArduinoJson library te installeren.

- Kopieer de bovenstaande code en open die in Arduino IDE.
- Vervang in de code de WiFi-gegevens (SSID en wachtwoord) door uw eigen gegevens.
- In de code komt driemaal het woord 'YOUR-NAME' voor. Vervang dit woord door uw naam of willekeurige karakters (alleen alfabetische letters, geen spaties). Dit is noodzakelijk omdat, als meerdere mensen dezelfde code draaien zonder dit aan te passen, er conflicten kunnen ontstaan omdat de MQTT client IDs en topics voor iedereen hetzelfde zijn.
- Klik op de knop Upload in Arduino IDE om de code naar de ESP32 te uploaden.
- Open de Serial Monitor.
- Bekijk de resultaten in de Serial Monitor.
Zoals u ziet publiceert de ESP32 berichten naar de MQTT broker en ontvangt vervolgens hetzelfde bericht terug. Dit komt omdat de gegeven code zich abonneert op hetzelfde topic waarop het publiceert. Wilt u dat de ESP32 het zelf gepubliceerde bericht niet ontvangt, dan kunt u dit eenvoudig bereiken door de SUBSCRIBE-topic anders te maken dan de PUBLISH-topic.
Verbind ESP32 met de MQTT broker die op uw PC is geïnstalleerd
Mosquitto MQTT Broker Installeren
- Download de Mosquitto MQTT Broker
- Installeer deze op de D: schijf in plaats van de C: schijf. Vermijd installatie op de C: schijf om mogelijke problemen te voorkomen.
Mosquitto MQTT broker starten
Laten we controleren of de MQTT broker correct werkt door de volgende stappen te doorlopen:
- Ga naar de map waar Mosquitto is geïnstalleerd, bijvoorbeeld: D:\Draft\mosquitto>
- Maak een nieuw bestand aan met de naam test.conf, kopieer onderstaande inhoud en sla het bestand op in die map:
- Start een Command Prompt als Administrator op uw pc. We noemen dit venster de Broker Window. Sluit dit venster NIET voordat de tutorial is afgelopen.

- Voer onderstaande commando’s één voor één uit:
- U ziet dit verschijnen:
- Open nog een Command Prompt als Administrator op uw pc.
- Zoek het IP-adres van uw pc op door het volgende commando uit te voeren:
- Noteer het IP-adres voor later gebruik. In dit voorbeeld is het: 192.168.0.26
Test of de Mosquitto Broker werkt
- Open nog een Command Prompt als Administrator. We noemen dit venster Subscriber Window.
- Abonneer u op een topic door onderstaande commando’s uit te voeren (vervang het IP-adres door dat van uw pc):
- Open nog een Command Prompt als Administrator. We noemen dit venster Publisher Window.
- Publiceer een bericht naar hetzelfde topic door de volgende commando’s uit te voeren (vervang het IP-adres door dat van uw pc):
- U ziet het volgende:
Het bericht wordt doorgegeven aan het Subscriber Window zoals hieronder zichtbaar is:
U hebt nu succesvol de Mosquitto MQTT broker op uw pc geïnstalleerd. Sluit de drie vensters NIET af: Broker Window, Subscriber Window en Publisher Window. We gaan ze zo gebruiken.
ESP32 Code
De onderstaande ESP32-code doet het volgende:
- Verbindt met de MQTT broker
- Abonneert zich op een topic
- Publiceert periodiek berichten aan een ander topic
Snelle Stappen
- Kopieer de bovenstaande code en open die met Arduino IDE.
- Vervang de WiFi-gegevens (SSID en wachtwoord) in de code door uw eigen.
- Vervang het adres van de MQTT broker in de code (domeinnaam of IP-adres).
- Klik op de knop Upload in Arduino IDE om de code naar ESP32 te uploaden.
Bericht verzenden van ESP32 naar PC via MQTT
De ESP32-code publiceert data naar het MQTT-topic esp32-001/send. Het Subscriber Window op de pc abonneert zich op dit topic om de data te ontvangen.
- Open de Serial Monitor; u ziet dat ESP32 periodiek een bericht naar een topic publiceert.
- Controleer het Subscriber Window; u ziet dat het de door ESP32 gepubliceerde berichten ontvangt, als volgt:
Bericht verzenden van PC naar ESP32 via MQTT
ESP32 is geabonneerd op het topic esp32-001/receive. Het Publisher Window op PC publiceert een bericht naar dit topic om het naar ESP32 te sturen.
- Publiceer een bericht naar het topic waarop ESP32 geabonneerd is door dit commando te gebruiken in het Publisher Window:
- U zult dit bericht in de Serial Monitor van ESP32 ontvangen, zoals hieronder:
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.