Messaging Queuing Telemetry Protocol oder MQTT ist ein leichtgewichtiges Messaging-Protokoll, das für Geräte und Umgebungen mit geringer Bandbreite entwickelt wurde. Es ist eine schnelle, einfach bereitzustellende und energieeffiziente Lösung zum Verbinden und Austauschen von Informationen zwischen mehreren IoT-Geräten. Es erfordert einen MQTT-Broker/Server und das Thema, zu dem Nachrichten veröffentlicht und von den Geräten oder Benutzern abonniert werden, um die Informationen zu senden oder zu empfangen.

In diesem Leitfaden werden wir den MQTT-Broker und das Node-RED-Tool auf Raspberry Pi bereitstellen, um MQTT-fähige DIY-Smart-IoT-Geräte zu verbinden und sie für die Heimautomatisierung zu verwenden.

Dinge, die Sie brauchen

Um einen MQTT-Server mit Node-RED zu erstellen und bereitzustellen, benötigen Sie Folgendes:

  • Ein Raspberry Pi Zero W oder besser. Wir empfehlen die Verwendung eines Raspberry Pi 3 oder 4 (falls verfügbar).
  • Eine microSD-Karte (8 GB oder höher).
  • Ein microSD-Kartenleser.
  • Ein Linux-PC, Mac oder Windows-PC.
  • Internetverbindung (Wi-Fi).
instagram viewer

Schritt 1: Installieren Sie Raspberry Pi OS Lite (64-Bit)

Sie benötigen die 64-Bit-Lite-Version von Raspberry Pi OS. In dem Raspberry Pi-Imager Tool auf einem anderen Computer, klicken Sie auf Wählen Sie Betriebssystem > Raspberry Pi OS (Andere), dann auswählen Raspberry Pi OS Lite (64-Bit). Außerdem sollten Sie die erweiterten Einstellungen von Imager verwenden, um SSH zu aktivieren (wir haben Pi und Himbeere als Benutzername und Passwort für diese Anleitung) und konfigurieren Sie die Wi-Fi-Verbindung. Weitere Informationen finden Sie in unserem Leitfaden unter wie man ein Betriebssystem auf einem Raspberry Pi installiert. Nachdem Sie das Betriebssystem auf die Karte geschrieben haben, werfen Sie sie aus und stecken Sie sie in Ihren Raspberry Pi.

Schritt 2: Verbinden Sie sich über SSH und aktualisieren Sie die Pakete

Sie können sich mit PuTTY unter Windows oder Terminal unter macOS und Linux über SSH mit Ihrem Raspberry Pi verbinden. Sie sollten jedoch die IP des Raspberry Pi kennen, um sich über SSH zu verbinden. Um das herauszufinden, können Sie die DHCP-Einstellungen Ihres WLAN-Routers öffnen oder die Fingapp auf Ihrem Smartphone verwenden.

Geben Sie die IP-Adresse ein Kitt und klicken Verbinden. Geben Sie Ihren Benutzernamen und Ihr Passwort ein, um sich anzumelden.

Geben Sie auf dem Linux- oder macOS-Terminal ein IhrPiBenutzername@IPAdresse und geben Sie dann das Passwort ein, um sich anzumelden. Führen Sie nach der Verbindung über SSH den folgenden Befehl aus, um die Paketliste zu aktualisieren und Pakete zu aktualisieren.

sudo apt aktualisieren && sudo apt upgrade j

Schritt 3: MQTT-Broker installieren

Führen Sie die folgenden Schritte aus, um den MQTT-Broker (Mosquitto) zu installieren und zu aktivieren.

  1. Installieren Sie Mosquitto, indem Sie den folgenden Befehl im Terminalfenster ausführen.
    sudo apt Installieren mosquitto mosquitto-clients -y
    Dadurch wird die Installation von Mosquitto (MQTT-Broker) und Client-Diensten gestartet.
  2. Aktivieren Sie nach der Installation den Mosquitto-Dienst und überprüfen Sie die MQTT-Version mit den folgenden Befehlen.
    sudosystemctlermöglichenMücke.Service
    Mücke - v
  3. Erstellen Sie mit dem folgenden Befehl ein Benutzerkonto, um den authentifizierten Remotezugriff zuzulassen.
    sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
    Hier Ravi ist der Benutzername (Sie können verwenden, was Sie möchten). Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden. Notieren Sie sich diesen Benutzernamen und das Kennwort zur späteren Verwendung.
  4. Öffne das moskito.conf Datei im Nano-Editor mit dem folgenden Befehl.
    sudo nano /etc/mosquitto.conf
    Fügen Sie den folgenden Code in den Nano-Editor ein.
    per_listener_settings Stimmt
    pid_file /run/mosquitto/mosquitto.pid
    Beharrlichkeit Stimmt
    persistence_location /Var/lib/mosquitto/
    log_dest-Datei /Var/log/mosquitto/mosquitto.log
    include_dir /etc/mosquitto/conf.d
    allow_anonym FALSCH
    Zuhörer 1883
    Passwortdatei /etc/mosquitto/passwd
    Drücken Sie STRG+X gefolgt von Y und Eintreten um die Änderungen zu speichern.
  5. Starten Sie den MQTT-Broker neu, indem Sie den folgenden Befehl ausführen.
    sudo systemctl Mosquitto neu starten
  6. Überprüfen Sie den Status des MQTT-Brokers, um festzustellen, ob MQTT ausgeführt wird.
    sudo systemctl status mosquitto
    Wenn Sie die obige Ausgabe sehen, wird MQTT ausgeführt.

