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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.