Hey Leute, ich würde gerne einen ESP2866 an einigen (2 bis max 4) 18650 Akkus im Dauerbetrieb betreiben. Der Mikrocontroller soll eigentlich nur eins machen: Wenn ein Kommando kommt, soll ein Relais geschaltet werden, wahrscheinlich über einen Treiber. Wahrscheinlich wird die Ansteuerung ca. 2-3 Mal die Woche passieren. Der ESP soll aber innerhalb von max. 5 Sekunden nach dem Absetzen des Befehles schalten. Ich würde zur Befehlsgabe gerne mit MQTT arbeiten und nicht selbst etwas schreiben. Jetzt wäre die Frage an euch, in wie weit man den ESP2866 zum Strom sparen bekommt, damit er die ganze Zeit im WLAN hängt und sich nicht am Broker ausbucht und zeitig auf Befehle reagiert. Oder gibt es einen anderen Chip, der da besser geeignet wäre? Ich habe irgendwie das Gefühl, dass viele hier Zigbee verwenden. Dann bräuchte ich noch eine Zigbee2WiFi Lösung.
Puh, Wifi und stromsparen ist in der Tat eine Sackgasse wenn auch noch Reaktionszeit gefragt ist. MQTT ist aber an sich perfekt für stromsparende Geräte und wird im bereich IoT auch häufiger eingesetzt. Kannst du nicht dein gesammtes Funksystem auf was anderes als WiFi umbauen? EDIT: Alternative Lösung wäre eine Art Wifi 2 low-power-Bluetooth an festem Strom. Eventuell einfacher einzurichten als Zigbee.
:
Bearbeitet durch User
Das Problem ist, dass ich vor Ort keinen festen Stromanschluss habe und auch nicht wirklich mit anderen Stromquellen wie Photovoltaik arbeiten kann. Ich habe dort allerdings ein Wifi Netz, sonnst wäre meine Alternative ein RPi mit LTE-Stick an zig Powerbanks. Der ESP2866 wäre aber quasi die einfachste Möglichkeit für das Projekt.
Also ich kenne MQTT nicht und wuerde es auch nicht einsetzen weil es mir generell etwas komplex erscheint. Allerdings ist das du willst kein grosses Problem. Du sorgst dafuer das dein ESP8266 immer im DeepSleep Modus ist und nur alle 5s aufwacht. Dann sendet er eine Nachricht an deinen Server und bekommt innerhalb von kurzer Zeit eine Antwort die ihm zum handeln veranlasst. Der Server koennte z.B ein immer laufender Raspi sein den man ja sowieso immer irgendwo im Netz hat. Wichtig ist nur das dein ESP8266 nicht immer bereits sein muss um auf einen Befehl zu warten! Olaf
Olaf schrieb: > Du sorgst dafuer das dein ESP8266 immer im DeepSleep > Modus ist und nur alle 5s aufwacht. 5s helfen da nicht viel. Nach dem Aufwachen aus dem Tiefschlaf vergeht wenigstens 1s bis der eine Ethernetverbindung über WLAN aufgebaut und Daten ausgetauscht hat. Um wirklich lange Betriebszeiten am Akku zu kriegen wirst du wohl in den Minutenbereich müssen.
Hugo schrieb: > Das Problem ist, dass ich vor Ort keinen festen Stromanschluss habe und > auch nicht wirklich mit anderen Stromquellen wie Photovoltaik arbeiten > kann. Ich habe dort allerdings ein Wifi Netz, sonnst wäre meine > Alternative ein RPi mit LTE-Stick an zig Powerbanks. > > Der ESP2866 wäre aber quasi die einfachste Möglichkeit für das Projekt. Nimm einfach einen kleinen Atmega mit einem SIM7020E oder BC95-B20 LTE Modul. Der ESP8266 ist Unsinn, der RasPi mit Stick ebenfalls. Alternative wären noch BLE und ZigBee, falls Du die Möglichkeit hast, die Gegenseite aufzubauen.
Hallo, abgesehen von den Hinweisen zu Stromverbruach und WLAN: Der ESP8266 braucht ca. 400ms bis er sich mit WLAN und MQTT-Broker verbunden hat, die Message geholt und bearbeitet hat. MQTT-Message muß als Retained Messages geschickt werden damit der Client diese beim verbinden sofort vom Broker bekommt. ESP8266 muß eine feste IP haben, kein DHCP. Das Relais soll nur kurz anziehen oder ein- und irgendwann wieder ausgeschaltet werden? Wenn es an bleiben soll also ein bi-stabiles Relais nehmen, damit es da keinen Dauerstromverbrauch gibt. Normalerweise ist es denen egal, wie oft sie auf Ein (oder Aus) gesetzt werden, wenn sie schon Ein (oder Aus) sind, der ESP bekommt die Retained Messages jedesmal beim Anmelden am Broker bis der eine andere bekommen hat. Stromverbrauch: der ESP will beim verbinden usw. irgendwas zwischen 100 und 150mA im Durchschnitt (mit Spitzen bis 350mA). Der Sleeptimer ist relativ ungenau, bei z.B. alle 4s wecken könntest Du also als kompletten Durchschnitt mit ca. 120/4 30mAs rechnen, also rund 120mAh/h Akkukapazität. Ein 3000mAh Akku könnte also einen Tag überstehen wenn ich mich hier jetzt nicht irgendwo völlig verrechnet habe... Erster Ansatz wäre also die Frage, ob man die zulässige Reaktionszeit verlängern könnte und ob Deine Photovoltaik es schafft, den Akku voll zu halten. Als Akku würde ich ohnehin LiFePO4 nehmen, erspart den Spannungsregler für den ESP. Relais hängt natürlich davon ab, welches Relais (Schaltleistung) da überhaupt in Frage kommt. Gruß aus Berlin Michael
Michael U. schrieb: > Erster Ansatz wäre also die Frage, ob man die zulässige Reaktionszeit > verlängern könnte und ob Deine Photovoltaik es schafft, den Akku voll zu > halten. Was an "und auch nicht wirklich mit anderen Stromquellen wie Photovoltaik" ist Dir unklar?
Michael U. schrieb: > Stromverbrauch: der ESP will beim verbinden usw. irgendwas zwischen 100 > und 150mA im Durchschnitt (mit Spitzen bis 350mA). Das ist das Problem: 4sek Intervall. Da fährst du besser ihn dauerhaft laufen zu lassen, weil er im Idle diesen hohen Einschalt/Verbindungsstrom nicht hat.
Ich denke auch, dass du den ESP ständig durch laufen lassen solltest. Deep Sleep lohnt sich hier nicht und die anderen Sleep Modi sind problematisch. Bei mir zuhause braucht der ESP8266 meistens 3 Sekunden, bis er im WLAN eingebucht ist. Sicher kann man das durch Vergabe statischer IP Adressen verkürzen und es hängt auch sehr stark von der Umgebung (AP und andere störende Funknetze) ab. Für deinen Anwendungsfall ist WLAN die falsche Technologie.
Michael U. schrieb: > Der Sleeptimer ist relativ ungenau Hallo Michael, sicher weißt du, dass ich Informationen zum ESP8266 sammle. Mit dem Sleeptimer habe ich nur wenig gearbeitet. Ich würde aber trotzdem gerne auf meiner Homepage auf diese Ungenauigkeit hinweisen. Kannst du das ein bisschen mehr konkretisieren? Danke
Hallo, im Datenblatt habe ich nur einen Satz gefunden: When in sleep mode, only the calibrated real-time clock and watchdog remains active. The realtime clock can be programmed to wake up the ESP8266 at any required interval. Kein Hinweis, was "calibrated real-time clock" ist usw. Da laut Datenbaltt im Seep Sleep das Clocksystem abgeschaltet wird, dürfte es also ein interner RC-Oszillator sein, der mit der Quarzfrequenz korrigiert wird. Das passiert also bei mir wohl dann nur alle 5 Minuten wenn der ESP aktiv ist. Für meinen Einsatz hier (Sensor auf dem Balkon) ist das uninteressant, ich habe es auch nicht direkt geloggt... Er kann ja ohne äußere Syncronisation nur eine momentane Frequenzabweichung erkennen und den RC-Oszillator korrigieren, einen bestehenden Fehler zur Realzeit kann er ja nicht erkennen. Zur Kurzzeitstabilität und Abweichung schweigt sich ja das Datenblatt aus. Ich habe gerade mal den mQTT.fx angeworfen und werden mal schauen, wie es sich über ein paar Stunden bemerkbar macht. Ist nur eine Tendenz weil ja connect-Zeiten usw. da reinspielen. 11:51:07 11:55:59 12:00:50 12:05:38 12:10:28 12:15:17 12:20:10 12:25:00 12:29:51 12:34:41 12:39:31 deutet zumindest darauf hin, das er hier vorgeht. Nachtrag: gerade nochmal raufgeschaut: 13:28:54 geht also vor. Gruß aus Berlin Michael
:
Bearbeitet durch User
Stefanus F. schrieb: > Ich denke auch, dass du den ESP ständig durch laufen lassen solltest. > Deep Sleep lohnt sich hier nicht und die anderen Sleep Modi sind > problematisch. Also ich arbeite eigentlich immer mit Modem Sleep ohne Probleme und das spart schon allerhand. Hab ein Modul mit Spannungsregler und kleinem OLED das läuft an einer 18650 ca. 2.5 Tage. Wenn 1x laden pro Woche kein Problem ist dann geht das mit 3 Zellen noch. Aber für'n Dauerbetrieb wär mir das auch nichts. Sascha
Wie und wie oft soll eigentlich der Akku geladen werden? Eine Autobatterie oder ein grosser Modellbauakku hat schon einiges an Kapazität, vielleicht kommst du so auf einen Monat.
Wenn der esp nur auf Daten vom AP warte verbraucht er:
1 | Power save mode DTIM 1 1.2 mA |
2 | Power save mode DTIM 3 0.86 mA |
Oder hab ich da was falsch verstanden?
Stefanus F. schrieb: > Doku dazu: > https://www.espressif.com/sites/default/files/9b-esp8266-low_power_solutions_en_0.pdf Ah, Danke! Bleib die Frage warum das Teil nicht für kurze Intervalle (10ms) tief schlafen kann..
Bei einem ordentlichen WLAN-Router kann man das Beacon-Intervall und die DTIM-Periode konfigurieren. Mit beiden bestimmt der ESP8266 die Sleep-Zeit, dadurch läßt sich also auch der Stromverbrauch mit steuern, indem man die Werte erhöht.
Hallo, irgendwo am Anfang war eine Diskussion im Espressif-Forum über Deep Sleep, finde ich aber nicht mehr. Es ging ltztlich dahin, daß das verhalten im Deep Sleep eine Art Notlösung ist, weil durch einen Designfehler ein internes Wecken vom RTC nicht funktionierte und die GPIO16-Resetlösung dann übrigblieb. Kurze Zeiten im Deep Sleep sind dann aber ohnehin sinnlos, weil er die schon zum Starten braucht und die Anwendung sowieso alles wieder initialisieren muß und sich auch darum kümmern muß, wie sie z.B. Variablenwerte über den Reset rettet. Ich habe hier außer dem einen Sensor im Deep Sleep keine Anwendung z.b. für Modem Sleep usw. Bei netzbetriebenen ESPs würde ich dann wohl 1€ pro Jahr Energiekosten pro Stück sparen. Allerdings müßte ich dann den Netzteilwirkungsgrad noch einkalkulieren, der ist oft geringer bei kleinerer Ausgangslast, kann die Einsparung also durchaus wieder auffressen.. Ich habe nochmal nach meinen Sensorzeiten geschaut: der ist seit gestern Mittag von rund 00:05:00/00:10:00 auf rund 00:08:00/00:13:00 gewandert, ich müßte mal komplett loggen, so weiß ich nicht, ob es +3 oder -2 Minuten sind... Ca. 2 Minuten / Tag passt aber zu dem, was in Foren mal so erwähnt wurde. Stört hier in der konkreten Anwendung sowieso nicht, werde ich also kaum weiter verfolgen. Ich habe gerade nochmal über das Diagramm geschaut: Der Sensor meldet alle 5 Minuten. Ist ESP8266-12, BME280 und BH1750 verbaut. Versorgung ist eine China-LiFePO4 mit (angeblich?) 600mAh. Laufzeit ist rund 3 Wochen zwischen den Akkuwechseln. LiFePO4 als 18650 mit 1500mAh liegen hier rum, da passt aber kein Battriehalter in das Sensor-Gehäuse, muß ich erst Kontaktflächen reinbasteln... Gruß aus Berlin Michael
Stromverstärker schrieb: > Bleib die Frage warum das Teil nicht für kurze Intervalle (10ms) tief > schlafen kann.. Es wird empfohlen, direkt nach dem Aufruf von ESP.deepSleep(µs) direkt einen delay(100) einzufügen, damit er zuverlässig einschläft. Ich vermute da einen Zusammenhang. Vielleicht kann der Chip nicht so schnell in den Sleep Modus wechseln.
Hallo, Stefanus F. schrieb: > Es wird empfohlen, direkt nach dem Aufruf von ESP.deepSleep(µs) direkt > einen delay(100) einzufügen, damit er zuverlässig einschläft. > > Ich vermute da einen Zusammenhang. Vielleicht kann der Chip nicht so > schnell in den Sleep Modus wechseln. Irgendwas macht der ESP noch bis er schlafen geht. Das das auch Interruptgesteuerte Sachen sein können, soll so wohl nur verhindert werden, daß er nach ESP.deepSleep(µs) im eigenen Programm noch etwas weiterläuft und ungewolltes Chaos anrichtet. Man würde ja vermuten, daß er nach dem Ausführen von ESP.deepSleep(µs) eben sofort mit der Progarmmabarbeitung aufhört, ist aber wohl nicht unbedingt so. Gruß aus Berlin Michael
mit normalem "deepsleep" fährt erden ip-stack noch korrekt herunter, mit "deepsleep force" macht er gleich dicht. Ein kurzes delay danach ist aber irgendwie immer notwendig, da die cpu im "leerlauf" sein muss um in deepsleep zu wechseln
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.