Arduino und MQTT – Einstieg ins Internet der Dinge (IoT)

Das Internet der Dinge (IoT) stellt viele Herausforderungen an das verwendete Protokoll. Es soll möglichst robust sein, Geräte unterstützen, die geringe Prozessorleistung haben, schlechte Netzwerkkonditionen verkraften und damit zurecht kommen, wenn der Datenstrom instabil wird. MQTT ist solch ein Protokoll. Es ist für die Kommunikation von Maschine zu Maschine (M2M) der Quasi-Standard geworden.

Schema, wie MQTT funktioniert

Terminologie

Klären wir zuerst ein paar Begriffe, die im Zusammenhang mit MQTT wichtig sind:

MQTT-Broker: Der Server, der die Nachrichtenvermittlung übernimmt. Er kann sich im lokalen Netzwerk befinden oder irgendwo im Internet.

Topic: Das kann man sich wie ein Pfad zum Nachrichtenaustausch vorstellen. Ein Topic könnte temperatur oder raum1/temperatur heißen.

Publish: Hierbei handelt es ich um das Senden von Daten. Wenn also z.B. ein Arduino als Sensoreinheit die Temperatur an den Broker schickt, spricht man von publishen.

Subscribe: Das aktive Empfangen von Daten, sobald diese eintreffen. Will man z.B. die Daten vom Thermometer abrufen, muss man – ob mit einem IoT-Gerät oder einer Applikation (z.B. Website) – auf dieses Thema subscriben. D.h., das das Gerät nun ein Auge auf dieses Topic wirft. Kommen beim Borker neue Daten an, kann man diese abgreifen.

Darüber hinaus bietet MQTT viele andere nützliche Funktionen, die aber den Rahmen sprengen würden. Auf Wikipedia kann man sich gern in die Tiefe einarbeiten: Wikipedia

Aber nun in die Praxis

Als erstes setzen wir den MQTT-Broker auf und senden Daten in unserem Computer hin und her.

Wir verwenden Eclipse Mosquitto als Broker-Software.

1. Installation von Mosquitto (MQTT-Broker)

Windows:
Unter Windows ist der Weg etwas steiniger. Man muss nämlich neben dem eigentlichen Installer einige dll-Dateien hinzufügen. In diesem Tutorial ist die Installation aber sehr anschaulich erklärt.

OSX: Zuerst installiert man Homebrew (Download). Hierbei handelt es sich (u.A.) um eine Erweiterung, die die Installation von Software vereinfacht. Die Installation erfolgt in einem Terminal-Fenster.

Danach gib einfach:
sudo brew install mosquitto
ein. Der Befehl installiert Mosquitto.

2. Testen

Öffen ein Terminal- (bzw. CMD-) Fenster. Subscribe auf ein MQTT-Topic. (Unter Windows muss man im gleichen Verzeichnis wie die MQTT-Installation sein z.B. C:\Program Files (x86)\mosquitto)

mosquitto_sub -t "temperatur"

Dieses Fenster hat jetzt auf das Topic temperatur subscribed. Wir lauschen also beim MQTT-Broker, ob zu diesem Topic neue Daten ankommen.

Öffne ein zweites Fenster und publishe auf das Topic:

mosquitto_pub -t "temperatur" -m "24 Grad"

Im ersten Fenster erscheint nun die Nachricht

24 Grad

So what?

Was machen wir jetzt damit? Sieht ja erstmal unspektakulär aus, aber in Wirklichkeit läuft auf dem Computer nun ein MQTT-Broker! Beide Terminal-Fenster repräsentieren MQTT Teilnehmer. Willkommen im Internet der Dinge! Der Publisher könnte das Arduino mit dem Temperatursensor sein, der Subscriber ist vielleicht eine Applikation, die auf einem Raspberry Pi läuft und auf einem Wanddisplay die Temperatur anzeigt. Fehlt nur noch ein steuerbares Thermostat. (Auf dem Raspberry Pi könnte man übrigens auch gleich einen lokalen Broker laufen lassen, aber das nur am Rande.)

Schema, wie MQTT mit Sensor, Thermostat und Steuergerät funktioniert

Coming soon: Arduino sendet Daten zu unserem lokalen MQTT-Broker Mosquitto.

37 Comments

  1. … [Trackback]

    […] Find More here|Find More|Read More Informations here|Here you will find 30896 additional Informations|Infos to that Topic: arduino-tutorial.de/arduino-und-mqtt/ […]

  2. … [Trackback]

    […] Find More here|Find More|Find More Infos here|Here you will find 73684 additional Infos|Infos on that Topic: arduino-tutorial.de/arduino-und-mqtt/ […]

  3. … [Trackback]

    […] Read More here|Read More|Read More Infos here|There you will find 79287 more Infos|Infos on that Topic: arduino-tutorial.de/arduino-und-mqtt/ […]

  4. … [Trackback]

    […] Read More here|Read More|Find More Informations here|There you can find 1818 additional Informations|Informations to that Topic: arduino-tutorial.de/arduino-und-mqtt/ […]

  5. … [Trackback]

    […] Find More here|Find More|Find More Informations here|Here you can find 40357 additional Informations|Infos to that Topic: arduino-tutorial.de/arduino-und-mqtt/ […]

  6. … [Trackback]

    […] Read More on|Read More|Read More Informations here|Here you will find 83639 more Informations|Informations on that Topic: arduino-tutorial.de/arduino-und-mqtt/ […]

  7. … [Trackback]

    […] Read More here|Read More|Find More Infos here|There you will find 87392 more Infos|Infos on that Topic: arduino-tutorial.de/arduino-und-mqtt/ […]

  8. … [Trackback]

    […] Find More here|Find More|Find More Informations here|There you will find 96589 more Informations|Informations on that Topic: arduino-tutorial.de/arduino-und-mqtt/ […]

  9. … [Trackback]

    […] Read More on|Read More|Find More Infos here|There you can find 38311 additional Infos|Informations to that Topic: arduino-tutorial.de/arduino-und-mqtt/ […]

  10. … [Trackback]

    […] Read More here|Read More|Find More Infos here|There you can find 66384 more Infos|Informations on that Topic: arduino-tutorial.de/arduino-und-mqtt/ […]

  11. … [Trackback]

    […] Find More here|Find More|Read More Informations here|There you can find 43096 more Informations|Informations to that Topic: arduino-tutorial.de/arduino-und-mqtt/ […]

  12. … [Trackback]

    […] Find More on|Find More|Read More Informations here|Here you can find 98269 additional Informations|Infos on that Topic: arduino-tutorial.de/arduino-und-mqtt/ […]

Comments are closed, but trackbacks and pingbacks are open.