Inhaltsverzeichnis:

MQTT auf Armtronix-Boards - Gunook
MQTT auf Armtronix-Boards - Gunook

Video: MQTT auf Armtronix-Boards - Gunook

Video: MQTT auf Armtronix-Boards - Gunook
Video: Tasmota Installation & Grundlagen [ ESP8266] 2024, Juli
Anonim
MQTT auf Armtronix-Boards
MQTT auf Armtronix-Boards

In dieser Anleitung möchten wir Ihnen zunächst zeigen, wie Sie ein auf Linux (Debian oder Ubuntu) basierendes System verwenden und Mosquitto (Mqtt Broker) darauf installieren können System, Senden und Empfangen von Nachrichten über Mqtt. Nachdem wir uns damit vertraut gemacht haben, möchten wir Ihnen zeigen, wie Sie unser Board mit diesem installierten Mqtt-Broker konfigurieren und verbinden können. Außerdem möchte ich Ihnen zeigen, wie Sie dem Mqtt-Broker eine Authentifizierung hinzufügen können, und einige grundlegende Tipps und Tricks zum Debuggen. Also lasst uns anfangen ………..

Schritt 1: Installieren von Mqtt Broker:

Installieren von Mqtt Broker
Installieren von Mqtt Broker
Installieren von Mqtt Broker
Installieren von Mqtt Broker
Installieren von Mqtt Broker
Installieren von Mqtt Broker
Installieren von Mqtt Broker
Installieren von Mqtt Broker

Es gibt mehrere Mqtt-Broker, die Sie installieren können. Einige bekannte sind wie unten erwähnt. Einige davon sind Cloud-basierte Dienste.

  • HiveMQ
  • MoskitoWolke
  • MQTT
  • Adafruit.io

Wir zeigen Ihnen, wie Sie Mosquitto auf einem Linux-basierten System (Ubuntu 18.04) installieren. Fügen Sie dazu zunächst Mosquitto zur Ubuntu-Quellliste hinzu. Sobald Mosquitto in den Ubuntu-Repositorys verfügbar ist, können Sie es mit apt-get installieren.

Öffnen Sie einfach ein Terminal. Um ein Terminal zu öffnen, gehen Sie zur linken unteren Ecke von Ubuntu Desktop, klicken Sie auf Anwendung anzeigen (Punktiertes 3X3-Raster). Ein Fenster wird geöffnet. Dort suchen Sie nach Terminal. Klicken Sie auf das Terminal. Es sollte ein Fenster geöffnet sein, wie in den folgenden Bildern gezeigt.

  • Anwendung anzeigen (Bild 1).
  • Suche nach Terminal (Bild 2).
  • Terminalfenster (Bild 3).

Geben Sie die folgenden Befehle ein, nachdem Sie das Terminal geöffnet haben

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa

sudo apt-get update

sudo apt-get install mosquitto

Sie können auch den Mqtt-Client installieren. Der Befehl dazu wird sein

sudo apt-get install mosquitto-clients

Einige Bilder für Ihre Referenz

  • Hinzufügen von ppa (Bild 4).
  • Repository aktualisieren (Bild 5).
  • Installieren von Mosquitto (Bild 6).
  • Mosquitto-Client installieren (Bild 7).

Schritt 2: MQTT testen (Mosquitto)

MQTT testen (Mosquitto)
MQTT testen (Mosquitto)
MQTT testen (Mosquitto)
MQTT testen (Mosquitto)
MQTT testen (Mosquitto)
MQTT testen (Mosquitto)

Um mqtt über Ubuntu (gleiches System oder anderes System) zu testen, müssen Sie den mqtt-Client installieren, der zuvor mit dem Befehl sudo apt-get install mosquitto-clients installiert wurde. Falls Sie es mit einem Mobiltelefon (Android) testen möchten, können Sie die MyMqtt-App aus dem Play Store installieren.

Mqtt arbeitet an so genannten Topics. Betrachten Sie diese Themen zum besseren Verständnis als Ordner auf einer Computerfestplatte. Lassen Sie uns diesen Computer wie einen Computerserver behandeln (der in der mqtt-Welt ein Mqtt-Broker ist). Betrachten wir auf diesem Server einen Ordner.

Ordnername: /Ordner_eins/

