Не удается отправить Wemos D1 ESP8266 в глубокий сон
У меня есть Wemos D1 (версия 2015-08), и я пытаюсь заставить его заснуть. Мне удалось запустить его в целом и запустить / подключить Wi-Fi к работе и т.д., Но функция глубокого сна мне недоступна.
Я попробовал подключить вывод RX <-D0 для СБРОСА, также попробовал с резистором 10 ком. Ни то, ни другое не сработало. Затем я попробовал сбросить D2 (указан как gpi016 на задней панели платы), но это также не сработало. Есть какие-нибудь идеи? Похоже, это был бы невероятный чип, если бы я мог заставить его заснуть. Приведенный ниже примерный скетч загружается нормально и связывается с последовательным монитором до тех пор, пока он не перейдет в спящий режим.
/* Глубокий сон - Моргание
*
* Мигает встроенный светодиод, переходит в режим ожидания на 10 секунд и повторяет
*
* Соединения:
* D0 - ПЕРВЫЙ
*
* Если вы не можете перепрограммировать, поскольку ESP находится в спящем режиме, сначала отключите D0 и повторите попытку
*/
// sleep в течение этого количества секунд
const int sleepSeconds = 5;
void setup() {
Serial.begin(9600);
Serial.println("\n\nWake up");
pinMode(BUILTIN_LED, OUTPUT);
// Подключите D0 к RST для пробуждения
pinMode(D0, WAKEUP_PULLUP);
// СВЕТОДИОД: НИЗКИЙ = включен, ВЫСОКИЙ = выключен
Serial.println("Start blinking");
for (int i = 0; i < 20; i++) {
digitalWrite(BUILTIN_LED, LOW);
delay(100);
digitalWrite(BUILTIN_LED, HIGH);
delay(100);
}
Serial.println("Stop blinking");
Serial.printf("Sleep for %d seconds\n\n", sleepSeconds);
// преобразовать в микросекунды
ESP.deepSleep(sleepSeconds * 1000000);
Serial.println("sleep finished");
}
void loop() {
}
@Calum Nicoll, 👍3
Обсуждение2 ответа
Мне пришлось физически подключить D0 к RST, чтобы разбудить wemos.
путаница может заключаться в том , что ... D0 на Weemos d1 ** mini ** равен gpio16... D2 на Weemos d1 равен gpio16, @Jaromanda X
Добро пожаловать. Пожалуйста, обязательно посетите экскурсию по адресу https://arduino.stackexchange.com/Tour, @SDsolar
На самом деле он хорошо работает, используя провод между выводами D2 и RESET. Но отправляя программу на плату, вы должны сначала отсоединить эти контакты (arduino IDE отправит жесткий сброс во время процесса, поэтому этот сброс D2 не должен быть на месте). Когда программа загружается в ESP и начинает работать, вы подключаете D2 и СБРАСЫВАЕТЕ, и она работает хорошо, ESP перейдет в режим глубокого сна, как и ожидалось.
Поскольку это не mini, на плате есть другой чип (usb), который не переходит в спящий режим, поэтому на моей плате он будет использовать около 17 мА в режиме глубокого сна (сравните с 80 мА при нормальной работе Wi-Fi). И все же трюк того стоит.
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как заставить 5-вольтовое реле работать с NodeMCU
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ESP8266 не подключается к Wi-Fi
- AT-команда не отвечает на последовательный монитор
- Разница между этими двумя платами NodeMCU?
Не могли бы вы сказать еще несколько слов о том, что вы * на самом деле * наблюдали, что вы * ожидали * наблюдать, и чем они отличаются? Вы пробовали отсоединить все от последовательного порта ESP8266, как это было предложено в [одном руководстве] (https://learn.sparkfun.com/tutorials/esp8266-thing-hookup-guide/using-the-arduino-addon )? (Увы, это значительно усложняет отладку)., @David Cary
определенно вы используете gpio16 (D2), так как это вывод, который используется для пробуждения от глубокого сна... примечание
Serial.println ("режим сна завершен");
не будет выполняться после пробуждения чипа, ESP в основном выключится, а затем * перезагрузится * после периода глубокого сна..., @Jaromanda Xо, GPIO16 - это D0 на weemos d1 mini и D2 на "не" mini...почему они не могут просто обозначить GPIO16 как GPIO16!!!, @Jaromanda X
Один вопрос о вашей плате, какую плату вы должны выбрать для Wemos 2015-08 под arduino 1.8.5?? Wemos D1 R1 или Wemos D1 R2/mini???, @Miguel Angel Salinas Gancedo
Если вам нужен глубокий сон, вам не следует использовать платы с микросхемами USB-to-serial, которые нельзя перевести в спящий режим. Подумайте об использовании "голого" ESP-12f и внешнего USB UART, который будет подключаться только для программирования., @gone