Wemos d1 mini Deepsleep funktioniert nicht.

(Firma: Alexa) #5910841
Lesenswert?

Ich habe Reset und D0(GPIO16) verbunden und dieses Programm um DeepSleep 
zu testen, aber der D1 Mini wacht nicht mehr auf nachdem er einmal 
durchgelaufen ist.

void setup() {
  Serial.begin(2400);
  Serial.setTimeout(2000);

  // Wait for serial to initialize.
  while(!Serial) { }

  // Deep sleep mode for 30 seconds, the ESP8266 wakes up by itself when 
GPIO 16 (D0 in NodeMCU board) is connected to the RESET pin
  Serial.println("I'm awake, but I'm going into deep sleep mode for 30 
seconds");
  ESP.deepSleep(30e6);

  // Deep sleep mode until RESET pin is connected to a LOW signal (for 
example pushbutton or magnetic reed switch)
  //Serial.println("I'm awake, but I'm going into deep sleep mode until 
RESET pin is connected to a LOW signal");
  //ESP.deepSleep(0);
}

void loop() {
}

Woran kann das liegen oder wie kann ich das fixen?
Gast #5910892
Lesenswert?

Fl0_ F. schrieb:
> Ich habe Reset und D0(GPIO16) verbunden und dieses Programm um DeepSleep
> zu testen, aber der D1 Mini wacht nicht mehr auf nachdem er einmal
> durchgelaufen ist.

Das funktioniert bei mir.
NOTE 470R zwischen D0 und RST, sonst geht Programmieren im Schlaf nicht.
1
void setup() {
2
  // initialize digital pin LED_BUILTIN as an output.
3
  pinMode(LED_BUILTIN, OUTPUT);
4
}
5

6
// the loop function runs over and over again forever
7
void loop() {
8
  for (int i = 0; i < 10; i++) {
9
    digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
10
    delay(300);                       // wait for a second
11
    digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
12
    delay(300);                       // wait for a second
13
  }
14
  ESP.deepSleep(1000000L * 30);
15
  // 470 R between D0 and /RST : wakeup AND program (rst) both working
16
}

leo
(Firma: Alexa) #5910984
Lesenswert?

22:02:17.751 ->  ets Jan  8 2013,rst cause:2, boot mode:(3,6)
22:02:17.751 ->
22:02:17.751 -> load 0x4010f000, len 1384, room 16
22:02:17.751 -> tail 8
22:02:17.751 -> chksum 0x2d
22:02:17.751 -> csum 0x2d
22:02:17.785 -> v8b899c12
22:02:17.785 -> ~ld
22:02:51.502 ->
22:02:51.502 ->  ets Jan  8 2013,rst cause:2, boot mode:(3,6)
22:02:51.502 ->

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.setDebugOutput(true);
}

// the loop function runs over and over again forever
void loop() {
  for (int i = 0; i < 10; i++) {
    digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the 
voltage level)
    delay(300);                       // wait for a second
    digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the 
voltage LOW
    delay(300);                       // wait for a second
  }


    ESP.deepSleep(30 * 1000000);
    delay(100);

}

so siehts jetzt aus
Gast #5912678
Lesenswert?

Fl0_ F. schrieb:
> ja. nur beim deepsleep reset passiert das nicht

Teste den I/O Pin:

Anstelle von "ESP.deepSleep(30 * 1000000);" schreibe:
1
pinMode(16, OUTPUT);
2
digitalWrite(16, LOW);

Er müsste dann sofort resetten, also letztendlich ununterbrochen 
blinken. Tut er das nicht, messe die Spannung an diesem Ausgangs-Pin und 
am Reset Eingang. Wenn der Ausgang nicht auf LOW (<1V) steht, ist er 
kaputt.

Wenn der Ausgang LOW ist, aber der RESET Eingang nicht LOW ist, dann 
stimmt irgendwas an den Bauteilen um den Reset Pin herum nicht. 
Vielleicht ist dein Zwischenwiderstand zu hochohmig.

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