Betrachten wir nun zwei Personen von zwei verschiedenen Systemen (PC/Laptop), die auf diesen Server zugreifen, um entweder Dateien zu lesen oder Dateien zu senden/auszuspeichern oder beide Operationen auszuführen.

Wir werden die beiden Personen/das System als System X, System Y benennen (dies sind Mqtt-Clients in der Mqtt-Welt).

Angenommen, System X sendet/dumpt eine Datei (Dateiname: Temperatur) in den Ordner „/Folder_one/“. In der mqtt-Welt können wir diese Veröffentlichung nennen (wir senden eine Nachricht/Nutzlast anstelle einer Datei).

Angenommen, System Y möchte diese Datei oder eine neue Datei abrufen/lesen oder in diesem Ordner aktualisieren. Das erste, was es braucht, ist den Ordnernamen und den Pfad zu kennen, in unserem Fall „/Folder_one/“. Jetzt wird es in diesen Ordner gehen und diese Datei lesen / empfangen (Dateiname: Temperatur). Den Pfad/das Thema zu kennen und nach Änderungen in der Datei/neuen Dateien in der Mqtt-Welt zu suchen, ist ein Abonnement für dieses Thema.

Betrachtet man das obige Beispiel, System X veröffentlicht in „/Folder_one“und System Y hat „/Folder_one“abonniert

Beachten Sie auch, dass System X auch „/Folder_one“abonnieren kann und System Y auch in „/Folder_one“veröffentlichen kann. Ebenso kann sogar das Serversystem (The Mqtt Broker) „/Folder_one“veröffentlichen/abonnieren, indem der Mqtt-Client darauf installiert wird, wie wir es derzeit getan haben. Die andere Sache, an die Sie sich erinnern sollten, ist, ein Thema zu veröffentlichen oder zu abonnieren, bei dem Sie die IP-Adresse des Mqtt-Brokers kennen müssen.

Zuerst testen wir es über den Ubuntu-Client, der auf demselben System wie der Broker installiert ist. Wir werden zwei Terminalfenster öffnen, eines davon wird veröffentlicht und das andere abonniert es. Für das Beispiel verwenden wir /Folder_one als Thema. Bevor Sie ein Thema veröffentlichen/unterschreiben, müssen Sie die IP-Adresse von Ubuntu ermitteln. Klicken Sie dazu in der rechten oberen Ecke des Bildschirms auf WLAN-Einstellung, von dort aus können Sie die IP-Adresse des Ubuntu-Systems (derzeit die Broker-IP) finden. Screenshort als Referenz geteilt (Bild 8).

Oder um die IP-Adresse des Brokers zu finden, können Sie die IP-Adresse finden, indem Sie Net Tools mit dem folgenden Befehl im Terminal installieren

sudo apt install net-tools

net-tools installieren (Bild 9). Geben Sie danach einfach den Befehl ipconfig ein und Sie erhalten eine Liste der Netzwerkschnittstellen mit dem Mac und der IP-Adresse

sudo ipconfig

IP-Adresse meines Systems ist 192.168.1.67 (Bild 10)

Veröffentlichen

mosquitto_pub -h 192.168.1.67 -t /Ordner_one -m pub_to_folderone

Hier ist mosquitto_pub der Befehl, gefolgt vom Parameter-Identifier-Element -h, das die Host-/Broker-IP-Adresse ist (in unserem Fall 192.168.1.67), gefolgt von -t, das der Themenname für den Herausgeber ist (in unserem Fall /Folder_one), gefolgt von -m was die zu sendende Nachricht/Nutzlast bedeutet (In unserem Fall ist pub_to_folderone).

Zu abonnieren

mosquitto_sub -h 192.168.1.67 -t /Folder_one

Vom Herausgeber gesendete Nachricht: pub_to_folderone

Beispiel für die Veröffentlichung

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m „hi test mqtt“

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m „mqtt working“

Beispiel für eine Antwort beim Abonnieren des Themas

mosquitto_sub -h 192.168.1.67 -t /Folder_one

Vom Herausgeber gesendete Nachricht:

  • pub_to_folderone
  • hallo test mqtt
  • mqtt funktioniert

Pub Sub in zwei separaten Terminalfenstern nebeneinander (Bild 11)

Mqtt auf Android testen (mqtt)

Installieren Sie die mymqtt-App aus dem Play Store auf Ihrem Android-Telefon (Bild 12)

Öffnen Sie die App und klicken Sie auf die linke obere Ecke (Bild 13, Bild 14).

Klicken Sie auf Einstellungen und geben Sie die Broker-IP-Adresse ein. Der Standardport ist 1883. Derzeit verwenden wir keinen authentifizierten mqtt-Broker, daher sind der Benutzername und das Kennwort leer. Speichern Sie es einfach und klicken Sie erneut auf die linke obere Ecke der App (< Einstellungen), um die Schublade erneut zu öffnen (Bild 15).

Oben in der Schublade werden Ihnen die Broker-IP-Adresse und der Port angezeigt, mit dem die App verbunden ist (Bild 16).

Fügen Sie nun das Thema hinzu, das Sie abonnieren möchten, indem Sie auf Abonnieren klicken. Hier werden wir das Thema als /Folder_one hinzufügen (Bild 17, Bild 18).

Danach veröffentlichen wir vom Ubuntu-System aus mithilfe des Terminals das Thema. Bei der Veröffentlichung sollten Sie die Nutzlast/Nachricht in dieser mobilen App veröffentlichen lassen. Zum Beispiel die Veröffentlichung der Nutzlast als „ARM -Automation Robotics & Mechatronics“. Befehl ist wie bereits erwähnt.

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m „ARM -Automation Robotik & Mechatronik“

Veröffentlichung vom Ubuntu-System (Bild 19).

Erhaltene veröffentlichte Nachricht auf dem Dashboard (Bild 20).

Lassen Sie uns nun vom Android-Telefon (My mqtt) veröffentlichen und auf dem Ubuntu-System abonnieren. Für dieses Beispiel verwenden wir das Thema „/mymqtt_to_pub“.

Öffnen Sie dazu zunächst ein Terminal von Ihrem Ubuntu-System und abonnieren Sie das Thema „/mymqtt_to_pub“mit dem folgenden Befehl (Bild 21)

mosquitto_sub -h 192.168.1.67 -t /mymqtt_to_pub

Gehen Sie nun in die Schublade der mymqtt-App und klicken Sie auf veröffentlichen. Fügen Sie das Veröffentlichungsthema hinzu (in unserem Fall ist es "/mymqtt_to_pub") und senden Sie eine Nachricht, wie wir "hi Ubuntu" senden werden, drücken Sie den Senden-Button (Bild 22, Bild 23).

Die Meldung sollte in Ihrem Terminalfenster des Ubuntu-Systems erscheinen (Bild 24).

Beachten Sie, dass sich sowohl das Ubuntu-System als auch das Android-Telefon im selben Netzwerk befinden sollten oder dass Port 1883 offengelegt werden sollte und Sie die IP-Adresse Ihres Routers/Gateways kennen sollten, damit mqtt funktioniert. Wenn Sie Ihrem mqtt-Broker eine Authentifizierung hinzufügen möchten, können Sie dies tun, indem Sie dem unten genannten Blog-Link https://medium.com/@eranda/setting-up-authenticat… folgen. Folgen Sie dem zweiten Schritt dieses Blogs. Wir haben die Authentifizierung unseres Brokers aktiviert und werden für unsere Boards einen authentifizierten Broker verwenden.

Schritt 3: Arbeiten mit Armtronix Board & Mqtt

Arbeiten mit Armtronix Board & Mqtt
Arbeiten mit Armtronix Board & Mqtt
Arbeiten mit Armtronix Board & Mqtt
Arbeiten mit Armtronix Board & Mqtt
Arbeiten mit Armtronix Board & Mqtt
Arbeiten mit Armtronix Board & Mqtt

Derzeit verwenden wir für dieses anweisbare unser Wifi Single Dimmer Board, das Triac verwendet, um die Sinuswelle zu hacken und wiederum die Glühbirne zu dimmen oder die Geschwindigkeit des Lüfters zu steuern. Außerdem haben wir es über den mqtt-Authentifizierungstyp verbunden.

Zunächst haben wir das Board konfiguriert. Die Schritte zum Konfigurieren sind wie unten beschrieben.

Schalten Sie das Board ein und es beginnt, einen Wifi Access Point zu hosten.

Verbinden Sie sich mit einem Android-Telefon oder -Laptop mit diesem AP (Bild 25).

Sobald Sie mit diesem AP verbunden sind, geben Sie 192.168.4.1 ein, indem Sie einen Browser (Chrom/Firefox) über das mit dem AP verbundene System/Telefon öffnen. Stellen Sie sicher, dass Sie Ihre Datenverbindung (3G/4G) nicht verwenden.

Nach Eingabe der IP öffnet sich eine Webseite, auf der folgendes eingegeben werden muss (Bild 26).

  • SSID: Wifi-AP-Name.
  • Passwort: SSID-Passwort.
  • IoT-Modus Mqtt oder Http (Wählen Sie Mqtt).
  • Mqtt Broker IP (In unserem Fall ist es 192.168.1.67).
  • Mqtt-Benutzername und -Passwort, da wir den Authentifizierungstyp verwenden, haben wir Naren, xxxx. verwendet
  • Mqtt-Publishing-Thema: Dies wird auch sein, zu welchem Thema das Board veröffentlicht, wir haben /testpub verwendet.
  • Mqtt-Subscribe-Thema: Dies ist das Thema, auf das das Board auf Befehle zum Auslösen des Triacs hört. Wir haben /testsub verwendet.
  • Gerätename: Dies ist der Name, den Sie Alexa zum Auslösen des Boards nennen, wir haben Corvi verwendet.

Nachdem Sie die Details eingegeben haben, drücken Sie die Senden-Schaltfläche. Sie erhalten dabei einen Bildschirm wie in Abbildung 27 gezeigt. Warten Sie einige Zeit, bis das Board den AP nicht mehr hostet.

Bitte beachten Sie, dass wir unser Board über Uart mit dem seriellen Monitor der Arduino IDE verbunden haben. Auf der linken Seite sehen Sie die Debug-Nachrichten, die über Uart gedruckt werden (dies dient nur zu Ihrer Information).

Sobald dies erledigt ist, können Sie den Debug-Bildschirm anzeigen. Dort werden die meisten Details sichtbar. Danach wird erfolgreich eine Verbindung zum Broker auf dem Debug-Bildschirm (seriell) hergestellt, den Sie sehen können.

Verbunden mit MQTT-Broker mit Authentifizierung. Thema 1 abonniert.

Nachdem es dies gedruckt hat, können Sie jetzt damit beginnen, ihm Befehle über mqtt zu dem Thema zu senden, das es abonniert hat, z. B. /testsub/

Für dieses Board sind Befehle:

  • R13_ON: Um den Triac auf 100 % einzuschalten.
  • R13_OFF: Um den Triac auf 0% auszuschalten.
  • Dimmer:xx: xx ist der Dimmwert und kann von 0 bis 99 variiert werden.
  • Reset: Um die Konfiguration des Boards zu löschen.
  • Status: Drucken Sie den Dimmer-Status des Boards auf das Veröffentlichungsthema des Boards.

Um diesen Befehl von einem Ubuntu-basierten System zu senden, auf dem der mqtt-Client installiert ist, geben Sie ihn einfach wie unten gezeigt ein. Zwei zusätzliche Parameter werden hier wegen der Authentifizierung hinzugefügt - d.h. -u ist der Benutzername und -P ist das Passwort, bitte beachten Sie, dass die Groß-/Kleinschreibung beachtet wird.

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_OFF

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m Dimmer:50

Hinweis: 50 ist der Dimmerwert

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m Status

Für den neuesten Stand wird der Status auf das Veröffentlichungsthema des Boards gedruckt, in unserem Fall /testpub. Auf unserem Board wird jede Änderung am Gerät auf das Veröffentlichungsthema des Boards gedruckt. Wenn wir beispielsweise Dimmer:50 für das vom Board abonnierte Thema übergeben, anstatt dies physisch auszuführen, sendet das Board eine Nachricht mit der Angabe des gedimmten Levels des Veröffentlichungsthemas. Beispiel ist unten gezeigt, Um von Ihrem Ubuntu-System aus das Veröffentlichungsthema des Boards zu abonnieren, geben Sie den folgenden Befehl ein

mosquitto_sub -h 192.168.1.67 -u Naren -P xxxx -t /testpub

Nachricht, die wir erhalten ist

DimmerIS50

ein paar Bildschirmkurzschlüsse davon sind unten (Bild 28, Bild 29)

Empfohlen: