Глубокий сон зависает при использовании с gpio 16, когда мы подключаемся к контакту сброса

У меня есть узел MCU, и он зависает, когда я использую режим глубокого сна, как показано на прикрепленном изображении. Мой код выглядит так:

/*
 * ESP8266 Deep sleep mode example
 * Rui Santos 
 * Complete Project Details https://randomnerdtutorials.com
 */
 
void setup() {
  Serial.begin(115200);
  Serial.setTimeout(2000);

  // Подождите, пока Serial инициализируется.
  while(!Serial) { }
  
  // Режим глубокого сна на 30 секунд, ESP8266 просыпается сам по себе, когда GPIO 16 (D0 на плате NodeMCU) подключается к контакту RESET
  Serial.println("I'm awake, but I'm going into deep sleep mode for 30 seconds");
  ESP.deepSleep(30e6); 
  
  // Режим глубокого сна до тех пор, пока контакт RESET не будет подключен к сигналу LOW (например, к кнопке или магнитному геркону)
  //Serial.println("Я бодрствую, но перехожу в режим глубокого сна, пока контакт RESET не будет подключен к сигналу LOW");
  //ESP.deepSleep(0);
}

void loop() {
}

deepsleep

Пожалуйста, помогите!

, 👍1

Обсуждение

удалить пока (!Serial) здесь ничего не делается. добавить задержку (500); после Serial.begin. добавить Serial.flush перед сном, @Juraj

пробовал то же самое. Без изменений. Это все еще то же самое., @dachu darshan

и какая скорость передачи данных у вас установлена в Serial Monitor? вы видите сообщение «Я не сплю, но ...» при первом запуске после загрузки или при обычном сбросе или включении?, @Juraj

Последовательный монитор также имел ту же скорость передачи данных, что и код, и я не вижу, чтобы это сообщение печаталось с помощью команды serial.print., @dachu darshan

Вы сделали все 3 изменения, которые я рекомендовал? не могли бы вы добавить измененный скетч в качестве редактирования вопроса, @Juraj

Наиболее важным изменением, которое необходимо реализовать, является добавление Serial.flush() непосредственно перед переходом в спящий режим - это позволяет передавать время последовательных данных до того, как MCU перейдет в спящий режим., @Majenko


1 ответ


-1

У меня была та же проблема, и я понял, что не подключил GPIO 16 (или D1) к RST. Звучит тривиально, но со мной случается.

Я знаю старую тему, но я пытался понять свою ошибку и наткнулся на эту тему, так что это может быть полезно для некоторых людей.

,

но в заголовке вопроса уже есть «при использовании с gpio 16, когда мы подключаемся к пину сброса», @Juraj