ESP-Now
Die Nutzung von WLAN ist sehr energiehungrig und speziell, wenn man einen ESP8266 oder ESP32 allein mit Batterien betreiben will, ist jedes mA eine Herausforderung. Das Starten von WLAN, einbuchen beim Access-Point, erhalten einer IP-Adresse per DHCP und der TCP-Verbindungsaufbau zur Übertragung eines kleinen Messwerts ist aufwändig. Hier hat ESP mit seinem ESP-NOW genannten Ansatz einer Alternative vorgestellt.
Ich selbst habe mit ESP-Now noch keine Erfahrungen gesammelt. Dies ist daher erst mal nur eine Linksammlung.
ESP-Now ist P2P
Die ESP-Now-Funktion erlaubt die direkte Kommunikation zwischen ESP-Systemen ohne WLAN AccessPoints. Sie nutzen einfach ihre MAC-Adressen und senden ihre Information ohne weiteren Protokoll-Overhead. Natürlich muss die Gegenseite dann den Empfang quittieren und über ein Peering soll auch eine Sicherungsschicht möglich sein.
- ESP-NOW
ESP-NOW enables a direct and low-power control of smart lights, without the need of a router. This method is power- efficient and convenient.
https://www.espressif.com/en/products/software/esp-now/overview
ESP-NOW User Guide
https://www.espressif.com/sites/default/files/documentation/esp-now_user_guide_en.pdf
#172 Hidden: ESP32 and ESP8266 point-to-point (ESP-Now): Fast and efficient.
Comparison with LoRa
https://www.youtube.com/watch?v=6NsBN42B80Q
ESP8266 Sensor läuft 17 Tage mit einer Knopfzelle und sendet Daten zu
sparkfun.com and ubidots.com
https://www.youtube.com/watch?v=IYuYTfO6iOs
- SimpleEspNowConnection
https://www.arduino.cc/reference/en/libraries/simpleespnowconnection/
ESP-Now Gateways
Der schnelle Verbindungsaufbau und damit niedrige Energiebedarf wird gerne genommen. Wenn hier aber nicht nur mehrere ESP-Geräte miteinander kommunizieren lassen will, sondern auch eine externe Datenspeicherung braucht oder steuern möchte, muss doch wieder den "Übergang" ins Internet zu einem MQTT-Server o.ä. ermöglichen. Das geht dann am besten mit einem Gateway, welches auf der einen Seite per ESP-Now mit den anderen ESP-Now-Geräten kommuniziert und die so erhaltenen Daten wieder über ein klassisches WLAN weiter sendet.
Es versteht sich dann natürlich von selbst, dass zumindest dieses Gateway nicht über Batterien betrieben werden sollte, sondern einen "richtigen" Stromanschluss hat. Aber auch hierzu gibt es schon entsprechende Projekte samt Code
- EnigmaIoT
https://GitHub.com/gmag11/EnigmaIOT - TasMesh
https://GitHub.com/arendst/Tasmota/blob/development/info/xdrv_57_tasmesh.md
Reichweite
Dann stellt sich noch die Frage, wie weit WLAN denn funktioniert. Die 2,4 GHz sind für Reichweite sicher besser als 5 GHz aber die meisten Boards haben keine externen Antennen, sondern nur kleine eingebaute Antennen. In Datenblättern wird gerne von bis zu 300m bei freier Sicht gesprochen aber auch das ist wie mit dem Treibstoffverbrauch beim Auto zu sehen. Funk ist kein Licht und wer WLAN-Richtfunk plant, weiß auch um Reflektionen und dass auch Hindernisse außerhalb der direkten Sichtverbindung, z.B. Bäume im "Funk-Kegel" einen Einfluss haben.
- Richtcharakteristik
https://de.wikipedia.org/wiki/Richtcharakteristik - Sichtverbindung
https://de.wikipedia.org/wiki/Sichtverbindung
Bei ESP-Now geht es aber eigentlich um ein Mesh bzw. viele Punkt zu Punkt-Verbindungen, bei denen die Antennen meist nicht gesondert "ausgerichtet" sind.
So kommen im Haus meist nur 10-30 Meter zustande und vielleicht kann ich noch im Garten auf 20-40m kommen aber dabei ist nie sichergestellt, dass es stabil ist. Insofern muss das Protokoll damit umgehen können, dass Pakete verloren gehen und sie sollten vielleicht eine "Packet Loss"-Messung einbauen um keine Enttäuschung zu erleben, z.B. indem man jedem Paket eine Sequenznummer mitgibt und so "Lücken" erkennen kann.
Im Freifeld sind natürlich andere Werte möglich und dazu gibt es durchaus interessante Videos
ESP32 ESP-Now Real World Range Test - Standard and Long Range Mode Investigated
https://www.youtube.com/watch?v=oz0a7Ur7nko
Mit "Long Range Mode"
Weitere Links
- ESP8266
- ESP Energiebedarf
- MicroPython
- simple calculator for estimating a (LiPo) battery's life
https://battery-life.of-things.de/battery-life-calculator.php - ESP32 + D1 Mini über ESP-Now verbinden
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/esp32-und-d1-mini-uber-esp-now-verbinden - Submit sensors by using ESP-NOW with
battery for a very long time
https://www.az-delivery.de/en/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/sensoren-durch-verwendung-von-esp-now-ueber-sehr-lange-zeit-mit-batterie-versorgen - ESP8266-ESPNOW-receive-to-MQTT.ino
https://gitlab.com/diy_bloke/esp8266-espnow-receive-to-mqtt/-/blob/master/ESP8266-ESPNOW-receive-to-MQTT.ino - ESP-Now testing
https://GitHub.com/HarringayMakerSpace/IoT/tree/master/ESP-Now - Precompiled Micropython ESPNow Images for the ESP32 and ESP8266
https://GitHub.com/glenn20/micropython-espnow-images - ESP8266: 2x Wemos D1 Pro und ESPnow
https://www.mikrocontroller.net/topic/462632 - Sensoren durch Verwendung von ESP-NOW
über sehr lange Zeit mit Batterie versorgen
https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/sensoren-durch-verwendung-von-esp-now-ueber-sehr-lange-zeit-mit-batterie-versorgen