Am 11. Tag des IoT Adventskalenders haben wir uns mit MQTT beschäftigt, welches speziell für die M2M-Kommunikation entwickelt wurde. Es ist in erster Linie ein Nachrichtenprotokoll für das Internet of Things und ist so z.B. für Smart Homes oder aber auch Anwendungen aus Industrie 4.0 besonders gut geeignet.
UDP vs. MQTT
Bisher haben wir im Rahmen unserer
Adventskalender-Experimente die meisten unserer Daten über Transportschicht UDP übertragen. UDP ist Broadcast-fähig und kann Daten somit auf einen Schlag an das gesamte Netzwerk senden. Außerdem hat es einen kleinen Overhead; es kann somit neben den eigentlichen Nutzdaten also auch noch zusätzliche Daten verwerten.
Im Gegensatz dazu ist das Nachrichtenprotokoll MQTT (kurz für Message Queue Telemetry Transport) speziell für die M2M-Kommunikation entwickelt worden. Als ein Protokoll der Applikationsschicht ist es in der Nutzung einfacher als UDP und damit auch sehr gut für Smart Home-Anwendungen geeignet. Steuer- und Messdaten sowie Texte können über MQTT wesentlich einfacher von einem Gerät an ein anderes übermittelt werden. Es wurde ursprünglich für ressourcenarme Geräte entwickelt und lässt sich daher sehr gut für den Einsatz von Mikroprozessoren, wie es unser NodeESP ist, bzw. für Embedded Devices im Allgemeinen verwenden.
Smartes Licht für‘s Smart Home
Der MQTT-Broker bildet den zentralen Server, über den die sämtliche Kommunikation abgewickelt wird. Ein Gerät schickt somit einen Befehl an den Broker, der die Befehle auslesen kann und weiter verteilt. Denkbare Befehle im Smart Home wären so z.B. Licht an/aus oder Licht heller/dunkler zu schalten. Der Broker erhält dementsprechend den Befehl „Licht Wohnzimmer an“ und gibt ihn an das Licht im Wohnzimmer weiter, welches sich daraufhin anschaltet.
Als MQTT Broker verwenden wir den vorkonfigurierten Server. Es ist aber auch möglich, einen eigenen Broker aufzusetzen, z.B. auf einem Raspberry Pi. Hierzu eignet sich die Open-Source-Software Mosquitto. Diese ist in C geschrieben und ideal für ressourcenarme Hardware.
Experiment Nr. 11: Kommunikation zwischen Board und Broker
Heute, am 11. Tag des IoT Adventskalenders, wollen wir zunächst eine Verbindung zum Board über MQTT einrichten. Nachdem wir das Board mit dem Broker verbunden haben, können wir über die entsprechenden Befehle Nachrichten an das Board übermitteln. Die MQTT-Kommunikation steht – wir warten jetzt also gespannt auf morgen, wenn wir sehen werden, was wir damit noch anfangen können.