Day 10: Deep Sleep

There is a battery compartment for three A batteries (4.5 V) hidden behind the door today that will     10. Tag power the board independently of a power outlet. For economical battery operation, we have the deepsleep mode. This mode allows the board to go into a deep sleep where it uses almost no power at all. After a certain time, the board wakes up, performs a modest task and goes back to sleep shortly after. In this mode a lot of energy is saved due to the long sleep and short wake times and ultimately the batteries will supply power to the board for months. The setup we will use today includes again the light sensor and it gets a wire jumper that connects pin 23 and GND.

Die Drahtbrücke an Pin 23 beachten

Note the wire jumper at pin 23

Select the program of today. While the board now resets, the status LED will flash briefly green and turns off again. After approximately 20 seconds, the game starts all over, thus the deep-sleep mode is active.

Der heutige Flow

Todays Flow

Today’s flow consists of a gauge and a chart. A chart is used to graphically display several measured values  over a certain time. By the way, today we will reverse the readings by means of a range node, so that more light delivers a higher gauge and chart reading. You can now run the Node-RED instance on a machine or Raspberry while placing the board powered by batteries anywhere where it can measure the light over the entire day.

Das Gauge und das Chart-Element auf der Dashboard-Seite

Gauge and chart elements on the Dashboard page

Note: Maybe you find it disturbing that the status LED flashes every 20 seconds, for example, if you want to measure the light distribution in your bedroom overnight. You can simply disable the function on the configuration page. And all you have to do to exit deep-sleep mode, remove the wire jumper from pin 23 and reset the board or wait for a deep-sleep cycle.

37 Comments

  1. julius

    Bei mir funktioniert der Deep Sleep nicht. Die LED ist einfach dauerhaft an aber es wird nichts gesendet.

    Reply
    1. BloßEinStein

      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.

      Reply
      1. Äd Franzis

        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.

        Reply
        1. fk (Post author)

          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.

          Reply
          1. BloßEinStein

            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 ;)

          2. Äd Franzis

            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

  2. BestRazer

    Hallo,
    Im Node-Red wird bei Deubugging zwar angezeigt dass etwas empfangen wird, aber es wird nichts im Dashboard angezeigt.

    Reply
    1. BloßEinStein

      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.

      Reply
  3. rsoldie

    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

    Reply
    1. rsoldie

      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 ?

      Reply
  4. D

    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?

    Reply
    1. fk (Post author)

      Hallo. Hast du die Drahtbrücke an Pin23 wieder herausgezogen?

      Reply
  5. EspBastler

    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?

    Reply
  6. paulaner

    @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.

    Reply
    1. Bernd

      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).

      Reply
  7. Benzo

    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.

    Reply
    1. Denis

      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?

      Reply
      1. Bernd

        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.

        Reply
  8. Maik

    Funktioniert das nur mit Batterien oder kann ich wie gehabt mit USB arbeiten? Bei mir misst nix nur die LED blinkt gelegentlich

    Reply
    1. fk (Post author)

      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?

      Reply
  9. D

    Ich kann leider nicht auf die Boardsettings zugreifen, um das Programm des heutigen Tages am Board einzustellen!

    Reply
    1. paulaner

      Versuch es wie ich, 4-4 Beiträge weiter unten.

      Reply
    2. paulaner

      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

      Reply
  10. paulaner

    nicht das 'Das Mord' …

    Das Board

    Reply
    1. Taraxacum

      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.

      Reply
  11. paulaner

    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.

    Reply
    1. paulaner

      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!

      Reply
  12. paulaner

    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.

    Reply
    1. fk (Post author)

      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.

      Reply
      1. paulaner

        Jetzt ist Alles klar, danke.

        Reply
  13. Kikovius

    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

    Reply
    1. paulaner

      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?

      Reply
      1. Kikovius

        Alles klar, danke!

        Reply
      2. paulaner

        Es sind 2Pin 2.0 PH 2.0mm.

        Reply
        1. paulaner

          Hallo,

          hier sieht man den Fehler sehr gut.
          ROT und SCHWARZ vertauscht !!!

          Reply
      3. Andreas

        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…

        Reply
        1. paulaner

          miss doch den Strom am Batteriekabel.

          Reply

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.