Inhaltsverzeichnis:

Drahtlose SmartHome-Kommunikation: die extremen Grundlagen von MQTT - Gunook
Drahtlose SmartHome-Kommunikation: die extremen Grundlagen von MQTT - Gunook

Video: Drahtlose SmartHome-Kommunikation: die extremen Grundlagen von MQTT - Gunook

Video: Drahtlose SmartHome-Kommunikation: die extremen Grundlagen von MQTT - Gunook
Video: building IoT 2016 - Michael Stal: Das Internet der Dinge aus Architekturperspektive 2024, November
Anonim
Drahtlose SmartHome-Kommunikation: die extremen Grundlagen von MQTT
Drahtlose SmartHome-Kommunikation: die extremen Grundlagen von MQTT
Drahtlose SmartHome-Kommunikation: die extremen Grundlagen von MQTT
Drahtlose SmartHome-Kommunikation: die extremen Grundlagen von MQTT

MQTT-Grundlagen:

**Ich werde eine Hausautomatisierungsserie machen, ich werde die Schritte durchgehen, die ich unternommen habe, um alles zu lernen, was ich in Zukunft getan habe. Dieses Instructable ist die Grundlage für die Einrichtung von MQTT für die Verwendung in meinen zukünftigen Instructables. Die Lehren in diesem Inhalt gelten jedoch für jedes Projekt, das Sie übernehmen möchten.**

Internet der Dinge:

Das Internet der Dinge erobert die Welt und insbesondere in Gemeinschaften wie unserer hier bei Instructables. Seit ich dieser Community beigetreten bin, ist sie mit dem Aufbau von Menschen verwurzelt

Geräte, die mit dem Internet verbunden sind und über dieses gesteuert werden. Bei der Arbeit mit dem Internet der Dinge ist es schwer, nicht an das Protokoll MQTT zu kommen. Dies ist ein Kommunikationsprotokoll wie andere, die heute im Internet verwendet werden, wie HTTP oder FTP, aber die Funktionsweise ist anders, was es ideal für Internet-of-Things-Anwendungen macht.

Was ist MQTT:

