Inhoudsopgave:

MQTT op Armtronix-borden: 3 stappen
MQTT op Armtronix-borden: 3 stappen

Video: MQTT op Armtronix-borden: 3 stappen

Video: MQTT op Armtronix-borden: 3 stappen
Video: MQTT and Home Assistant 2024, Juli-
Anonim
MQTT op Armtronix-borden
MQTT op Armtronix-borden

In deze instructable willen we u in eerste instantie laten zien hoe u een op Linux (Debian of Ubuntu) gebaseerd systeem kunt gebruiken en Mosquitto (Mqtt Broker) erop kunt installeren, en u ook kunt laten zien hoe u de Mqtt-client op uw telefoon (Android)/Linux kunt gebruiken systeem, verzenden en ontvangen van berichten via Mqtt. Nadat we hiermee vertrouwd zijn geraakt, willen we je laten zien hoe je ons bord kunt configureren en verbinden met deze geïnstalleerde Mqtt-broker. Ik wil u ook laten zien hoe u authenticatie kunt toevoegen aan de Mqtt-broker en enkele basistips en -trucs om fouten op te sporen. Dus laten we beginnen ………..

Stap 1: Mqtt Broker installeren:

Mqtt Broker installeren
Mqtt Broker installeren
Mqtt Broker installeren
Mqtt Broker installeren
Mqtt Broker installeren
Mqtt Broker installeren
Mqtt Broker installeren
Mqtt Broker installeren

Er zijn meerdere Mqtt-makelaars die u kunt installeren. Enkele bekende zijn zoals hieronder vermeld. Sommigen van hen zijn cloudgebaseerde services.

  • HiveMQ
  • MosquitoCloud
  • MQTT
  • Adafruit.io

We laten u zien hoe u Mosquitto installeert op een op Linux gebaseerd systeem (Ubuntu 18.04). Voeg hiervoor eerst Mosquitto toe aan de ubuntu-bronnenlijst. Zodra Mosquitto beschikbaar is in de Ubuntu-repositories, kunt u het installeren met apt-get.

Open gewoon een Terminal. Om een terminal te openen, gaat u naar de linkerbenedenhoek van Ubuntu Desktop en klikt u op Show application (Doted 3X3-raster). Er wordt een venster geopend. Daar zoek je naar Terminal. Klik op terminal. U zou een venster moeten kunnen zien openen zoals weergegeven in de volgende afbeeldingen.

  • Applicatie tonen (Afbeelding 1).
  • Zoek naar terminal (afbeelding 2).
  • Terminalvenster (afbeelding 3).

Voer de volgende opdrachten in nadat u de Terminal hebt geopend:

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

sudo apt-get update

sudo apt-get install mug

U kunt ook de Mqtt-client installeren. Commando om dat te doen zal zijn

sudo apt-get install mug-clients

Enkele afbeeldingen voor uw referentie:

  • Ppa toevoegen (Afbeelding 4).
  • Repo bijwerken (Afbeelding 5).
  • Mosquitto installeren (Afbeelding 6).
  • Mosquitto Client installeren (Afbeelding 7).

Stap 2: MQTT (Mosquitto) testen

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

Om mqtt te testen via ubuntu (hetzelfde systeem of een ander systeem) moet je de mqtt-client installeren die eerder is geïnstalleerd met het commando sudo apt-get install mosquitto-clients. Als u het wilt testen met een mobiele telefoon (Android), kunt u de MyMqtt-app installeren vanuit de Play Store.

Mqtt werkt aan iets dat Topics heet. Beschouw deze onderwerpen voor het gemak van begrip als een map op de harde schijf van een computer. Laten we deze computer behandelen als een computerserver (die in de mqtt-wereld een Mqtt-makelaar is). Laten we op deze server overwegen om één mappen te hebben.

Mapnaam: /Folder_one/

