Inhoudsopgave:
- Stap 1: Back-up via wifi en MQTT
- Stap 2: De afstandsbediening/afzender
- Stap 3: De ontvanger - hardware (esp8266 en Raspberry Pi)
- Stap 4: De ontvanger - Software (Serial, Node Red, MQTT)
Video: ESP-NOW Domotica Esp8266 Raspberry Pi MQTT - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
In deze Instructable laat ik je zien hoe ik ESP-NOW heb gebruikt in mijn domotica. In het schema zie je de communicatiestromen
Ik toon u:
- hoe de afzender werkt
- hoe de ontvanger werkt
- hoe de seriële communicatie met een Raspberry Pi werkt
Ik laat niet zien hoe MQTT en mijn domotica werken, daar kun je andere goede instructies voor vinden.
Credits: dit Instructable is geïnspireerd door:
Video #172 door Andreas Spiess
www.esploradores.com/practica-6-conexion-es…
Stap 1: Back-up via wifi en MQTT
Ik kwam erachter dat ESP-NOW extreem snel en redelijk betrouwbaar is, maar soms faalt. In mijn programma heb ik een back-up toegevoegd via normale WiFi en MQTT verbinding.
Stap 2: De afstandsbediening/afzender
In het eerste schema zie je hoe het programma van de afzender werkt:
- De esp8266 start op vanaf het opstarten of vanaf reset
- ESP-NOW is geïnitialiseerd
- De module verzendt ESP-NOW voor een bepaalde tijd
-
De module controleert in een terugbelfunctie of het ESP-NOW-bericht door de ontvanger is ontvangen.
- Als het ESP-NOW-bericht is ontvangen, gaat de module in een diepe slaap met laag vermogen
- Als het ESP-NOW-bericht niet is ontvangen, start de module een wifi-verbinding en een MQTT-verbinding als back-upverbinding.
Het programma voor de afzender staat in mijn Github (Master_sender.ino). Het programma verstuurt zowel het onderwerp als het bericht voor de MQTT domotica in één gecombineerd ESP-NOW bericht, gecombineerd met een '&' teken voor een makkelijke splitsing bij de ontvanger.
Ik heb twee verschillende afstandsbedieningen/zenders gemaakt:
Afzender 1: De esp8266 bevindt zich in diepe slaap en wordt geactiveerd door een reset. De led in de knop licht op en dimt wanneer de module klaar is. Als de spanning van de batterij te laag is, knippert de led. Als de ESP-NOW is mislukt, knippert de led voordat wordt overgeschakeld naar WiFi/MQTT-verbindingen. De esp8266 wordt gevoed door een LiPo-batterij met een HT7333-spanningsregelaar tot 3,3 V
Afzender 2: De esp8266 is uitgeschakeld en wordt gevoed door op de knop te drukken. Normaal gesproken wordt de ESP-NOW-verbinding gemaakt nadat de knop 'klikt'. De esp8266 wordt rechtstreeks gevoed door een LiPo-batterij. Ik weet niet of de esp8266 beschadigd raakt door de hoge spanning van een volledig opgeladen batterij (tot 4,2 V) wanneer deze slechts een paar 100 ms wordt ingeschakeld. Het is hoger dan de specificaties (3.0 - 3.6V).
Let op: als de batterij bijna leeg is, mislukt de ESP-NOW.
Stap 3: De ontvanger - hardware (esp8266 en Raspberry Pi)
De beschrijving van de ontvanger is opgesplitst in twee delen:
- Hardware
- Software
de hardware
De ontvangende esp-01 is verbonden met mijn Raspberry Pi Zero waarop mijn domoticasysteem (Openhab2) en Node Red draait.
In het schema zijn de eenvoudige aansluitingen weergegeven:
- RX van de esp-01 naar TX van de RasPi
- TX van de esp-01 naar RX van de RasPi
- GND naar GND
- De esp-01 VCC wordt aangedreven door de 3.3V-pin van de Raspi
- Op de esp-01 worden zowel RST als CH_PD hoog getrokken.
Ik heb een interface-connector gemaakt om hem gemakkelijk te monteren
Op één foto zie je mijn draadverbindingen met mijn Raspberry Pi 3 (die dezelfde pinout heeft, maar ik heb een andere 3.3V-pin gebruikt om verbinding te maken met CH_PD).
De esp-01 was geprogrammeerd zoals getoond in mijn andere Instructable (zie stap 3).
Stap 4: De ontvanger - Software (Serial, Node Red, MQTT)
Programma op esp8266
Het programma voor de esp-01 ontvanger staat in mijn Github (Master_sender.ino). Het programma is heel eenvoudig, het print alleen het ontvangen ESP-NOW-bericht op de seriële poort naar de Raspberry Pi.
Seriële poort
Op de Raspberry Pi moet u de seriële poort activeren (op raspbian, voer 'sudo raspi-config' uit) voor normale seriële communicatie.
De naam van de seriële poort is:
- Raspberry Pi Zero: /dev/ttyAMA0
- Raspberry Pi 3: /dev/ttyS0
U kunt de seriële poort controleren door 'dmesg |. uit te voeren grep tty' of 'ls /dev'
Knooppunt Rood
Selecteer in Node Red het seriële invoerknooppunt en stel de seriële poort in (zie de bijgevoegde afbeeldingen). Let op de baudrate van de seriële verbinding, deze moet overeenkomen met de baudrate zoals geprogrammeerd in de esp8266.
De uitvoer van het seriële knooppunt wordt getransformeerd door een functieknooppunt dat het bericht splitst bij het '&'-teken en de msg.topic en de msg.payload instelt. De uitvoer van de functie wordt naar het mqtt-uitvoerknooppunt geleid dat het bericht naar de MQTT-server stuurt. Merk op dat het onderwerpveld van het mqtt-knooppunt leeg is, omdat het onderwerp in het bericht is ingesteld.
Aanbevolen:
$ 5 Domotica-knop: 4 stappen
Home Automation-knop van $ 5: een Home Automation-knop van $ 5 Soms is de eenvoudigste oplossing een enkele knop. We wilden een gemakkelijke manier om een "bedtijd" -routine te activeren op onze domotica-hub (de Hubitat Elevation), die de meeste lichten uitdoet, andere op specifieke niveaus zet en
Domotica met ESP8266 of NODEMCU: 6 stappen
Domotica met ESP8266 of NODEMCU: Heb je ooit je huis willen automatiseren via wifi? Wil je de lichten, ventilator en alle andere apparaten vanaf je smartphone bedienen? Of heb je ooit een instructable willen hebben over aangesloten apparaten en ermee aan de slag gaan? Dit domotica-project zal
Domotica met MQTT en ESP8266: 6 stappen
Domotica met behulp van MQTT en ESP8266: Tegenwoordig is domotica een trend en een opkomend tijdperk van IoT (Internet of Things). Iedereen probeert het huis op de een of andere manier te automatiseren, dan kan dat op afstand worden bediend of handmatig. En wat het leven voor hen gemakkelijker maakt. Er zijn mantechnieken om te controleren
DIY IoT-lamp voor domotica -- ESP8266-zelfstudie: 13 stappen (met afbeeldingen)
DIY IoT-lamp voor domotica || ESP8266 Tutorial: In deze tutorial gaan we een met internet verbonden slimme lamp maken. Dit gaat diep in het internet der dingen en opent een wereld van domotica! De lamp is verbonden met wifi en gebouwd om een open berichtenprotocol te hebben. Dit betekent dat je kunt kiezen
Goedkope en effectieve domotica met Raspberry Pi 11 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Goedkope en effectieve domotica met Raspberry Pi: ik heb altijd al lampen draadloos willen kunnen bedienen, maar commerciële opties zijn meestal duur. Philips Hue-lampen kosten ongeveer $ 70, en met wifi verbonden lampen zijn ook duur. Deze tutorial zal je vertellen hoe je tot vijf lampen/l