ESP32 deepsleep --> 1000mha Akku (3.7 Volt) schon nach einem Tag leer?

Hi,

nur mal eine kurze & knappe Frage:

Reicht das hier, um mein ESP32 Wemos D1 Mini Entwicklerboard in dne Stromsparmodus zu setzen...

esp_deep_sleep_start();

Oder?

Ich wunder mich nur grad, weil ich einen ESP32 an einen Akku gehängt habe und dieser trotz deepsleep schon nach 1 Tag leer war.

Ansonsten würde ich einfach mal vermuten, dass der Akku defekt ist (memory effect), denn aufgeladen hatte ich ihn.

Grüßle

Der deep Sleep gilt ja nur für den ESP32 Chip. Auf den Entwicklerboards ist aber noch eine ganze Reihe zusätzlicher Hardware, die sich durch den DeepSleep nicht beeindrucken lässt ( z.B. der TTL-USB Wandler). Ein Entwicklerboard ist deshalb für solche stromspar-Anwendungen eher nicht geegnet.

1 Like

Hi,

gibts irgendne Möglichkeit, auch auf einem Entwicklerboard den ganzen Kram abzuschalten (z.B: mit WiFi.Mode(OFF) usw.)? Ich hab mich noch nie an ein "Nicht"-Entwicklerboard rangetraut :slight_smile:

Oder anders gefragt: Gibts auch Entwicklerboards, die deepsleep können, wie ich es will?

Schau mal hier. https://youtu.be/ooQUDcfs1iM?si
Das Thema ist gut erklärt.

Ansonsten sollen die Boards von Heltec sehr sparsam sein.

1 Like

du kanst versuchen die 3.3v eingang zu nutzen, aber dafur brauchts du auch nur 3.3v zo liefern.

Dann sind es eigentlich keine Entwicklerboards mehr. Wenn man richtig sparen will, nimmt man einen "nackten" MC in Minimalbeschaltung.

Gruß Tommy

2 Likes

Hallo,
Du solltest mal die Stromaufnahme im DeepSleep messen. Für den ESP32 kann ich Dir keine Angaben machen. Ich nutze das bei einem ESP8266 D1 Mini der hat im Deepsleep mit einem angeschlossenen BME280 0,4mA Stromaufnahme.

Der Link ist schon mal echt Gold wert!

Aber so nen nachten MC selber irgendwo auflöten inkl. Minimalbeschaltung ist glaub ich auch tricky, oder? Da braucht man ein ganz feines Händchen und feine "Äugchen", richtig?

Wüsste ich jetzt nicht, aber schonmal über soetwas Tpl5110 / 5111 nachgedacht?

Meine ESP32 schicke i.d.R. so in Bettchen:

#define LED_BUILTIN 33
#define uS_TO_S_FACTOR 1000000  /* Conversion factor for micro seconds to seconds */
int hourToKeepAwake = 7;
int hourToSleep = 21;

void SentToDeepSleep() {
  uint16_t secondsToSleep = GetSecondsToSleep();
  esp_sleep_enable_timer_wakeup((uint64_t)secondsToSleep * uS_TO_S_FACTOR);

  if (WiFiConnected) 
    WiFi.disconnect();
  
  SwitchOnBoardLed(LOW);
  delay(1000);
  esp_deep_sleep_start();
}
void SwitchOnBoardLed(bool state) {
  digitalWrite(LED_BUILTIN, state ? LOW : HIGH);
}
uint16_t GetSecondsToSleep(){
  uint16_t sec = 60;
  if (TimeInitialized) {
    struct tm timeinfo;
    getLocalTime(&timeinfo);
    if (timeinfo.tm_hour <= hourToKeepAwake || timeinfo.tm_hour >= hourToSleep) {
      if (timeinfo.tm_hour < hourToKeepAwake)
        sec = (((hourToKeepAwake - timeinfo.tm_hour) * 60) - timeinfo.tm_min) * 60;
      else
        sec = ((((24 - timeinfo.tm_hour) + hourToKeepAwake) * 60) - timeinfo.tm_min) * 60;      
    }
  }
  return sec;
}

An meinem eInk-Display ist ein integrierter ESP32 verbaut und wacht 2x täglich auf. Dann werden Daten aus den Netz gezogen und auf dem Display aktualisiert. Mit einem 18650 Akku komme ich etwas über ein halbes Jahr.
Gibt also auch stromsparende Fertiglösungen.

1 Like

Klingt auch gut. Aber da müsst ich mich informieren, ob mein Vorhaben (Aufwecken mittels HC12-Funkimpuls) dann noch möglich ist... ich geh mal davon aus, man kann den dann nur noch mit der Taste an dem Modul aufwecken? Aber wie gesagt muss ich mich da erstmal informieren.

Kommt auf dein Equipment drauf an. Mit Heißluft und ein wenig Übung/Erfahrung ist eigentlich alles möglich.
Ich benutze die Entwicklerboards eigentlich nur noch zum testen, bei "fertigen" Projekten erstelle ich mir dann eigene PCBs mit "nackten" Microcontrollern. Und bisher habe ich noch jeden Controller verlöten können.

1 Like

Wie das mit dem HC läuft, da bin ich raus. Aber du kannst das teil durch setzen von Widerständen so programmieren, dass du deine Elektronik in einem Zeitfenster von 100ms - 2Stunden aufwecken bzw schlafen legen kannst. Wenn deine Elektronik mal wach ist, werckelt sie solange vor sich hin bis du dem board mithilfe eines digitalpins an deinem microkontroller deiner wahl dem board mitteilst, das fertig und bitte wieder schlafen. Über den button könntest du lediglich manuell das ganze starten.

Lithiumakkus haben keinen Memoryeffekt.

Rechne mal anch 1000mAh in 24h sind ca 42mA. Das ist kein so hoher Stromverbrauch.

Grüße Uwe

Ja schon, aber ich hatte eben (bis heute) gedacht, dass auch die Entwicklerboards des ESP32 im DeepSleep nur 10 µA oder bissl mehr verbrauchen (hab ich mal irgenwo gelesen).
Und dann wäre die Laufzeit ja um ein Vielfaches größer.

Ich gehe davon aus, dass in meinem Projekt der ESP ca. 4 bis 5 mal pro Tag kurz aufgeweckt wird, da dann einen kurzen Impuls (eine Umdrehung an einem Servo) auslöst und wieder einschläft.
Und am Ende soll das mit einem Akku minimum 6 Monate lang durchhalten.
Das sollte ja dann - wenn ich auf einen nackten ESP umsteige - machbar sein.

Da würde ich doch fast behaupten, dass dein esp in dem ganzen noch am wenigsten Strom von allen benötigt.

Spätesten jetzt solltest du eine Energie Bilanz machen damit du nicht in eine Sackgasse gerätst.

Also Strom messen für die Schlafphase .
Strom messen in der aktiven Phase jeweils mit den Zeiten und der Spannung multiplizieren damit kommst du dann z.B auf Wh/Tag. Dann kannst du die Lebenszeit des Akus ausrechnen
Ah X Akkuspannung = Wh

1 Like

Yep, mach ich auf jeden Fall, Danke für eure Tipps!

Oder man nimmt dieses Entwickler-Board hier

Das ist wirklich für deepsleep Minimalstromverbrauch optimiert.
Hier der praktische Messversuch bei Versorgung über den 5V-pin

12,5 Mikroampere

Gibt es auch mit Lipo-Lader

Versandkosten nach Deutschland sind erstaunlich günstig.

vgs

1 Like

Die Messung überzeugt.
Kannst Du bitte noch den Code für diesen Zustand beisteuern und wie Du ihn aufwächst?

Gruß Tommy