Messaging Queuing Telemetry Protocol, eller MQTT, er en let meddelelsesprotokol designet til enheder og miljøer med lav båndbredde. Det er en hurtig, nem at implementere og energieffektiv løsning til at forbinde og udveksle information mellem flere IoT-enheder. Det kræver en MQTT-mægler/server og det emne, som meddelelser offentliggøres og abonneres på af enhederne eller brugerne for at sende eller modtage oplysningerne.
I denne vejledning vil vi implementere MQTT-mægleren og Node-RED-værktøjet på Raspberry Pi for at forbinde MQTT-aktiverede DIY smarte IoT-enheder og bruge dem til hjemmeautomatisering.
Ting du får brug for
For at bygge og implementere en MQTT-server med Node-RED skal du bruge følgende:
- En Raspberry Pi Zero W eller bedre. Vi anbefaler at bruge en Raspberry Pi 3 eller 4 (hvis tilgængelig).
- Et microSD-kort (8 GB eller højere).
- En microSD-kortlæser.
- En Linux-pc, Mac eller Windows-pc.
- Internetforbindelse (Wi-Fi).
Trin 1: Installer Raspberry Pi OS Lite (64-bit)
Du skal bruge 64-bit Lite-versionen af Raspberry Pi OS. I den
Raspberry Pi Imager værktøj på en anden computer, skal du klikke Vælg OS > Raspberry Pi OS (andet), og vælg derefter Raspberry Pi OS Lite (64-bit). Derudover vil du bruge Imagers avancerede indstillinger til at aktivere SSH (vi brugte pi og hindbær som brugernavn og adgangskode til denne vejledning) og konfigurer Wi-Fi-forbindelsen. For flere detaljer, tjek vores guide på hvordan man installerer et operativsystem på en Raspberry Pi. Når du har skrevet operativsystemet til kortet, skal du skubbe det ud og indsætte det i din Raspberry Pi.Trin 2: Opret forbindelse via SSH og opdater pakkerne
Du kan oprette forbindelse til din Raspberry Pi over SSH ved hjælp af PuTTY på Windows eller Terminalon macOS og Linux. Du bør dog kende IP'en på Raspberry Pi for at oprette forbindelse over SSH. For at finde ud af det, kan du åbne din trådløse routers DHCP-indstillinger eller bruge Fingappen på din smartphone.
Indtast IP-adressen i PuTTY og klik Opret forbindelse. Indtast dit brugernavn og din adgangskode for at logge ind.
På Linux- eller macOS-terminal skal du skrive DitPiBrugernavn@IPAddress og skriv derefter adgangskoden for at logge på. Når du er tilsluttet via SSH, skal du køre følgende kommando for at opdatere pakkelisten og opgradere pakker.
sudo apt opdatering && sudo apt opgradering –y
Trin 3: Installer MQTT Broker
For at installere og aktivere MQTT-mægleren (Mosquitto), skal du tage følgende trin.
- Installer Mosquitto ved at køre følgende kommando i terminalvinduet.
Dette vil begynde at installere Mosquitto (MQTT-mægler) og klienttjenester.sudo apt installere mosquitto myg-klienter -y
- Efter installationen skal du aktivere Mosquitto-tjenesten og kontrollere MQTT-versionen ved hjælp af følgende kommandoer.
sudosystemctlaktiveremyg.service
myg -v - Opret en brugerkonto for at tillade godkendt fjernadgang ved hjælp af følgende kommando.
Her ravi er brugernavnet (du kan bruge hvad du vil). Indtast adgangskoden, når du bliver bedt om det. Noter dette brugernavn og adgangskode til senere brug.sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
- Åbn mosquitto.conf fil i nano-editoren ved hjælp af følgende kommando.
Indsæt følgende kode i nano-editoren.sudo nano /etc/mosquitto.conf
Trykke CTRL+X efterfulgt af Y og Gå ind for at gemme ændringerne.per_lytter_indstillinger rigtigt
pid_file /run/mosquitto/mosquitto.pid
udholdenhed rigtigt
persistence_location /var/lib/mosquitto/
log_dest fil /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
tillade_anonym falsk
lytter 1883
password_file /etc/mosquitto/passwd - Genstart MQTT-mægleren ved at køre følgende kommando.
sudo systemctl genstart mosquitto
- Kontroller MQTT-mæglerstatus for at se, om MQTT kører.
Hvis du ser ovenstående output, kører MQTT.sudo systemctl status myg
Trin 4: Test MQTT Broker
For at teste, om MQTT-mægleren fungerer eller ej, skal du installere MQTTLens eller en lignende MQTT-app i Chrome eller enhver anden webbrowser, og start den. Indtast IP-adressen på Raspberry Pi og MQTT-brugernavnet/adgangskoden. Klik Opret forbindelse.
Indtast et hvilket som helst emne i Abonner felt og det samme emne i Offentliggøre Mark. Skriv "Hej" eller noget andet i meddelelsesfeltet, og klik Offentliggøre.
Hvis du ser beskeden under abonnementerne, fungerer MQTT-mægleren fint.
Trin 5: Installer Node-RED
Med Node-RED kan du udgive beskeder eller sende og modtage nyttelast til eller fra dine smartenheder. Denne nyttelast kan bruges til at udløse smartenheder til at tænde/slukke eller modtage data (såsom temperatur) fra en sensor. Du kan bruge din webbrowser til at oprette sådanne flows i Node-RED og styre dine smarte enheder.
For at installere Node-RED skal du udføre følgende kommando i terminalvinduet.
bash //raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Dette vil downloade og installere Node-RED på din Raspberry Pi. Det kan tage et stykke tid at fuldføre. Når Node-RED er installeret, skal du oprette en Node-RED indstillingsfil ved at køre følgende kommando.
node-red admin init
Følg derefter disse trin:
- Tryk på Gå ind nøgle.
- Vil du konfigurere brugersikkerhed? Vælg Ja. Indtast et brugernavn og en adgangskode. Hold det sikkert, da dette vil blive brugt til at logge ind og administrere Node-RED via en webgrænseflade.
- Vælge Fuld adgang.
- Du kan tilføje en anden bruger eller vælge Ingen at fortsætte.
- Vælg Ingen når du bliver bedt om at aktivere projektfunktionerne.
- Trykke Gå ind.
- Indtast en adgangssætning, og opbevar den sikkert.
- Vælg standard tema > Monaco (standard).
- Vælg Ingen når du bliver bedt om at indlæse eksterne noder.
Når dette er gjort, skal du genstarte Node-RED.
node-rød genstart
Du kan nu besøge Din-Raspberry-Pi-IP: 1880 i en webbrowser for at åbne og logge ind på Node-RED-administrationspanelet.
Du kan nu oprette flows i Node-RED. Nedenfor er et eksempel på et Node-RED flow, vi bruger til at køre vores WS2812B 8x32 matrix display, der viser forskellige sensoroplysninger installeret i vores hjem i realtid.
For at komme i gang kan du også byg et DIY smart ur ved hjælp af MAX7219 dot matrix, og tilslut den til din MQTT-server for at vise tekst eller beskeder på den.
Aktiver hjemmeautomatisering ved hjælp af MQTT og Node-RED
Du kan nu oprette flows for at kontrollere eller overvåge dine MQTT-aktiverede smart home-enheder. Du kan også bygge DIY Tasmota-smartswitche eller Arduino-baserede smarte sensorer og andre smartenheder med MQTT-kontrol og bruge dem med denne MQTT- og Node-RED-server. Du kan oprette flows til hjemmeautomatisering baseret på begivenheder, tid eller nyttelast modtaget fra din smartphone MQTT-klient.
På din Android-smartphone kan du installere MQTT Dash for at oprette forbindelse til din MQTT-mægler og sende eller modtage nyttelast til eller fra forskellige emner, som dine smartenheder abonnerer på eller udgiver.