Laten we nu eens kijken naar twee mensen van twee verschillende systemen (pc/laptop) die toegang hebben tot deze server, ofwel om bestanden te lezen of om bestanden te verzenden/dumpen of om beide handelingen uit te voeren.

We noemen de twee personen/systemen Systeem X, Systeem Y (dit zijn Mqtt-clients in de Mqtt-wereld).

Stel nu dat Systeem X een bestand (bestandsnaam: temperatuur) naar de map "/Folder_one/" stuurt/dumpt, dit in de mqtt-wereld kunnen we dit publiceren noemen (we sturen een bericht/payload in plaats van een bestand).

Stel nu dat systeem Y dit bestand of een nieuw bestand wil ophalen/lezen of in deze map wil bijwerken, het eerste dat nodig is, is de mapnaam en het pad kennen, wat in ons geval "/Folder_one/" is. Dus nu zal het naar deze map gaan en dat bestand lezen/ontvangen (bestandsnaam: temperatuur). Het pad/onderwerp kennen en controleren op wijzigingen in het bestand/nieuwe bestanden in de Mqtt-wereld is een abonnement op dat onderwerp.

Gezien het bovenstaande voorbeeld, Systeem X publiceert naar "/Folder_one" en systeem Y is geabonneerd op "/Folder_one"

Merk ook op dat Systeem X zich ook kan abonneren op "/Folder_one" en dat Systeem Y ook kan publiceren op "/Folder_one". Evenzo kan zelfs het serversysteem (The Mqtt Broker) publiceren/abonneren op "/Folder_one" door de Mqtt-client erop te installeren zoals we momenteel hebben gedaan. Het andere dat u moet onthouden, is om een onderwerp te publiceren of u erop te abonneren. U moet het IP-adres van de Mqtt-makelaar weten.

Eerst zullen we het testen via ubuntu-client die op hetzelfde systeem is geïnstalleerd als de makelaar. We zullen twee terminalvensters openen, een ervan zal publiceren en de andere zal zich erop abonneren. Voor het voorbeeld gebruiken we /Folder_one als onderwerp. Voor pub/sub op een onderwerp moet u het IP-adres van ubuntu vinden. Klik hiervoor in de rechterbovenhoek van het scherm, selecteer wifi-instelling, van daaruit kunt u het IP-adres van het ubuntu-systeem vinden (momenteel het IP-adres van de broker). Screenshort gedeeld ter referentie (Afbeelding 8).

Of om het IP-adres van de makelaar te vinden, kunt u het IP-adres vinden door nettools te installeren met behulp van de volgende opdracht in de terminal:

sudo apt install net-tools

Net-tools installeren (Afbeelding 9). Typ daarna gewoon het commando ipconfig, je krijgt een lijst met netwerkinterfaces met het mac- en IP-adres

sudo ipconfig

IP-adres van mijn systeem is 192.168.1.67 (Afbeelding 10)

Publiceren

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m pub_to_folderone

Hier is mosquitto_pub de opdracht, gevolgd door parameter-identificatie-element -h dat het IP-adres van de host/broker is (in ons geval 192.168.1.67), gevolgd door -t wat de onderwerpnaam is voor de uitgever (in ons geval /Folder_one), gevolgd door -m wat betekent dat het bericht/de lading die moet worden verzonden (in ons geval is dat pub_to_folderone).

Abboneren

mosquitto_sub -h 192.168.1.67 -t /Folder_one

Bericht verzonden door de uitgever: pub_to_folderone

Voorbeeld voor publicatie

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m "hallo test mqtt"

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m "mqtt werkt"

Voorbeeld voor ontvangen reactie bij het abonneren op onderwerp

mosquitto_sub -h 192.168.1.67 -t /Folder_one

Bericht verzonden door de uitgever:

  • pub_to_folderone
  • hallo test mqtt
  • mqtt werkt

Pub Sub in twee afzonderlijke terminalvensters naast elkaar (Afbeelding 11)

Mqtt testen op Android (mijn mqtt)

Installeer de mymqtt-app vanuit de Play Store op je Android-telefoon (Afbeelding 12)

Open de app en klik op de linker bovenhoek (Afbeelding 13, Afbeelding 14).

Klik op Instellingen en voer het IP-adres van de broker in, standaard is de poort 1883. Momenteel gebruiken we geen geverifieerde mqtt-broker, dus de gebruikersnaam en het wachtwoord zijn leeg. Sla het gewoon op en klik opnieuw in de linkerbovenhoek van de app (< Instellingen) de lade zal opnieuw openen (Afbeelding 15).

Bovenaan de la ziet u het IP-adres van de broker en de poort waarmee de app is verbonden (Afbeelding 16).

Voeg nu het onderwerp toe waarop u zich wilt abonneren door op Abonneren te klikken. Hier zullen we een onderwerp toevoegen als /Folder_one (Afbeelding 17, Afbeelding 18).

Nadat we dit hebben gedaan, zullen we vanuit het ubuntu-systeem met behulp van terminal naar het onderwerp publiceren. Bij publicatie moet u de payload/het bericht op deze mobiele app publiceren. Bijvoorbeeld het publiceren van payload als "ARM -Automation Robotics & Mechatronics". Commando is zoals eerder vermeld.

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m “ARM -Automatisering Robotica & Mechatronica”

publiceren vanuit ubuntu-systeem (Afbeelding 19).

Ontvangen gepubliceerd bericht op dashboard (Afbeelding 20).

Laten we nu publiceren vanaf Android-telefoon (My mqtt) en abonneren op ubuntu-systeem. Voor dit voorbeeld gebruiken we het onderwerp "/mymqtt_to_pub".

Open hiervoor eerst een terminal van uw ubuntu-systeem en abonneer u op het onderwerp "/mymqtt_to_pub" met het volgende commando (Afbeelding 21)

mosquitto_sub -h 192.168.1.67 -t /mymqtt_to_pub

Ga nu naar de la van de mymqtt-app en klik op publiceren. Voeg het publicatieonderwerp toe (in ons geval is het "/mymqtt_to_pub") en stuur een bericht alsof we "hoi Ubuntu" zullen sturen, druk op de verzendknop (Afbeelding 22, Afbeelding 23).

Het bericht zou in uw terminalvenster van het ubuntu-systeem moeten verschijnen (afbeelding 24).

Merk op dat zowel het ubuntu-systeem als de Android-telefoon zich op hetzelfde netwerk moeten bevinden of dat poort 1883 moet worden weergegeven en dat u het IP-adres van uw router/gateway moet weten om mqtt te laten werken. Als u authenticatie wilt toevoegen aan uw mqtt-makelaar, kunt u dit doen door de onderstaande bloglink te volgen https://medium.com/@eranda/setting-up-authenticat… Volg vanaf stap twee van deze blog. We hebben authenticatie van onze makelaar ingeschakeld en zullen een geverifieerde makelaar gebruiken voor onze borden.

Stap 3: Werken met Armtronix Board & Mqtt

Werken met Armtronix Board & Mqtt
Werken met Armtronix Board & Mqtt
Werken met Armtronix Board & Mqtt
Werken met Armtronix Board & Mqtt
Werken met Armtronix Board & Mqtt
Werken met Armtronix Board & Mqtt

Momenteel gebruiken we voor deze instructable ons Wifi Single Dimmer Board dat Triac gebruikt om de sinusgolf te hakken en op zijn beurt de lamp dimt of de snelheid van de ventilator regelt. We hebben het ook verbonden via het mqtt-authenticatietype.

In eerste instantie hebben we het bord geconfigureerd. Stappen om het te configureren zijn zoals hieronder vermeld.

Zet het bord aan, het begint met het hosten van een Wifi-toegangspunt.

Gebruik een Android-telefoon of laptop om verbinding te maken met dit AP (Afbeelding 25).

