Kommunikation via MQTT mit dem ESP32

Übersicht über MQTT

Bei MQTT (Message Queuing Telemetry Transport) shandelt es sich um ein Netzwerkprotokoll, das vorwiegend für IoT (Internet of Things) Anwendungen eingesetzt wird.

MQTT basiert auf dem Publish-Subscriber-Modell.
Der Broker ist der zentrale Anlaufpunkt und Koordinator der Kommunikation mit den Clients. Eine direkte Kommunikation zwischen den Clients ist nicht möglich.

MQTT ist üblicherweise TCP/IP-basiert, weil so auf vorhandene Netz-Infrastrukturen zurückgegriffen werden kann.

Voraussetzungen für die Kommunikation via MQTT mit dem ESP32

MQTT Broker

Ein MQTT Broker muss aktiv und im LAN erreichbar sein.
Dies kann zum Beispiel ein Mosquitto Broker sein, der auf einem Raspberry pi Einplatinencomputer läuft.

Aufspannen eines WLANs

Da der ESP32 über WLAN kommunizieren soll, muss ein solches erreichbar sein.
Das kann das hauseigene WLAN sein, in das sich der ESP32 (im Station-Mode) einloggen kann, oder auch ein separates WLAN.

Der Broker muss über dieses WLAN erreichbar sein. Die IP-Adresse des Brokers muss für die Kommunikation via MQTT bekannt sein.

Es ist auch möglich, zu Testzwecken in eigenes WLAN von einem separaten ESP32 Mikrocontroller aufzuspannen. Mit diesem muss sich der Raspberry pi verbinden, auf dem Mosquitto läuft und der ESP32 der per MQTT kommunizieren soll. Dabei ist zu bedenken, dass ein ESP32 im AP-Modus maximal vier Teilnehmer gleichzeitig im aufgespannten WLAN zulässt.

Programmieren des ESP32

Der ESP32 muss programmiert werden. Dazu müssen passende Libraries für die MQTT-Kommunikation und ggf. für die Kommunikation mit angeschlossenen Sensoren geladen werden.
Die Programmierung kann mit PlatformIO und dem Arduino Framework geschehen.