Tag 10: Deep Sleep
Hinter dem heutigen Türchen finden Sie ein Batteriefach für drei A-Batterien (4,5 V), um das Board unabhängig von einer Steckdose betreiben zu können. Für einen sparsamen Batteriebetrieb gibt es den DeepSleep-Modus. Dieser erlaubt es dem Board, in einen Tiefschlafmodus zu wechseln und so gut wie gar keinen Strom zu verbrauchen. Nach einer gewissen Zeit weckt sich das Board selbst auf und erfüllt eine kleine Aufgabe, um kurz danach wieder schlafen zu gehen. Durch die langen Schlaf- und kurzen Wachzeiten spart dieser Modus viel Energie und kann das Board so über Monate über die Batterien versorgen. Der Aufbau von heute verwendet wieder den Lichtsensor und bekommt zusätzlich eine Drahtbrücke von Pin 23 nach GND.
Stellen Sie zunächst das Programm des heutigen Tages ein. Wenn sich nun das Board resettet, blinkt die Status-LED zwar kurz grün, erlischt dann aber wieder. Nach ca. 20 Sekunden geht das Spiel von vorne los, der Deep-Sleep-Modus ist also aktiv.
Der Flow des heutigen Tages besteht aus einem Gauge und einem Chart. Ein Chart dient dazu, mehrere Messwerte über eine Zeitperiode grafisch aufbereitet darzustellen. Heute wurden die Messwerte übrigens mit einem Range-Node umgedreht, sodass eine starke Helligkeit auch einen hohen Messwert auf dem Gauge und dem Chart liefert. Sie können nun also die Node-RED-Instanz auf einem Rechner oder Raspberry laufen lassen, während Sie das Board mit den Batterien irgendwo platzieren und dort die Helligkeit über einen ganzen Tag verteilt messen.
Hinweis: Wenn das Blinken der Status-LED alle 20 Sekunden Sie stört, beispielsweise weil Sie die Lichtverteilung in Ihrem Schlafzimmer über Nacht messen wollen, können Sie diese auch einfach auf der Konfigurationsseite deaktivieren. Um den Deep-Sleep-Modus zu verlassen, müssen Sie lediglich die Drahtbrücke an Pin 23 wieder herausnehmen und das Board resetten oder einen Deep-Sleep-Zyklus abwarten.
Bei mir funktioniert der Deep Sleep nicht. Die LED ist einfach dauerhaft an aber es wird nichts gesendet.
Hey,
meine LED ist auch dauerhaft an (laut den Kommentaren gab es auch letztes Jahr schon das Problem bei einigen),
aber ich empfange Daten.
Wird denn auch nichts auf der UI-Seite angezeigt?
Weil die Debugging Ausgabe ist standartgemäß im dem vorgegebenen Flow deaktiviert und erst wenn man sie
aktiviert kann man im Debugging die Daten mitlesen.
Stimmt, die RGB-LED lässt sich über die Config-Page unter General Settings (Status LED Enable ist aus) nur für den normalen Betrieb abschalten oder wenn der ESP32 aufwacht. Im Deep-Sleep-Mode ist die RGB-LED eine (leuchtet grün). Das halte ich schon für einen kräftigen Design-Fehler.
Somit ist diese Aussage aus der Programmbeschreibung falsch: „Hinweis: Wenn das Blinken der Status-LED alle 20 Sekunden Sie stört, beispielsweise weil Sie die Lichtverteilung in Ihrem Schlafzimmer über Nacht messen wollen, können Sie diese auch einfach auf der Konfigurationsseite deaktivieren.“ (s.o.).
FRAGE AN DEN AUTOR:
Es stellt sich nur die Frage, ob in der HW oder in der SW der Fehler zu suchen ist:
* Wenn vergessen wurde, die LED vor der Aktivierung des Deep-Sleep-Mode abzuschalten, ist es ein SW-Bug und verschmerzbar.
* Wenn aber generell im Deep-Sleep-Mode auf diesem Board der GPIO2 (Anschluss der grünen LED der RGB) auf High-Level ist, dann ist das ein HW-Design-Fehler, und das NodeESP-Board ist für den Deep-Sleep-Mode ungeeignet. Das wärde sehr schade, weil immerhin hier auf die unsinnige Power-LED verzichtet wurde, die andere ESP32-Boards „ziert“.
Insgesamt gesehen heute ein sehr schönes Experiment. Mann konnte den Deep-Sleep-Mode mal kennenlernen, und auch seine Tücken. Lieben Dank an den Autor.
PS: Ich hätte mir etwas mehr an Beschreibung gewünscht, z.B. dass wenn das Board ohne Deep-Sleep-Mode-Funktionalität läuft (ich meine damit: ohne die Drahtbrücke), dass dann gar keine Daten per UDP gesendet werden.
Hallo,
wenn die Drahtbrücke nicht gesetzt ist wird statt dem ausgewählten Programm das „Standardprogramm“ dflt_init gestartet, welches nur die fundamentalen Funktionen wie Webserver etc. ausführt.
Was die LED angeht: Tatsächlich ist die RGB LED gegen VCC geschaltet was bedeutet der Pin muss High sein damit die LED nicht leuchtet. Wenn das Board in den Deep Sleep Modus geht floatet der Port allerdings weswegen die LED leicht grün leuchtet. Ich habe allerdings eine Lösung gefunden den Pinstatus auch während des Deep Sleep zu halten. Für Interessierte:
gpio_hold_en(GPIO_NUM_2);
gpio_deep_sleep_hold_en();
In dem nächsten zukünftigen Update wird die Änderung dann vorhanden sein.
Hey,
das ist schön zu hören.
Hätte um ehrlich zu sein nicht gedacht, dass sich der Autor hier noch mal
meldet.
Jetzt fehlt eigentlich nur noch, dass Sie die Quellcodes des ESP für die
jeweiligen Tage bereitstellen (oder mir erklären wo ich diese finden kann)
und ich wäre vollkommen zufrieden ;)
Hallo fk,
vielen Dank für deine Antworten.
Ja, das erklärt’s. Habe wieder was dazugelernt. :)
Es scheint eine breite Streuung zwischen den Boards bezüglich des Floatens zu geben: Bei meinem Board ist kaum ein Unterschied zum aktiven Einschalten der grünen LED und dem Leuchten im Deep-Sleep-Mode zu sein. Sie ist wirklich sehr hell (sicher nicht „leicht grün“).
Was ich mich mit Blick in den Schaltplan (https://iot.fkainka.de/nodeesp-technical-specs) nun Frage: Es sind alle drei LEDs der RGB-LED gleich (an VCC) angeschlossen. Dann müssten doch auch GPIO0 und GPIO4 in gleicher Weise betroffen sein, oder nicht? Sollten dann nicht auch besser gpio_hold_en(GPIO_NUM_0) und gpio_hold_en(GPIO_NUM_4) ebenfalls gleich in die SW eingefügt werden? Vielleicht gibt es ja auch NodeESP-Boards, in denen die rote und/oder blaue LED mehr oder weniger leuchtet.
Bin gespannt auf das nächste Update ;)
Ich bin wirklich sehr, sehr zufrieden mit dem Kalender. Ach wenn mal was „holpert“: dabei kann man viel lernen, mehr als wenn immer alles glatt geht.
Liebe Grüße
Äd
Hallo,
Im Node-Red wird bei Deubugging zwar angezeigt dass etwas empfangen wird, aber es wird nichts im Dashboard angezeigt.
Hey,
was zeigt es denn bei Debugging an, bzw. was wird denn emfangen?
Weil wenn das Board aus irgend einem Grund einen falschen String sendet,
also einen der nicht „cmd“:“get_adc_state“ enthält schmeißt der Switch
den String sozusagen einfach ins Debugging raus und leitet die Werte
nicht an die UI-nodes weiter.
im node-red fenster bei debug messages beomm ich nur noch diese meldung
{19.12.2018, 22:51:22node: c6ce69c6.cf8738
msg : string[13]
„error: EACCES“}
im packetsender sind die angaben ok. da bin ich nun etwas ratlos.
kann jemand helfen ?
danke mfg
hey, nich alle auf einmal antworten. nur weil man kein profi ist und dennoch spaß haben will muss man ja nich gleich als dau abgestempelt werden und ein hinweis wäre schon ok gewesen.
manch einer hat eben nicht die zeit und Möglichkeit jeden tag online nach lösungen zu suchen. oder liegts daran, das ich nur klein schreibe und in meiner frage ein „k“ vergessen habe ?
Hallo!
Bei mir geht seit diesem Experiment nichts mehr…
Ich kann nicht mehr auf die Boardseite zugreifen, sodass ich in die settings komme..
Was soll ich tun?
Hallo. Hast du die Drahtbrücke an Pin23 wieder herausgezogen?
Hallo,
Day10 funktioniert! ABER, bin verunsichert:
beim Day10-Flow wird keine Debug-msg im Node-RED angezeigt (obwohl mit PacketSender die payloads gelogt werden).
Tipps?
@all,
schaut mal in Tag 9, da sind wie ich denke Hinweise und Flows dem Tag 10 betreffed drin.
Eigentlich gehören die hier rein, aber Tag 9 und 10 gehören irgendwie zusammen und ich denke ich hab mich auch etwas im Tag vertan.
Im Dashboard könnte man noch den Farbkreis abbilden, somit wären alle drei Element, Chart, Gauge und Farbkreis vorhanden.
Hinke etwas hinterher… :-)
Der Farbkreis als 3. Element im Dashboard geht nicht, weil der NodeESP im Programm von Tag 10 den HSV-Wert nicht ausgibt (get_rgb_hsv).
Bei mir wird das Chart korrekt erstellt. Soweit scheint also alles wie gewünscht zu funktionieren. Allerdings ist die LED bei mir dauerhaft an. Durchgängiges Leuchten und dann kurzes Blinken und dann wieder zurück zum durchgängigen Leuchten. Ich dachte, dass sie eigentlich zwischendrin komplett ausgehen soll. Jemand ne Idee, woran das liegen könnte? Das Zusatzkabel ist korrekt eingesteckt.
Hallo,
bei mir das gleiche: Board läuft über Batterien, Brücke zwischen Pin23 und GND ist drin, LED leuchtet dauerhaft grün und blinkt alle 20 Sekunden, Board ist mit gesteckter Brücke nicht über den Browser erreichbar.
So ist der Stromverbrauch nicht wirklich gering.
Hat jemand eine Idee, woran es liegen kann?
Ist bei mir auch so. Leider äußerst sich der Autor fk nicht dazu. Ansonsten funktioniert es so wie beschrieben. Alle 20 Sekunden geht der NodeESP Online und wird der Wert gesendet. Der NodeESP ist kurz pingbar. Danach legt er sich wieder schlafen (bis auf die grüne LED). Ein entfernen der Steckbrücke führt zum dauerhaften Aufwachen und die Website des NodeESP ist wieder erreichbar.
Funktioniert das nur mit Batterien oder kann ich wie gehabt mit USB arbeiten? Bei mir misst nix nur die LED blinkt gelegentlich
Du kannst auch weiterhin mit USB arbeiten. Das gelegentliche Blinken zeigt, dass das Board aufgewacht ist und eine WLAN Verbindung herstellt um die Messdaten zu senden. Werden die Daten vielleicht nicht richtig empfangen?
Ich kann leider nicht auf die Boardsettings zugreifen, um das Programm des heutigen Tages am Board einzustellen!
Versuch es wie ich, 4-4 Beiträge weiter unten.
Ich meinte natürlich 3-4 Beiträge.
Entweder das oder dein WLAN funktioniert nicht, ist auch etwas spärlich deine Aussage!
Sarkasmus ein
Standard: Geht nicht!
Sarkasmus aus
nicht das ‚Das Mord‘ …
Das Board
Ich habe auch keine Verbindung zum Board und kann die Board-IP nicht aufrufen.
Batterie hat bei mir auch nicht funktioniert, da habe ich eine Power Bank genommen.
Jetzt werden Daten im UI angezeigt.
Hallo,
seit dem ich das Programm im NodeESP habe, es funktioniert, kann ich nicht mehr auf das Board zugreifen.
Ein http://nodeesp.local/ geht nicht mehr und auch die IP Adresse geht nicht.
Das Mord sendet aber alle 20 Sekunden seine Daten. Node-Red und auch der Chart läuft.
Hat das gleiche Phenomen jemand oder kann mir helfen?
Werde am Ende diesen Tages den 10 Sekunden Boot Button drücken, hoffe dann steht die Config wieder auf Default.
Bei schwächer werdender Batterie leuchte die grüne LED noch, aber es erfolgt keine Übertragung mehr. ES gibt auch sonst keinen Hinweis.
Habe 10 Sekunden den Boot Button gedrückt, USB (5V) eingestöpselt, die BRÜCKE entfernt und der Zugriff ging wieder.
Welches Programm allerdings noch im Speicher stand weiß ich nicht.
Ich habe Tag 9 genommen und die Range-Node aus dem Tag 10 eingebunden.
@Taraxacum
Powerbank, dann hast du wieder den USB Anschluß genommen!
Hallo Fabian,
mit der Ausage tu ich mich schwer.
Zitat:
Um den Deep-Sleep-Modus zu verlassen, müssen Sie lediglich die Drahtbrücke an Pin 23 wieder herausnehmen und das Board resetten oder einen Deep-Sleep-Zyklus abwarten.
Brücke ok., aber … oder einen Deep-Sleep-Zyklus abwarten.
Aber was dann?
Danke für die Antwort.
Hallo,
nachdem die Drahtbrücke entfernt wurde sollte das Board (nach einem Reset oder nach gewisser Zeit) in den Standardmodus übergehen und die Webseite wieder erreichbar sein.
Im Deep Sleep Modus ist die Webseite nicht erreichbar. Das Board ist nämlich die meiste Zeit so gut wie aus. Deswegen ist der Modus so stromsparend. Nur alle X Sekunden „wacht“ es auf um ganz kurz Daten zu messen und zu senden.
Da in diesem Modus das Board unerreichbar ist und dies für Verwirrung sorgen kann, muss man explizit die Verbindung zu Pin 23 stecken. Wird die Verbindung getrennt und das Board wacht auf, geht es sofort in den Standardmodus über. Wenn man nicht bis zum nächsten erwachen des Boards warten möchte, kann man auch die Reset Taste drücken.
Ich hoffe ich habe den Vorgang damit etwas deutlicher gemacht.
Jetzt ist Alles klar, danke.
Guten Morgen,
ich habe den heutigen Versuchsaufbau eingerichtet und alles funktioniert soweit wie beschrieben. Allerdings erlischt die Status-LED des Boards in der Schlafphase nicht komplett, sondern wird nur dunkel. Lediglich unmittelbar vor dem Aufwachen erlischt sie kurz. Ist das normal?
Viele Grüße und eine schöne Woche!
Kikovius
Hallo,
ja bei mir ist es ebenso.
Leider ist das Zeitintervall im Programm des heutigen Tages integriert (NodeESP Board).
Ansonsten ein schönes Programm.
Der JST Stecker an der Batteriebox ist 2 oder 2,5mm?
Alles klar, danke!
Es sind 2Pin 2.0 PH 2.0mm.
Hallo,
hier sieht man den Fehler sehr gut.
ROT und SCHWARZ vertauscht !!!
Mich würde mal interessieren, wie stark die die Auswirkungen des LED-Glimmens auf die Stromaufnahme hat, und damit auf die Batterielebensdauer.
Leider kann man sich da nicht ohne weiteres mit einem Multimeter dazwischenschalten. Ich glaub ich hab mir bei dem Versuch, da was reinzubasteln auch eine Sicherung im Multimeter durchgebrannt. Mal schauen…
miss doch den Strom am Batteriekabel.