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

instagram viewer
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.

  1. Installer Mosquitto ved å kjøre følgende kommando i Terminal-vinduet.
    sudo apt installere mygg mygg-klienter -y
    Dette vil begynne å installere Mosquitto (MQTT-megler) og klienttjenester.
  2. Etter installasjonen aktiverer du Mosquitto-tjenesten og kontrollerer MQTT-versjonen ved å bruke følgende kommandoer.
    sudosystemctlmuliggjøremygg.service
    mygg -v
  3. Opprett en brukerkonto for å tillate autentisert ekstern tilgang ved å bruke følgende kommando.
    sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
    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.
  4. Åpne mosquitto.conf fil i nano-editoren ved å bruke følgende kommando.
    sudo nano /etc/mosquitto.conf
    Lim inn følgende kode i nano-editoren.
    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
    trykk CTRL+X etterfulgt av Y og Tast inn for å lagre endringene.
  5. Start MQTT-megleren på nytt ved å kjøre følgende kommando.
    sudo systemctl start mosquitto på nytt
  6. Sjekk MQTT-meglerstatusen for å se om MQTT kjører.
    sudo systemctl status mygg
    Hvis du ser utgangen ovenfor, kjører MQTT.

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:

  1. trykk Tast inn nøkkel.
  2. 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.
  3. Velge Full tilgang.
  4. Du kan legge til en annen bruker eller velge Nei å fortsette.
  5. Å velge Nei når du blir bedt om å aktivere prosjektfunksjonene.
  6. trykk Tast inn.
  7. Skriv inn en passordfrase og oppbevar den trygt.
  8. Velg standard tema > Monaco (standard).
  9. Å 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å.