Inhaltsverzeichnis:
- Schritt 1: Was ist MQTT und wie funktioniert es?
- Schritt 2: Himbeer-Pi
- Schritt 3: So richten Sie eine statische IP-Adresse ein
- Schritt 4: NodeMCU
- Schritt 5: Python-Skript
- Schritt 6: Anschlüsse und Schaltplan
- Schritt 7: Ergebnis
Video: Raspberry Pi spricht mit ESP8266 über MQTT - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
In diesem Projekt werde ich erklären, was das MQTT-Protokoll ist und wie es verwendet wird, um zwischen Geräten zu kommunizieren. Dann werde ich als praktische Demonstration zeigen, wie man ein Client- und Brocker-System einrichtet, wobei ein ESP8266-Modul sowie RPi sprechen miteinander oder senden Sie eine Nachricht, wenn eine Taste gedrückt wird.
Benötigtes Material
1. Raspberry Pi 3
2. NodeMCU
3. LED
4. Taste
5. Widerstände (10k, 475 Ohm)
Schritt 1: Was ist MQTT und wie funktioniert es?
MQTT
MQTT ist ein Machine-to-Machine (M2M) Datenübertragungsprotokoll. MQTT wurde mit dem Ziel entwickelt, Daten von vielen Geräten zu sammeln und diese Daten dann in die IT-Infrastruktur zu transportieren. Es ist leichtgewichtig und daher ideal für die Fernüberwachung, insbesondere bei M2M-Verbindungen, die einen geringen Code-Footprint erfordern oder bei denen die Netzwerkbandbreite begrenzt ist.
So funktioniert MQTT
MQTT ist ein Publish/Subscribe-Protokoll, das es Edge-of-Network-Geräten ermöglicht, an einen Broker zu veröffentlichen. Clients stellen eine Verbindung zu diesem Broker her, der dann die Kommunikation zwischen den beiden Geräten vermittelt. Jedes Gerät kann bestimmte Themen abonnieren oder registrieren. Wenn ein anderer Client eine Nachricht zu einem abonnierten Thema veröffentlicht, leitet der Broker die Nachricht an alle abonnierten Clients weiter.
MQTT ist bidirektional und behält das zustandsbehaftete Sitzungsbewusstsein bei. Wenn ein Edge-of-Network-Gerät die Konnektivität verliert, werden alle abonnierten Clients mit der Funktion „Letzter Wille und Testament“des MQTT-Servers benachrichtigt, sodass jeder autorisierte Client im System einen neuen Wert zurück zum Edge-of-Network veröffentlichen kann. Netzwerkgerät, das die bidirektionale Konnektivität aufrechterhält.
Das Projekt ist in 3 Teile gegliedert
Zuerst erstellen wir einen MQTT-Server auf RPi und installieren einige Bibliotheken.
Zweitens installieren wir Bibliotheken in der Arduino IDE, damit NodeMCU mit MQTT funktioniert, laden den Code hoch und prüfen, ob der Server funktioniert oder nicht.
Schließlich erstellen wir ein Skript in Rpi, laden den erforderlichen Code in NodeMCU hoch und führen das Python-Skript aus, um LEDs sowohl auf der Server- als auch auf der Clientseite zu steuern. Hier ist Server RPi und Client NodeMCU.
Schritt 2: Himbeer-Pi
1. Um den neuesten MQTT-Server und -Client in RPi zu installieren und das neue Repository zu verwenden, sollten Sie zuerst den Signaturschlüssel des Repository-Pakets importieren.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key add mosquitto-repo.gpg.key
2. Stellen Sie apt das Repository zur Verfügung.
cd /etc/apt/sources.list.d/
3. Je nachdem, welche Debian-Version Sie verwenden.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get update
4. Installieren Sie den Mosquitto-Server mit dem Befehl.
sudo apt-get install mosquitto
Wenn Sie Fehler bei der Installation von Mosquitto wie folgt erhalten.
#################################################################
Die folgenden Pakete haben nicht erfüllte Abhängigkeiten:mosquitto: Abhängig von: libssl1.0.0 (>= 1.0.1) aber nicht installierbar Abhängig von: libwebsockets3 (>= 1.2) aber nicht installierbar E: Probleme können nicht behoben werden, Sie haben kaputt gehalten Pakete.
#################################################################
Verwenden Sie dann diesen Befehl, um Probleme zu beheben.
sudo apt --fix-broken install
5. Installieren Sie nach der Installation des MQTT-Servers den Client mit dem Befehl
sudo apt-get install mosquitto-clients
Sie können Dienste mit dem Befehl überprüfen.
systemctl-status mosquitto.service
Da ist unser MQTT-Server und -Client installiert. Jetzt können wir es mit Abonnieren und Veröffentlichen überprüfen. Zum Abonnieren und Veröffentlichen können Sie die Befehle überprüfen oder die Website wie unten angegeben besuchen.
Moskito-Sub
Moskito-Pub
Um die paho-mqtt-Bibliothek zu installieren, verwenden Sie den folgenden Befehl.
sudo pip install paho-mqtt
Paho
Schritt 3: So richten Sie eine statische IP-Adresse ein
Gehen Sie in das Verzeichnis cd /etc und öffnen Sie die Datei dhcpcd.conf mit einem beliebigen Editor. Schreiben Sie am Ende diese vier Zeilen.
Schnittstelle eth0 static ip_address=192.168.1.100 // IP die Sie verwenden möchten
Schnittstelle wlan0
statische IP-Adresse=192.168.1.68
statische Router=192.168.1.1 // Ihr Standard-Gateway
statischer domain_name_servers=192.168.1.1
Danach speichern Sie es und starten Sie Ihr Pi neu.
Schritt 4: NodeMCU
Installieren Sie die erforderlichen Bibliotheken in der Arduino IDE für NodeMCU
1. Gehen Sie zu Sketch ==> Bibliothek einschließen ==> Bibliotheken verwalten.
2. Suchen Sie nach mqtt und installieren Sie die Bibliothek von Adafruit oder installieren Sie eine beliebige Bibliothek.
3. Es hängt von der sleepydog-Bibliothek ab, also brauchen wir diese Bibliothek auch.
Das Programm ist oben angegeben, nur um zu überprüfen, ob es funktioniert oder nicht. Hier habe ich kein Skript in RPi erstellt. Wir verwenden nur Befehle zum Abonnieren und Veröffentlichen. Wir werden später ein Skript für die Steuerung erstellen.
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "OFF"
mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"
-h == > Hostname-t == > Thema
-m == > Nachricht
Nachdem Sie das Mqtt_check-Programm überprüft haben, laden Sie das komplette Programm in NodeMCU hoch
Schritt 5: Python-Skript
Wie ich oben besprochen habe, benötigen wir ein Python-Skript zum Steuern von LEDs mit Schaltflächen. Also werden wir ein Skript erstellen. Skript ist oben angegeben.
Wenn Sie das Skript ausführen, sollte Ihr Skript wie im Bild gezeigt aussehen. Wenn der Ergebniscode nicht Null ist, ist dies ein Fehler, den Sie auf der paho-Website überprüfen können.
Schritt 6: Anschlüsse und Schaltplan
Anbindung Taster, LED mit NodeMCU
NodeMCU === > ButtonGnd === > Gnd
3.3V === > PIN1
GPIO4 (D2) === > PIN2
NodeMCU === > LED
Masse === > Kathode (-ve)
GPIO5 (D1) === > Anode(+ve)
Anbindung Taster, LED mit RPi
RPi === > ButtonGnd === > PIN1
GPIO 23 === > PIN2
RPi === > LED
Masse == > Kathode(-ve)
GPIO 24 === > Anode(+ve)
Schritt 7: Ergebnis
Stellen Sie sicher, dass Ihr Skript ausgeführt wird, da es sonst nicht in der Lage ist, LEDs mit Schaltflächen zu steuern.
Empfohlen:
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Erfahren Sie, wie Sie mit PROCESSING eine Echtzeitschnittstelle in ARDUINO erstellen !!!!): 5 Schritte (mit Bildern)
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using PROCESSING !!!!): Ein SCARA-Roboter ist eine sehr beliebte Maschine in der Industriewelt. Der Name steht sowohl für Selective Compliant Assembly Robot Arm als auch für Selective Compliant Articulated Robot Arm. Es ist im Grunde ein Roboter mit drei Freiheitsgraden, da er die ersten beiden Displ
Raspbian in Raspberry Pi 3 B ohne HDMI installieren - Erste Schritte mit Raspberry Pi 3B - Einrichten Ihres Raspberry Pi 3: 6 Schritte
Raspbian in Raspberry Pi 3 B ohne HDMI installieren | Erste Schritte mit Raspberry Pi 3B | Einrichten Ihres Raspberry Pi 3: Wie einige von Ihnen wissen, sind Raspberry Pi-Computer ziemlich großartig und Sie können den gesamten Computer nur auf einer einzigen winzigen Platine bekommen. Das Raspberry Pi 3 Model B verfügt über einen Quad-Core 64-Bit ARM Cortex A53 mit 1,2 GHz getaktet. Damit ist der Pi 3 ungefähr 50
Steuern Sie Geräte über das Internet über den Browser. (IoT): 6 Schritte
Steuern Sie Geräte über das Internet über den Browser. (IoT): In diesem Instructable zeige ich Ihnen, wie Sie Geräte wie LEDs, Relais, Motoren usw. über das Internet über einen Webbrowser steuern können. Und Sie können über jedes Gerät sicher auf die Bedienelemente zugreifen. Die Webplattform, die ich hier verwendet habe, ist RemoteMe.org visit
HRV-Temperatur zu OpenHAB über ESP8266 (Seriencode-Beispiel!): 3 Schritte
HRV-Temperatur zu OpenHAB über ESP8266 (Seriencode-Beispiel!): HRV - Drahtlos zu OpenHABDieses anweisbare ist speziell für diejenigen gedacht, die ein HRV-System (Heizungs-Umluft-Belüftung) haben - obwohl Teile der Platine, Openhab-Konfiguration oder Arduino-Code (wie Lesen) serielle TTL-Daten) könnte h