Installer en MQTT-server og Node-RED på Raspberry Pi til hjemmeautomatisering

Installer en MQTT-server og Node-RED på Raspberry Pi til hjemmeautomatisering

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 Terminal på macOS og Linux. Du bør dog kende Raspberry Pi'ens IP for at oprette forbindelse over SSH. For at finde ud af det, kan du åbne din trådløse routers DHCP-indstillinger eller bruge Fing app på din smartphone.



brugte varer til salg i nærheden af ​​mig
  find ip'en til din hindbær via routerens dhcp-indstillinger

Indtast IP-adressen i PuTTY og klik Opret forbindelse . Indtast dit brugernavn og din adgangskode for at logge ind.

  tilslut til raspberry pi over ssh

På Linux- eller macOS-terminal skal du skrive DitPiBrugernavn@IPAddress og skriv derefter adgangskoden for at logge ind. Når du er tilsluttet via SSH, skal du køre følgende kommando for at opdatere pakkelisten og opgradere pakker.





sudo apt update && sudo apt upgrade y

Trin 3: Installer MQTT Broker

For at installere og aktivere MQTT-mægleren (Mosquitto), skal du tage følgende trin.

  1. Installer Mosquitto ved at køre følgende kommando i terminalvinduet.
    sudo apt install mosquitto mosquitto-clients -y
      installer mosquitto mqtt server Dette vil begynde at installere Mosquitto (MQTT-mægler) og klienttjenester.
  2. Efter installationen skal du aktivere Mosquitto-tjenesten og kontrollere MQTT-versionen ved hjælp af følgende kommandoer.
    sudo systemctl enable mosquitto.service 
    mosquitto -v
      aktivere myggeservice
  3. Opret en brugerkonto for at tillade godkendt fjernadgang ved hjælp af følgende kommando.
    sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
    Her behandling 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.
  4. Åbn mosquitto.conf fil i nano-editoren ved hjælp af følgende kommando.
    sudo nano /etc/mosquitto.conf
    Indsæt følgende kode i nano-editoren.
    per_listener_settings true 
    pid_file /run/mosquitto/mosquitto.pid
    persistence true
    persistence_location /var/lib/mosquitto/
    log_dest file /var/log/mosquitto/mosquitto.log
    include_dir /etc/mosquitto/conf.d
    allow_anonymous false
    listener 1883
    password_file /etc/mosquitto/passwd
      rediger mosquitto-konfigurationsfilen Trykke CTRL+X efterfulgt af Y og Gå ind for at gemme ændringerne.
  5. Genstart MQTT-mægleren ved at køre følgende kommando.
    sudo systemctl restart mosquitto
  6. Tjek MQTT-mæglerstatus for at se, om MQTT kører.
    sudo systemctl status mosquitto
      tjek mqtt-serverstatus Hvis du ser ovenstående output, kører MQTT.

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 .





hvordan man lukker et frosset program uden task manager
  opret forbindelse til mqtt-serveren og send besked til testemnet for at kontrollere, at mqtt-mægleren fungerer

Indtast et hvilket som helst emne i Abonner Mark og det samme emne i Offentliggøre Mark. Skriv 'Hej' eller noget andet i meddelelsesfeltet, og klik Offentliggøre .

  meddelelser, der er offentliggjort med succes, indikerer at mqtt virker

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 <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
  installer noden rød

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:

  1. Tryk på Gå ind nøgle.
  2. 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.
  3. Vælge Fuld adgang .
  4. Du kan tilføje en anden bruger eller vælge Nix at fortsætte.
  5. Vælg Nix når du bliver bedt om at aktivere projektfunktionerne.
  6. Trykke Gå ind .
  7. Indtast en adgangssætning, og opbevar den sikkert.
  8. Vælg standard tema > Monaco (standard) .
  9. Vælg Nix når du bliver bedt om at indlæse eksterne noder.
  konfigurer den røde node installation

Når dette er gjort, skal du genstarte Node-RED.

harddisk på 100 windows 10
node-red restart

Du kan nu besøge Din-Raspberry-Pi-IP:1880 i en webbrowser for at åbne og logge ind på Node-RED-administrationspanelet.

  adgangsnode rød på raspberry pi ip ved port 1880

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 matrixdisplay, der viser forskellige sensoroplysninger installeret i vores hjem i realtid.

  prøve node rødt flow for at vise forskellige sensorværdier på 8x32 matrixdisplay

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 til 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.