Schritt 4: MQTT-Broker testen

Um zu testen, ob der MQTT-Broker funktioniert oder nicht, installieren Sie ihn MQTTLens oder eine ähnliche MQTT-App in Chrome oder einem anderen Webbrowser und starten Sie sie. Geben Sie die IP-Adresse des Raspberry Pi und den MQTT-Benutzernamen/Passwort ein. Klicken Verbindung herstellen.

Geben Sie ein beliebiges Thema in die ein Abonnieren fieldand das gleiche Thema in der Veröffentlichen aufstellen. Geben Sie "Hallo" oder etwas anderes in das Nachrichtenfeld ein und klicken Sie darauf Veröffentlichen.

Wenn Sie die Meldung unter den Abonnements sehen, funktioniert der MQTT-Broker einwandfrei.

Schritt 5: Installieren Sie Node-RED

Mit Node-RED können Sie Nachrichten veröffentlichen oder Payloads an oder von Ihren Smart Devices senden und empfangen. Diese Nutzlast kann verwendet werden, um intelligente Geräte zum Ein- und Ausschalten auszulösen oder Daten (z. B. Temperatur) von einem Sensor zu empfangen. Sie können Ihren Webbrowser verwenden, um solche Flows in Node-RED zu erstellen und Ihre intelligenten Geräte zu steuern.

Um Node-RED zu installieren, führen Sie den folgenden Befehl im Terminalfenster aus.

bash //raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Dadurch wird Node-RED auf Ihren Raspberry Pi heruntergeladen und installiert. Es kann eine Weile dauern, bis der Vorgang abgeschlossen ist. Sobald Node-RED installiert ist, müssen Sie eine Node-RED-Einstellungsdatei erstellen, indem Sie den folgenden Befehl ausführen.

Node-Red Admin-Init

Folgen Sie dann diesen Schritten:

  1. Drücken Sie die Eintreten Schlüssel.
  2. Möchten Sie Benutzersicherheit einrichten? Auswählen Ja. Geben Sie einen Benutzernamen und ein Passwort ein. Bewahren Sie es sicher auf, da es zum Anmelden und Verwalten von Node-RED über eine Webschnittstelle verwendet wird.
  3. Wählen Voller Zugriff.
  4. Sie können einen weiteren Benutzer hinzufügen oder auswählen Nein fortfahren.
  5. Auswählen Nein wenn Sie aufgefordert werden, die Projektfunktionen zu aktivieren.
  6. Drücken Sie Eintreten.
  7. Geben Sie eine Passphrase ein und bewahren Sie sie sicher auf.
  8. Wählen Sie das Standardthema > Monaco (Standard).
  9. Auswählen Nein wenn Sie aufgefordert werden, externe Knoten zu laden.

Sobald dies erledigt ist, starten Sie Node-RED neu.

Knotenroter Neustart

Sie können jetzt besuchen Ihr-Raspberry-Pi-IP: 1880 in einem Webbrowser, um das Node-RED-Admin-Panel zu öffnen und sich anzumelden.

Sie können jetzt Flows in Node-RED erstellen. Unten sehen Sie ein Beispiel für einen Node-RED-Flow, den wir verwenden, um unser 8x32-Matrix-Display WS2812B zu betreiben, das verschiedene in unserem Haus installierte Sensorinformationen in Echtzeit anzeigt.

Um loszulegen, können Sie auch Erstellen Sie eine DIY-Smart-Uhr mit MAX7219-Punktmatrix, und verbinden Sie es mit Ihrem MQTT-Server, um Text oder Nachrichten darauf anzuzeigen.

Aktivieren Sie die Heimautomatisierung mit MQTT und Node-RED

Sie können jetzt Flows erstellen, um Ihre MQTT-fähigen Smart-Home-Geräte zu steuern oder zu überwachen. Sie können auch DIY-Tasmota-Smart-Switches oder Arduino-basierte Smart-Sensoren und andere Smart-Geräte mit MQTT-Steuerung bauen und sie mit diesem MQTT- und Node-RED-Server verwenden. Sie können Flows für die Heimautomatisierung basierend auf Ereignissen, Zeit oder Nutzdaten erstellen, die Sie von Ihrem Smartphone-MQTT-Client erhalten.

Auf Ihrem Android-Smartphone können Sie MQTT Dash installieren, um sich mit Ihrem MQTT-Broker zu verbinden und Payloads an oder von verschiedenen Themen zu senden oder zu empfangen, die Ihre Smart-Geräte abonnieren oder veröffentlichen.