Messaging Queuing Telemetry Protocol, eller MQTT, er en lett meldingsprotokoll designet for enheter og miljøer med lav båndbredde. Det er en rask, enkel å distribuere og energieffektiv løsning for å koble til og utveksle informasjon mellom flere IoT-enheter. Det krever en MQTT-megler/server og emnet som meldinger publiseres og abonneres på av enhetene eller brukerne for å sende eller motta informasjonen.
I denne veiledningen vil vi distribuere MQTT-megleren og Node-RED-verktøyet på Raspberry Pi for å koble til MQTT-aktiverte DIY smarte IoT-enheter og bruke dem til hjemmeautomatisering.
Ting du trenger
For å bygge og distribuere en MQTT-server med Node-RED, trenger du følgende:
- En Raspberry Pi Zero W eller bedre. Vi anbefaler å bruke en Raspberry Pi 3 eller 4 (hvis tilgjengelig).
- Et microSD-kort (8 GB eller høyere).
- En microSD-kortleser.
- En Linux-PC, Mac eller Windows-PC.
- Internett-tilkobling (Wi-Fi).
Trinn 1: Installer Raspberry Pi OS Lite (64-bit)
Du trenger 64-bits Lite-versjonen av Raspberry Pi OS. I
Raspberry Pi Imager verktøyet på en annen datamaskin, klikk Velg OS > Raspberry Pi OS (annet), og velg deretter Raspberry Pi OS Lite (64-bit). I tillegg vil du bruke Imagers avanserte innstillinger for å aktivere SSH (vi brukte pi og bringebær som brukernavn og passord for denne veiledningen) og konfigurer Wi-Fi-tilkoblingen. For mer informasjon, sjekk ut vår guide på hvordan installere et operativsystem på en Raspberry Pi. Etter å ha skrevet operativsystemet til kortet, løs det ut og sett det inn i din Raspberry Pi.Trinn 2: Koble til over SSH og oppdater pakkene
Du kan koble til Raspberry Pi over SSH ved å bruke PuTTY på Windows eller Terminalon macOS og Linux. Du bør imidlertid vite IP-en til Raspberry Pi for å koble til over SSH. For å finne ut kan du åpne DHCP-innstillingene til den trådløse ruteren eller bruke Fingappen på smarttelefonen.
Skriv inn IP-adressen PuTTY og klikk Koble. Skriv inn brukernavn og passord for å logge inn.
På Linux- eller macOS-terminal skriver du YourPiUsername@IPAddress og skriv deretter inn passordet for å logge på. Når du er koblet til via SSH, kjør følgende kommando for å oppdatere pakkelisten og oppgradere pakker.
sudo apt oppdatering && sudo apt oppgradering –y
Trinn 3: Installer MQTT Broker
For å installere og aktivere MQTT-megleren (Mosquitto), ta følgende trinn.
- Installer Mosquitto ved å kjøre følgende kommando i Terminal-vinduet.
Dette vil begynne å installere Mosquitto (MQTT-megler) og klienttjenester.sudo apt installere mygg mygg-klienter -y
- Etter installasjonen aktiverer du Mosquitto-tjenesten og kontrollerer MQTT-versjonen ved å bruke følgende kommandoer.
sudosystemctlmuliggjøremygg.service
mygg -v - Opprett en brukerkonto for å tillate autentisert ekstern tilgang ved å bruke følgende kommando.
Her ravi er brukernavnet (du kan bruke hva du vil). Skriv inn passordet når du blir bedt om det. Noter ned dette brukernavnet og passordet for senere bruk.sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
- Åpne mosquitto.conf fil i nano-editoren ved å bruke følgende kommando.
Lim inn følgende kode i nano-editoren.sudo nano /etc/mosquitto.conf
trykk CTRL+X etterfulgt av Y og Tast inn for å lagre endringene.per_lytter_innstillinger ekte
pid_file /run/mosquitto/mosquitto.pid
standhaftighet ekte
persistence_location /var/lib/mosquitto/
log_dest fil /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
tillate_anonym falsk
lytter 1883
passordfil /etc/mosquitto/passwd - Start MQTT-megleren på nytt ved å kjøre følgende kommando.
sudo systemctl start mosquitto på nytt
- Sjekk MQTT-meglerstatusen for å se om MQTT kjører.
Hvis du ser utgangen ovenfor, kjører MQTT.sudo systemctl status mygg
Trinn 4: Test MQTT Broker
For å teste om MQTT-megleren fungerer eller ikke, installer MQTTLens eller en lignende MQTT-app i Chrome eller en annen nettleser og start den. Skriv inn IP-adressen til Raspberry Pi og MQTT-brukernavnet/passordet. Klikk Opprett tilkobling.
Skriv inn et hvilket som helst emne i Abonnere felt og samme emne i publisere felt. Skriv "Hei" eller noe i meldingsfeltet og klikk publisere.
Hvis du ser meldingen under abonnementene, fungerer MQTT-megleren fint.
Trinn 5: Installer Node-RED
Med Node-RED kan du publisere meldinger eller sende og motta nyttelast til eller fra smartenhetene dine. Denne nyttelasten kan brukes til å trigge smartenheter til å slå på/av eller motta data (som temperatur) fra en sensor. Du kan bruke nettleseren din til å lage slike flyter i Node-RED og kontrollere smartenhetene dine.
For å installere Node-RED, kjør følgende kommando i terminalvinduet.
bash //raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Dette vil laste ned og installere Node-RED på din Raspberry Pi. Det kan ta en stund å fullføre. Når Node-RED er installert, må du opprette en Node-RED-innstillingsfil ved å kjøre følgende kommando.
node-rød admin init
Følg deretter disse trinnene:
- trykk Tast inn nøkkel.
- Vil du sette opp brukersikkerhet? Å velge Ja. Skriv inn et brukernavn og et passord. Hold det trygt da dette vil bli brukt til å logge på og administrere Node-RED via et nettgrensesnitt.
- Velge Full tilgang.
- Du kan legge til en annen bruker eller velge Nei å fortsette.
- Å velge Nei når du blir bedt om å aktivere prosjektfunksjonene.
- trykk Tast inn.
- Skriv inn en passordfrase og oppbevar den trygt.
- Velg standard tema > Monaco (standard).
- Å velge Nei når du blir bedt om å laste eksterne noder.
Når dette er gjort, start Node-RED på nytt.
node-rød omstart
Du kan nå besøke Your-Raspberry-Pi-IP: 1880 i en nettleser for å åpne og logge på Node-RED-adminpanelet.
Du kan nå opprette flyter i Node-RED. Nedenfor er et eksempel på en Node-RED-flyt vi bruker for å kjøre vår WS2812B 8x32 matriseskjerm som viser forskjellig sensorinformasjon installert i hjemmet vårt i sanntid.
For å komme i gang kan du også bygg en DIY-smartklokke med MAX7219-punktmatrise, og koble den til MQTT-serveren for å vise tekst eller meldinger på den.
Aktiver hjemmeautomatisering ved å bruke MQTT og Node-RED
Du kan nå opprette flyter for å kontrollere eller overvåke dine MQTT-aktiverte smarthusenheter. Du kan også bygge DIY Tasmota-svitsjer eller Arduino-baserte smarte sensorer, og andre smarte enheter med MQTT-kontroll og bruke dem med denne MQTT- og Node-RED-serveren. Du kan lage flyter for hjemmeautomatisering basert på hendelser, tid eller nyttelast mottatt fra smarttelefonens MQTT-klient.
På Android-smarttelefonen din kan du installere MQTT Dash for å koble til MQTT-megleren din og sende eller motta nyttelast til eller fra ulike emner som smartenhetene dine abonnerer på eller publiserer på.