![ESP-NOW Home Automation ESP8266 Raspberry Pi MQTT - Gunook ESP-NOW Home Automation ESP8266 Raspberry Pi MQTT - Gunook](https://i.howwhatproduce.com/images/001/image-2322-27-j.webp)
Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52
![ESP-NOW Home Automation ESP8266 Raspberry Pi MQTT ESP-NOW Home Automation ESP8266 Raspberry Pi MQTT](https://i.howwhatproduce.com/images/001/image-2322-28-j.webp)
In diesem Instructable zeige ich Ihnen, wie ich ESP-NOW in meiner Hausautomation verwendet habe. Im Schaltplan sehen Sie die Kommunikationsflüsse
Ich zeige Ihnen:
- So funktioniert der Absender
- wie funktioniert der empfänger
- So funktioniert die serielle Kommunikation mit einem Raspberry Pi
Wie MQTT und meine Hausautomation funktionieren, zeige ich nicht, dafür findest du andere gute Anleitungen.
Credits: Dieses Instructable wurde inspiriert von:
Video #172 von Andreas Spiess
www.esploradores.com/practica-6-conexion-es…
Schritt 1: Backup über WLAN und MQTT
![Backup über WLAN und MQTT Backup über WLAN und MQTT](https://i.howwhatproduce.com/images/001/image-2322-29-j.webp)
Ich habe herausgefunden, dass ESP-NOW extrem schnell und ziemlich zuverlässig ist, aber manchmal fehlschlägt. In meinem Programm habe ich ein Backup über normale WLAN- und MQTT-Verbindung hinzugefügt.
Schritt 2: Die Fernbedienung/der Sender
![Die Fernbedienung/der Sender Die Fernbedienung/der Sender](https://i.howwhatproduce.com/images/001/image-2322-30-j.webp)
![Die Fernbedienung/der Sender Die Fernbedienung/der Sender](https://i.howwhatproduce.com/images/001/image-2322-31-j.webp)
![Die Fernbedienung/der Sender Die Fernbedienung/der Sender](https://i.howwhatproduce.com/images/001/image-2322-32-j.webp)
![Die Fernbedienung/der Sender Die Fernbedienung/der Sender](https://i.howwhatproduce.com/images/001/image-2322-33-j.webp)
Im ersten Schema sehen Sie, wie das Programm des Absenders funktioniert:
- Der esp8266 startet beim Einschalten oder beim Zurücksetzen
- ESP-NOW ist initialisiert
- Das Modul sendet ESP-NOW für eine definierte Zeit
-
Das Modul prüft in einer Rückruffunktion, ob die ESP-NOW-Nachricht vom Empfänger empfangen wurde.
- Wenn die ESP-NOW-Nachricht empfangen wurde, geht das Modul in einen Tiefschlaf mit niedriger Leistung
- Wurde die ESP-NOW-Nachricht nicht empfangen, startet das Modul eine WiFi-Verbindung und eine MQTT-Verbindung als Backup-Verbindung.
Das Programm für den Absender befindet sich in meinem Github (Master_sender.ino). Das Programm sendet sowohl das Thema als auch die Nachricht für die MQTT-Hausautomation in einer kombinierten ESP-NOW-Nachricht, kombiniert mit einem '&'-Zeichen für eine einfache Aufteilung beim Empfänger.
Ich habe zwei verschiedene Fernbedienungen / Sender gemacht:
Sender 1: Der esp8266 befindet sich im Tiefschlaf und wird durch einen Reset aktiviert. Die LED in der Taste leuchtet und dimmt, wenn das Modul fertig ist. Wenn die Batteriespannung zu niedrig ist, blinkt die LED. Wenn ESP-NOW fehlgeschlagen ist, blinkt die LED, bevor zu WiFi/MQTT-Verbindungen gewechselt wird. Der esp8266 wird von einem LiPo-Akku mit einem HT7333-Spannungsregler auf 3.3V. gespeist
Sender 2: Der esp8266 wird ausgeschaltet und durch Drücken der Taste eingeschaltet. Normalerweise wird die ESP-NOW-Verbindung nach dem „Klicken“der Schaltfläche hergestellt. Der esp8266 wird direkt von einem LiPo-Akku gespeist. Ich weiß nicht, ob der esp8266 durch die hohe Spannung eines voll geladenen Akkus (bis zu 4,2 V) beschädigt wird, wenn er nur wenige 100 ms eingeschaltet wird. Es ist höher als die Spezifikationen (3,0 - 3,6 V).
Hinweis: Wenn die Batterieladung niedrig ist, schlägt ESP-NOW fehl.
Schritt 3: Der Empfänger - Hardware (esp8266 und Raspberry Pi)
![Der Empfänger - Hardware (esp8266 und Raspberry Pi) Der Empfänger - Hardware (esp8266 und Raspberry Pi)](https://i.howwhatproduce.com/images/001/image-2322-34-j.webp)
![Der Empfänger - Hardware (esp8266 und Raspberry Pi) Der Empfänger - Hardware (esp8266 und Raspberry Pi)](https://i.howwhatproduce.com/images/001/image-2322-35-j.webp)
![Der Empfänger - Hardware (esp8266 und Raspberry Pi) Der Empfänger - Hardware (esp8266 und Raspberry Pi)](https://i.howwhatproduce.com/images/001/image-2322-36-j.webp)
Die Beschreibung des Empfängers gliedert sich in zwei Teile:
- Hardware
- Software
Die Hardware
Der empfangende esp-01 ist mit meinem Raspberry Pi Zero verbunden, auf dem mein Hausautomationssystem (Openhab2) und Node Red laufen.
Im Schaltplan sind die einfachen Verbindungen dargestellt:
- RX des esp-01 zu TX des RasPi
- TX des esp-01 zum RX des RasPi
- GND zu GND
- Der esp-01 VCC wird vom 3.3V Pin des Raspi. gespeist
- Beim esp-01 werden sowohl RST als auch CH_PD hochgezogen.
Ich habe einen Schnittstellenanschluss gemacht, um ihn einfach zu montieren
In einem Bild sehen Sie meine Kabelverbindungen zu meinem Raspberry Pi 3 (der die gleiche Pinbelegung hat, aber ich habe einen anderen 3,3-V-Pin verwendet, um eine Verbindung zu CH_PD herzustellen).
Das esp-01 wurde wie in meinem anderen Instructable gezeigt programmiert (siehe Schritt 3).
Schritt 4: Der Empfänger - Software (Seriell, Node Red, MQTT)
![Der Empfänger - Software (Seriell, Node Red, MQTT) Der Empfänger - Software (Seriell, Node Red, MQTT)](https://i.howwhatproduce.com/images/001/image-2322-37-j.webp)
![Der Empfänger - Software (Seriell, Node Red, MQTT) Der Empfänger - Software (Seriell, Node Red, MQTT)](https://i.howwhatproduce.com/images/001/image-2322-38-j.webp)
![Der Empfänger - Software (Seriell, Node Red, MQTT) Der Empfänger - Software (Seriell, Node Red, MQTT)](https://i.howwhatproduce.com/images/001/image-2322-39-j.webp)
Programm auf esp8266
Das Programm für den esp-01-Empfänger befindet sich in meinem Github (Master_sender.ino). Das Programm ist wirklich einfach, es druckt nur die empfangene ESP-NOW-Nachricht über die serielle Schnittstelle zum Raspberry Pi.
Serielle Schnittstelle
Auf dem Raspberry Pi müssen Sie für die normale serielle Kommunikation den Serial Port aktivieren (auf Raspbian 'sudo raspi-config' ausführen).
Der Name der seriellen Schnittstelle lautet:
- Raspberry Pi Zero: /dev/ttyAMA0
- Raspberry Pi 3: /dev/ttyS0
Sie können den seriellen Port überprüfen, indem Sie 'dmesg |. ausführen grep tty' oder 'ls /dev'
Knoten Rot
Wählen Sie in Node Red den seriellen Eingangsknoten aus und richten Sie den seriellen Port ein (siehe die beigefügten Bilder). Beachten Sie die Baudrate der seriellen Verbindung, diese muss mit der im esp8266 programmierten Baudrate übereinstimmen.
Die Ausgabe des seriellen Knotens wird von einem Funktionsknoten transformiert, der die Nachricht am '&'-Zeichen aufteilt und die msg.topic und die msg.payload setzt. Die Ausgabe der Funktion wird in den mqtt-Ausgabeknoten geleitet, der die Nachricht an den MQTT-Server sendet. Beachten Sie, dass das Themenfeld des mqtt-Knotens leer ist, da das Thema in der Nachricht festgelegt ist.
Empfohlen:
MQTT Broker (Mosquitto) unter Windows installieren: 7 Schritte
![MQTT Broker (Mosquitto) unter Windows installieren: 7 Schritte MQTT Broker (Mosquitto) unter Windows installieren: 7 Schritte](https://i.howwhatproduce.com/images/002/image-4892-3-j.webp)
Installation von MQTT Broker (Mosquitto) unter Windows: Was ist Broker? Der MQTT-Broker ist ein Datenverwaltungszentrum oder wird allgemein als "Server" bezeichnet. Der Mosquitto-Broker ist dafür verantwortlich, alle Nachrichten zu bearbeiten, Nachrichten zu filtern, zu entscheiden, wer daran interessiert ist und dann die
HOME AUTOMATION (STEUEREN SIE IHRE GERÄTE VON JEDER ECKE DER WELT).: 5 Schritte
![HOME AUTOMATION (STEUEREN SIE IHRE GERÄTE VON JEDER ECKE DER WELT).: 5 Schritte HOME AUTOMATION (STEUEREN SIE IHRE GERÄTE VON JEDER ECKE DER WELT).: 5 Schritte](https://i.howwhatproduce.com/images/002/image-5151-21-j.webp)
HOME AUTOMATION (STEUERN SIE IHRE GERÄTE VON JEDER ECKE DER WELT).: In diesem anweisbaren habe ich geteilt, wie Sie ESP8266 verwenden können, um AC-Geräte wie Lichter, Lüfter usw. aus der ganzen Welt über das Internet über die Blynk-App zu steuern neu bei ESP8266 stellen Sie sicher, dass Sie sich dieses anweisbare ansehen: - Erste Schritte mit NodeM
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: 6 Schritte Raspbian in Raspberry Pi 3 B ohne HDMI installieren - Erste Schritte mit Raspberry Pi 3B - Einrichten Ihres Raspberry Pi 3: 6 Schritte](https://i.howwhatproduce.com/images/002/image-5563-20-j.webp)
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
ESP8266/ESP-12 Arduino Powered SmartThings DS18B20 Temp. Sensor: 4 Schritte (mit Bildern)
![ESP8266/ESP-12 Arduino Powered SmartThings DS18B20 Temp. Sensor: 4 Schritte (mit Bildern) ESP8266/ESP-12 Arduino Powered SmartThings DS18B20 Temp. Sensor: 4 Schritte (mit Bildern)](https://i.howwhatproduce.com/images/004/image-9064-41-j.webp)
ESP8266/ESP-12 Arduino Powered SmartThings DS18B20 Temp. Sensor: Wir alle möchten gerne wissen, wie die aktuelle Raumtemperatur ist und manchmal auch die Temperatur in einem anderen Raum oder vielleicht sogar in Ihrem Ferienhaus am anderen Ende der Welt. Vielleicht möchten Sie die Temperatur im Haus Ihres Haustiers Eidechse überwachen
Tutorial ESP8266 und Node-RED MQTT GPIO (Mosquitto) # 1: 5 Schritte
![Tutorial ESP8266 und Node-RED MQTT GPIO (Mosquitto) # 1: 5 Schritte Tutorial ESP8266 und Node-RED MQTT GPIO (Mosquitto) # 1: 5 Schritte](https://i.howwhatproduce.com/images/001/image-1619-73-j.webp)
Tutorial ESP8266 und Node-RED MQTT GPIO (Mosquitto) #1: Zur Einbindung des Moduls ESP8266 mit der Node-red IoT-Plattform wurde das MQTT-Protokoll verwendet, es gibt Client-Bibliotheken für esp8266 als MQTT in diesem Fall habe ich mich für die Bibliothek pubsubclient entschieden. In diesem Beispiel wird Node Red empfangen, der Daten empfängt von