MQTT (Message Queuing Telemetry Transport ist ein leichtgewichtiges Kommunikationsprotokoll, das eine Publish/Subscribe-Architektur verwendet. HTTP, das die meisten Internetnutzer verwenden, basiert auf einem Anforderungs-/Antwortsystem. Dies bedeutet, dass es eine Anforderung von einem Client erhält und sendet eine Antwort an diesen Client. MQTT hat auch einen Server (einen Broker) sowie viele Clients. Im Gegensatz zu HTTP ermöglicht MQTT den Clients, bestimmte „Themen“zu veröffentlichen oder zu abonnieren. Dies ermöglicht eine breitere Kommunikation über ein zentraler Punkt, der Broker. Jeder Knoten kann zu einem Thema auf dem Broker veröffentlichen, und jeder Knoten,der dieses Thema abonniert hat, empfängt die Nachricht. Clients können auch mehrere Themen abonnieren und können dann mehrereAnweisungen oder Aktualisierungen empfangen.

Das gesamte System ist ereignisgesteuert und ermöglicht das Weiterleiten von Nachrichten vom Broker an jeden abonnierten Client. Anstelle von HTTP, bei dem der Client die Informationen anfordert, werden dem Client die Informationen nach Erhalt direkt vom Broker übertragen. Es gibt auch integrierte Dienste, die verschiedene Sicherheitsvorkehrungen ermöglichen, wie z. B. QOS-Spezifikationen. Eine QOS-Spezifikation ermöglicht es einem Broker zu bestimmen, ob eine Nachricht höchstens einmal, mindestens einmal oder genau einmal zugestellt werden muss oder nicht. Dadurch wird sichergestellt, dass die Daten jedem Kunden in der erforderlichen Weise zugestellt werden. Clients können auch anfordern, dass veröffentlichte Nachrichten zu ihrem Thema im Broker gepuffert werden, falls sie aus irgendeinem Grund von diesem getrennt werden. Sobald es wieder online ist, werden diese Daten an den Client übertragen.

Ein Thema ist nichts besonderes, es ist nur eine Vielzahl von Strings, die kombiniert und durch Schrägstriche getrennt werden. Das Format im Beispiel, das unten verwendet wird, ist das folgende: home/bedroom/ceiling_light. Jeder Schrägstrich wird nach einem Thema platziert, um ein Unterthema zu kennzeichnen. So könnte eine Nachricht nach Hause veröffentlicht werden, wo sie von allen Geräten im Haus empfangen wird. Es könnte direkt nach Hause/Schlafzimmer veröffentlicht werden, wo alle Geräte im Schlafzimmer die Nachricht empfangen. Und es kann bis zu dem spezifischen Gerät gehen, das zuerst angezeigt wird home/bedroom/ceiling_light, wo nur die Deckenleuchte im Schlafzimmer die Nachricht empfängt. Die Art und Weise, wie wir einzelne Geräte bis hin zu einem ganzen Ökosystem abstrahieren können, ist gerade im Bereich Home Automation äußerst praktisch. Es gibt weitere Möglichkeiten, Themen aufzuschlüsseln, und ich werde in zukünftigen Instructables weiter darauf eingehen, wo die Anwendung am sinnvollsten ist.

Lieferungen

Es wird nur eines der folgenden benötigt:

Ubuntu:

Windows-Subsystem für Linux: https://ubuntu.com/wsl (Nur wenn Sie kein Linux/MacOS haben)

MacOS: Erfordert ein MacBook

Dies ist erforderlich:

Mosquitto MQTT Broker - Heruntergeladen mit apt-get (Dokumentation:

Schritt 1: Ersteinrichtung (je nach Betriebssystem)

MacOS/Linux:

Keine Einrichtung erforderlich, öffnen Sie einfach Ihr Terminal und springen Sie zum Mosquitto-Setup!

Fenster:

Wenn Sie Windows verwenden, müssen Sie das Windows-Subsystem für Linux installieren. Dies ist ein super einfach zu bedienendes und äußerst wertvolles Tool, mit dem Sie ein Ubuntu-Terminal unter Windows ausführen können. Sie müssen Ubuntu nicht installieren und dual booten, nur um die Entwicklung im Terminal zu testen!

Installationsschritte:

1. Gehen Sie zum Windows Store und suchen Sie nach Ubuntu

2. Laden Sie das Windows-Subsystem für Linux herunter und installieren Sie es

3. Öffnen Sie die Anwendung und befolgen Sie die Anweisungen, um die Einrichtung abzuschließen, und Sie können fortfahren!

Schritt 2: Moskito-Setup:

Moskito-Setup
Moskito-Setup
Moskito-Setup
Moskito-Setup
Moskito-Setup
Moskito-Setup

Wie in der Einführung zu MQTT besprochen, erfordert das Protokoll einen Broker (Server). Dieser Broker ist der Basispunkt für alle aufgebauten Verbindungen zu jedem Client. Alle Nachrichten werden durch diesen Broker geleitet und in die Warteschlange gestellt. Es gibt viele Optionen für einen Broker, die Sie online finden können, aber die, die wir verwenden werden, ist wahrscheinlich die gebräuchlichste: Mosquitto.

Mosquitto ist ein Linux-basierter MQTT-Broker mit einer Menge Funktionalität. Ich werde jetzt nicht auf die Einzelheiten dieser Funktionalität eingehen, aber einige grundlegende Anforderungen, die sie erfüllt, sind die Benutzer-/Passwortauthentifizierung und die Unterstützung der TLS-Verschlüsselung, die alle bei der Entwicklung von Geräten für das Internet der Dinge nützlich sind.

Schritte:

Alle diese Schritte sollten in einem Terminalfenster ausgeführt werden.

1. Installieren Sie Mosquitto- und MQTT-Clients

sudo apt-get install mosquitto mosquitto-clients

2. Abonnieren Sie ein Thema

mosquitto_sub -t "test"

Was dies tut, ist ein Thema zu abonnieren. Dieses Thema wird mit "-t" bezeichnet und der Themenwert ist "test". Dieser Wert nach dem "-t" kann alles sein, was Sie wollen, außer für einige spezielle Reservierungen.

3. Öffnen Sie ein neues Terminalfenster und veröffentlichen Sie eine Nachricht zum Thema "Test"

mosquitto_pub -t "test" -m "Hallo Welt mit MQTT!"

Dadurch wird eine Nachricht zum Thema "test" veröffentlicht, sodass unsere andere Terminalinstanz die Nachricht auf der Abonnementseite empfangen kann. Die veröffentlichte Nachricht wird durch ein "-m" gekennzeichnet und der Nachrichtenwert ist "Hello World With MQTT". Diese Nachricht kann, genau wie das Thema, beliebig geändert werden!

4. Gehen Sie zum ersten Terminalfenster, um Ihre Ergebnisse zu sehen! Sie sollten eine Nachricht mit der Aufschrift "Hello World With MQTT" erhalten. Wenn Sie dies nicht sehen, stellen Sie sicher, dass Sie das richtige Thema eingegeben haben. Wenn Sie dies erfolgreich abgeschlossen haben, spielen Sie damit weiter. Probieren Sie verschiedene Themen aus, mit Unterthemen und verschiedenen Nachrichten!

Schritt 3: Einpacken

Das ist es! Sobald Sie alles abgeschlossen haben, verstehen Sie die Grundlagen der Funktionsweise von MQTT. Dies ist ein sehr rudimentäres Tutorial, das nur das Nötigste des MQTT-Protokolls zeigt. Future Instructables wird ausführlicher darauf eingehen, wie das Protokoll in der Praxis mit dem Internet der Dinge funktioniert, insbesondere mit ESP8266-Modulen, auf denen Arduino ausgeführt wird. Meine erste praktische Anwendung wird die smarte Kaffeemaschine sein, die ich derzeit in meinem Zimmer habe. Wenn Sie lernen möchten, wie Sie eine Kaffeemaschine herstellen, die sowohl über Ihr Telefon als auch über Alexa gesteuert werden kann, folgen Sie mir für weitere Tutorials.

Empfohlen: