ESP8266 startet Code nach Deepsleep nicht mehr

OP #7814531
Lesenswert?

Hallo zusammen,

ich baue mir aktuell einen Temperatursensor, was eigentlich ein relativ einfaches Projekt sein sollte. Dachte ich zumindest :^) - Mein ESP8266 (NodeMCU) geht in den Deepsleep, wacht auch wieder auf (zumindest zeigt die Konsole bzw. der Bootloader das an), aber der Code wird nicht ausgeführt. Ich habe lediglich eine LED an Pin D8, einen DS18B20 an Pin D1 und den Pin D0 mit RST verbunden.

Mein Code sieht wie folgt aus (Beispielcode, ohne die Temperaturmessung etc...):

1
void setup() {
2
  // put your setup code here, to run once:
3
  Serial.begin(9600);
4
  while (!Serial);
5
  Serial.println("Waking up...");
6
}
7

8
void loop() {
9
  // put your main code here, to run repeatedly:
10
  Serial.println("Looping...");
11
  startDeepSleep();
12
}
13

14
void startDeepSleep(){
15
  Serial.println("Going to deep sleep...");
16
  ESP.deepSleep(5 * 1000000); yield();
17
}

Danke schonmal im Vorraus!

Gast #7814536
Lesenswert?

Lässt er sich nach dem DeepSleep durch einen Druck auf die Reset Taste wieder starten?

D8 (GPIO15) muss beim Booten auf LOW gezogen werden. Dazu hat das Board einen 12k Ohm Pulldown Widerstand.

Ich habe lediglich eine LED an Pin D8

Schaltplan?

Gast #7814593
Lesenswert?

Leon schrieb:

Ja, das funktioniert. Er wacht ja auch 'normal' auf, jedoch wird der Code einfach nicht ausgeführt.

Unklare Antwort. Wird der Code ausgeführt, wenn du während der Blockade den Reset Taster antippst?

Anbei meine Schaltung

Die LED braucht einen Vorwiderstand.

Versuche es ohne die LED und ohne den Temperatursensor.

Gast #7814608
Lesenswert?

Da ich gleich uns Bett gehe, nich eine verfrühte Info:

Das NodeMCU Board taugt nur schlecht für den Deep Sleep, weil due Bauteile um den ESP herum einige Milliampere aufnehmen.

Und es gibt ESP Module, die mit Flash Chips bestückt sind, die im Deep Sleep Modus ausfallen. Beim danach folgenden Reset kommt es zu Lesefehlern. Ob das bei dir zutrifft weiß ich nicht. Das ergäbe sich aus den Antworten zu meinen Rückfragen.

#7814821
Lesenswert?

Deep Sleep beim ESP8266 ist a pain in the ass. Das Portpin an Reset ist ein Würgaround und funktioniert eher zufällig, da Reset alle Portpins sofort wieder abschaltet. Da muß man also noch mit einem RC-Glied rumexperimentieren, bis das Resetsignal lang genug ist.

Will man Deep Sleep zuverlässig verwenden, sollte man unbedingt den ESP32 nehmen, der kann direkt aufwachen, ohne den Resetpin zu vergewaltigen. Und dann bleiben auch alle IO-Pins ungeändert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren