Ein Sensor sendet Messwerte, aber das andere Gerät zeigt nichts an. Im Code fehlt jede Spur eines Empfängers, weil man einen gar nicht angeben kann.
MQTT ist ein Publish-Subscribe-System, also ein Verfahren, bei dem niemand direkt miteinander redet. Jedes Gerät sendet seine Nachrichten nur an den Broker, eine zentrale Vermittlungsstelle im Netzwerk. Diese verteilt jede Nachricht an alle Geräte, die das zugehörige Topic abonniert haben. Ein Topic ist ein hierarchischer Name mit Schrägstrichen, etwa wohnzimmer/temperatur, der eine Nachricht wie eine Adresse kennzeichnet. Wer published, veröffentlicht also unter einem Topic, ohne zu wissen, wer die Nachricht liest. Wer subscribed, meldet sich für ein Topic an und erhält künftig alle Nachrichten dazu. Ohne Broker findet in MQTT keine Kommunikation statt – die gesuchte Direktverbindung existiert nicht.
Ein Temperatur-Sensor am ESP32 liest die Temperatur und veröffentlicht sie alle paar Minuten unter wohnzimmer/temperatur. Danach schläft der Mikrocontroller bis zur nächsten Messung, was den Akku schont. Ein Display abonniert genau dieses Topic und zeigt den Wert an. Beide Geräte können unabhängig voneinander neu starten, ohne dass das andere davon abhängt.
So prüft man es: Zuerst nachsehen, ob der Broker läuft und beide Geräte mit ihm verbunden sind. Dann ein Testgerät unter wohnzimmer/temperatur publishen und am Display den eintreffenden Wert beobachten.
MQTT heißt nicht, Nachrichten direkt zu verschicken, sondern unter einem Topic zu veröffentlichen und den Broker verteilen zu lassen. Wer den Broker vergisst, sucht eine Verbindung, die es nie gab.
📌 Publish · Subscribe · Broker
📚 IoT von Grund auf · Tag 4 von 30
#mqtt #iot #esp32 #Mikrocontroller