Installera en MQTT-server och Node-RED på Raspberry Pi för hemautomatisering

Installera en MQTT-server och Node-RED på Raspberry Pi för hemautomatisering

Messaging Queuing Telemetry Protocol, eller MQTT, är ett lättviktigt meddelandeprotokoll designat för enheter och miljöer med låg bandbredd. Det är en snabb, enkel att distribuera och energieffektiv lösning för att ansluta och utbyta information mellan flera IoT-enheter. Det kräver en MQTT-mäklare/server och ämnet som meddelanden publiceras och prenumereras på av enheterna eller användarna för att skicka eller ta emot informationen.





I den här guiden kommer vi att distribuera MQTT-mäklaren och Node-RED-verktyget på Raspberry Pi för att ansluta MQTT-aktiverade DIY smarta IoT-enheter och använda dem för hemautomatisering.





Saker du behöver

För att bygga och distribuera en MQTT-server med Node-RED behöver du följande:





  • En Raspberry Pi Zero W eller bättre. Vi rekommenderar att du använder en Raspberry Pi 3 eller 4 (om tillgänglig).
  • Ett microSD-kort (8 GB eller högre).
  • En microSD-kortläsare.
  • En Linux PC, Mac eller Windows PC.
  • Internetanslutning (Wi-Fi).

Steg 1: Installera Raspberry Pi OS Lite (64-bitars)

Du behöver 64-bitars Lite-versionen av Raspberry Pi OS. I den Raspberry Pi Imager verktyg på en annan dator, klicka Välj OS > Raspberry Pi OS (annat) , välj sedan Raspberry Pi OS Lite (64-bitars) . Dessutom vill du använda Imagers avancerade inställningar för att aktivera SSH (vi använde pi och hallon som användarnamn och lösenord för den här guiden) och konfigurera Wi-Fi-anslutningen. För mer information, kolla in vår guide på hur man installerar ett operativsystem på en Raspberry Pi . När du har skrivit operativsystemet till kortet, mata ut det och sätt in det i din Raspberry Pi.

Steg 2: Anslut över SSH och uppdatera paketen

Du kan ansluta till din Raspberry Pi via SSH med PuTTY på Windows eller Terminal på macOS och Linux. Du bör dock känna till Raspberry Pi:s IP för att ansluta över SSH. För att ta reda på det kan du öppna din trådlösa routers DHCP-inställningar eller använda Fing app på din smartphone.



  hitta ip:n till din hallon via routerns dhcp-inställningar

Ange IP-adressen i Spackel och klicka Ansluta . Skriv ditt användarnamn och lösenord för att logga in.

  anslut till raspberry pi över ssh

På Linux- eller macOS-terminal skriver du DittPiUsername@IPAddress och skriv sedan lösenordet för att logga in. När du är ansluten via SSH kör du följande kommando för att uppdatera paketlistan och uppgradera paket.





sudo apt update && sudo apt upgrade y

Steg 3: Installera MQTT Broker

För att installera och aktivera MQTT-mäklaren (Mosquitto), ta följande steg.

  1. Installera Mosquitto genom att köra följande kommando i terminalfönstret.
    sudo apt install mosquitto mosquitto-clients -y
      installera mosquitto mqtt-server Detta kommer att börja installera Mosquitto (MQTT-mäklare) och kundtjänster.
  2. Efter installationen, aktivera Mosquitto-tjänsten och kontrollera MQTT-versionen med följande kommandon.
    sudo systemctl enable mosquitto.service 
    mosquitto -v
      möjliggör myggservice
  3. Skapa ett användarkonto för att tillåta autentiserad fjärråtkomst med följande kommando.
    sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
    Här behandling är användarnamnet (du kan använda vad du vill). Ange lösenordet när du uppmanas. Notera detta användarnamn och lösenord för senare användning.
  4. Öppna mosquitto.conf fil i nanoredigeraren med följande kommando.
    sudo nano /etc/mosquitto.conf
    Klistra in följande kod i nanoredigeraren.
    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
      redigera myggans konfigurationsfil Tryck CTRL+X följd av Y och Stiga på för att spara ändringarna.
  5. Starta om MQTT-mäklaren genom att köra följande kommando.
    sudo systemctl restart mosquitto
  6. Kontrollera MQTT-mäklarens status för att se om MQTT körs.
    sudo systemctl status mosquitto
      kontrollera mqtt-serverstatus Om du ser ovanstående utdata körs MQTT.

Steg 4: Testa MQTT Broker

För att testa om MQTT-mäklaren fungerar eller inte, installera MQTTLens eller en liknande MQTT-app i Chrome eller någon annan webbläsare och starta den. Ange IP-adressen för Raspberry Pi och MQTT-användarnamnet/lösenordet. Klick Skapa anslutning .





  anslut till mqtt-servern och skicka meddelande till testämnet för att kontrollera att mqtt-mäklaren fungerar

Ange valfritt ämne i Prenumerera fält och samma ämne i Publicera fält. Skriv 'Hej' eller något annat i meddelandefältet och klicka Publicera .

skillnaden mellan en bildskärm och en tv
  meddelanden publicerade framgångsrikt som indikerar att mqtt fungerar

Om du ser meddelandet under prenumerationerna fungerar MQTT-mäklaren bra.

Steg 5: Installera Node-RED

Med Node-RED kan du publicera meddelanden eller skicka och ta emot nyttolaster till eller från dina smarta enheter. Denna nyttolast kan användas för att trigga smarta enheter att slå på/av eller ta emot data (som temperatur) från en sensor. Du kan använda din webbläsare för att skapa sådana flöden i Node-RED och styra dina smarta enheter.

För att installera Node-RED, kör följande kommando i terminalfönstret.

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
  installera noden röd

Detta kommer att ladda ner och installera Node-RED på din Raspberry Pi. Det kan ta ett tag att slutföra. När Node-RED är installerad måste du skapa en Node-RED-inställningsfil genom att köra följande kommando.

node-red admin init

Följ sedan dessa steg:

  1. tryck på Stiga på nyckel.
  2. Vill du ställa in användarsäkerhet? Välj Ja . Ange ett användarnamn och ett lösenord. Håll det säkert eftersom detta kommer att användas för att logga in och hantera Node-RED via ett webbgränssnitt.
  3. Välja Full tillgång .
  4. Du kan lägga till en annan användare eller välja Nej att fortsätta.
  5. Välj Nej när du uppmanas att aktivera projektfunktionerna.
  6. Tryck Stiga på .
  7. Skriv en lösenfras och förvara den på ett säkert sätt.
  8. Välj den standardtema > Monaco (standard) .
  9. Välj Nej när du uppmanas att ladda externa noder.
  konfigurera noden röda installationen

När detta är gjort, starta om Node-RED.

node-red restart

Du kan nu besöka Din-Raspberry-Pi-IP:1880 i en webbläsare för att öppna och logga in på Node-REDs adminpanel.

  åtkomstnod röd på raspberry pi ip vid port 1880

Du kan nu skapa flöden i Node-RED. Nedan är ett exempel på ett Node-RED-flöde som vi använder för att köra vår WS2812B 8x32 matrisdisplay som visar olika sensorinformation installerad i vårt hem i realtid.

  prov nod rött flöde för att visa olika sensorvärden på 8x32 matrisdisplay

För att komma igång kan du också bygg en DIY smart klocka med MAX7219 punktmatris , och anslut den till din MQTT-server för att visa text eller meddelanden på den.

Aktivera hemautomatisering med MQTT och Node-RED

Du kan nu skapa flöden för att styra eller övervaka dina MQTT-aktiverade smarta hemenheter. Du kan också bygga DIY Tasmota smarta switchar eller Arduino-baserade smarta sensorer och andra smarta enheter med MQTT-kontroll och använda dem med denna MQTT och Node-RED-server. Du kan skapa flöden för hemautomatisering baserat på händelser, tid eller nyttolast som tas emot från din smartphone MQTT-klient.

På din Android-smarttelefon kan du installera MQTT Dash för att ansluta till din MQTT-mäklare och skicka eller ta emot nyttolaster till eller från olika ämnen som dina smarta enheter prenumererar på eller publicerar på.