Eenmaal verbonden met dit AP, typt u 192.168.4.1 door een browser (chrome/firefox) te openen vanaf het met het AP verbonden systeem/telefoon. Zorg ervoor dat u uw dataverbinding (3G/4G) niet gebruikt.

Bij het intypen van het IP zal een webpagina openen waar het volgende moet worden ingevoerd (Afbeelding 26).

  • SSID: Wifi AP-naam.
  • Wachtwoord: SSID-wachtwoord.
  • IoT-modus Mqtt of Http (Selecteer Mqtt).
  • Mqtt Broker IP (in ons geval is dit 192.168.1.67).
  • Mqtt gebruikersnaam en wachtwoord, aangezien we het authenticatietype gebruiken, hebben we Naren, xxxx. gebruikt
  • Mqtt publish topic: Dit zal zijn over welk onderwerp het board ook publiceert, we hebben /testpub gebruikt.
  • Mqtt subscribe topic: Dit is het onderwerp waar het bord naar luistert voor commando's om de triac te activeren, we hebben /testsub gebruikt.
  • Apparaatnaam: het is de naam die je naar alexa roept om het bord te activeren, we hebben corvi gebruikt.

Nadat u de details hebt ingevoerd, drukt u op de verzendknop. Als u dit doet, krijgt u een scherm zoals weergegeven in Afbeelding 27, wacht enige tijd totdat het bord stopt met het hosten van de AP.

Houd er rekening mee dat we ons bord via Uart hebben aangesloten op de seriële monitor van Arduino IDE. Dus aan de linkerkant ziet u de foutopsporingsberichten die het via Uart afdrukt (dit is alleen voor uw referentie).

Zodra dit is gebeurd, kunt u het foutopsporingsscherm bekijken. De meeste details zullen daar zichtbaar zijn. Hierna zal het succesvol verbinding maken met de broker op het debug (seriële) scherm dat u kunt zien.

Verbonden met MQTT-makelaar met authenticatie. Geabonneerd op onderwerp 1.

Nadat het dit heeft afgedrukt, kunt u nu beginnen met het verzenden van opdrachten via mqtt over het onderwerp waarop het is geabonneerd, d.w.z. /testsub/

Voor dit bord zijn de commando's:

  • R13_ON: Om de triac op 100% in te schakelen.
  • R13_OFF: Om de triac uit te schakelen naar 0%.
  • Dimmer:xx: waarbij xx de dimwaarde is en kan worden gevarieerd van 0 tot 99.
  • Reset: Om de configuratie van het bord te wissen.
  • Status: Druk de dimmerstatus van het bord af op het publicatieonderwerp van het bord.

Om deze opdracht te verzenden vanaf een ubuntu-gebaseerd systeem waarop de mqtt-client is geïnstalleerd, typt u deze zoals hieronder weergegeven. Twee extra parameters zijn hier toegevoegd vanwege authenticatie - d.w.z. -u wat de gebruikersnaam is en -P is het wachtwoord, houd er rekening mee dat deze hoofdlettergevoelig zijn.

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

Opmerking: 50 is de dimmerwaarde

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

Voor de laatste status wordt de status afgedrukt op het publicatieonderwerp van het bord, in ons geval /testpub. Op ons bord wordt elke wijziging in het apparaat afgedrukt op het publicatieonderwerp van het bord. Als we bijvoorbeeld Dimmer:50 doorgeven op het onderwerp waarop het bord is geabonneerd, dan zal het bord bij het fysiek uitvoeren hiervan een bericht sturen met het gedimde niveau op het onderwerp publiceren. Voorbeeld is hieronder weergegeven, Om je vanaf je ubuntu-systeem te abonneren op het publicatieonderwerp van het bord, voer je de volgende opdracht in:

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

bericht dat we krijgen is

DimmerIS50

een paar screen shorts van hetzelfde zijn hieronder (Afbeelding 28, Afbeelding 29)

Aanbevolen: