• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вывод ESP8266 из режима глубокого сна

Народ, может кто подскажет как выводит устройства из режима глубокого сна?
У меня устройство работает от сети и от аккумулятора. По пропадании сети, оно переключается на аккумулятор, при этом работает в режиме глубокого сна.
ESP.deepSleep(6e8);
Тут всё работает. Вот только выходить из него оно не хочет. Приходится танцевать с бубнами (жать сброс, коротить питание и т.п.). В итоге с грехом пополам оно заводится на десятый раз.
Так вод не знаю, может как выводить ее из сна надо при появлении питания?
И еще как-то странно, светодиод висящий на GPIO1 в режиме глубокого сна как-то подсвечивается.
 

CodeNameHawk

Moderator
Команда форума
Дерните вниз, при помощи внешней схемы, GPIO16 , когда появилось питание.
 
Последнее редактирование:

CodeNameHawk

Moderator
Команда форума
при этом работает в режиме глубокого сна.
ESP.deepSleep(6e8);
Когда поймёте, что в глубоком сне, она не работает а спит, то не будете задавать таких вопросов.
при помощи внешней схемы,
Как это прочитали?
 
Прошу прощения. Действительно ступил и даже потом уже думал сам, как же он это сделает, ведь он спит.
Вы имели ввиду не программно, а аппаратно собрать схему, которая при появлении питания будет отсылать один импульс на сброс?
А почему тогда не прямо reset дернуть? Хотя в режиме глубокого сна GPIO16 соединен с reset.
 
Наверное и так должно работать это как? Как я написал? Схемку дополнительную собрать?
А тогда что вы имели ввиду? Я не понял.
 
Я так понимаю, что есть еще какой-то способ вывести ESP из глубокого сна. Пока CodeNameHawk видно занят или оффлайн обращусь ко всем, чтобы не плодить тем.
Как вывести ESP из глубокого сна. Щас конечно тоже рыть буду. Я читал про прерывания. Может это оно? Щас почитаю.
 

CodeNameHawk

Moderator
Команда форума
Если не нужно реагировать моментально, то просто просыпайтесь с заданным интервалом и проверяйте наличие сети(питания)...
 
Если не нужно реагировать моментально, то просто просыпайтесь с заданным интервалом и проверяйте наличие сети(питания)...
Так не получится. У меня все контакты ESP задействованы, в том числе и GPIO16. На нем вход с датчика движения. Питание переключается релюхой. У релюхи 2 пары контактов, и вместе с переключением питания GPIO16 переключается либо на выход датчика движения, либо на RST. Поэтому как только появляется питание, связь GPIO16 и RST обрывается. Поэтому и встал вопрос как подать сброс на RST при появдлении питания от220В.
 

CodeNameHawk

Moderator
Команда форума
Так не получится. У меня все контакты ESP задействованы, в том числе и GPIO16. На нем вход с датчика движения. Питание переключается релюхой. У релюхи 2 пары контактов, и вместе с переключением питания GPIO16 переключается либо на выход датчика движения, либо на RST. Поэтому как только появляется питание, связь GPIO16 и RST обрывается
Из серии: "В каком ухе у меня жужжит"

Поэтому и встал вопрос как подать сброс на RST при появдлении питания от220В.
Тогда просто отключайте питание есп.
Есть DC DC преобразователи с "выключателем".
https://www.aliexpress.com/item/329...order_list.order_list_main.251.21ef1802OjHSwp
 
Последнее редактирование:

Mislitel2000

New member
Господа, тоже возник такой вопрос, как аппаратно сделать то, что называется "дернуть reset". Те примеры, что я видел предполагали подачу тока через резистор и кнопку, что я и сделал с 10к Ом резистором, но плата все равно спит. Плата Wemos d1 mini. Можно разжевать вопрос что я не так делаю?
 
Народ, подскажите, действительно не получается вывести из режима глубокого сна подачей земли на Reset. Я вот на форуме Радиокот попробовал попросить помочь со схемой сброса. При подключении обычного светодиода все срабатывает, а стоит подать выход на RESET ESP, ничего не работает. Получается выводить из сна только отключив и включив питание.
 

aZholtikov

Active member
А в чем смысл аппаратного вывода из deep sleep? Можно и просто питание подавать/снимать.
Ну или как альтернатива подавать/снимать VCC на ножку EN тоже неплохой вариант (зависит от модуля - на некоторых подключен "вечный" VCC)...
 

aZholtikov

Active member
И по своему опыту с модулем ESP-12E. Ножка RESET висит в воздухе. Подача на нее GND часто к RESET не приводит.
"Присовокупите" ее к VCC через резистор 10К и тогда при подаче на нее GND будет RESET.
 
У меня все выводы задействованы, поэтому через релюху я переключаю вывод GPIO16 с RST (в режиме когда устройство работает от аккума) на выход PIR датчика. Таким образом, когда нет питания 220В и устройство спит, c GPIO16 каждые 10 минут проходит сброс и устройство записывает данные с датчиков. Но как только включаем питание, получается, что устройство еще спит, а GPIO16 уже не подключено к RST и устройство само проснуться не может. Поэтому его надо перегрузить аппаратно.
 

CodeNameHawk

Moderator
Команда форума
Господа, тоже возник такой вопрос, как аппаратно сделать то, что называется "дернуть reset".
https://esp8266.ru/esp8266-podkluchenie-obnovlenie-proshivki/#full
Эта схема работает.
На вашей плате может мешать usb-com переходник, конкретно нога RST, может мешать, когда нажимаете кнопку.
Те примеры, что я видел предполагали подачу тока через резистор и кнопку, что я и сделал с 10к Ом резистором, но плата все равно спит. Плата Wemos d1 mini.
Так, по схеме, на плате вроде уже есть кнопка ресет.

Залейте этот скетч и покажите вывод в сериал на скорости 74480
Код:
#include <ESP8266WiFi.h>

void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);

  Serial.begin(74480);
  Serial.println();
  Serial.println("Start.");
  digitalWrite(LED_BUILTIN, LOW);
  delay(300);
  digitalWrite(LED_BUILTIN, HIGH);
  delay(300);
  digitalWrite(LED_BUILTIN, LOW);
  delay(300);
  digitalWrite(LED_BUILTIN, HIGH);

  // put the ESP8266 into deep sleep mode for 10 seconds
  Serial.println("Going to sleep...");
  ESP.deepSleep(10e6);
}

void loop()
{
  // this function will not be called since the ESP8266 is in deep sleep mode
}
Когда вывод ресет не подключен к переходнику, то каждые 10 секунд выводит:

1680289017428.png

Если вывод ресет подключен, то из сна нормально не выходит. У меня переходник на FT232RL.
1680289132184.png

Delphin911
Проверьте, что у вас подключено к ресет.
Вообще спрашивать, не показав схему, особенно если она отличается от "стандартной", это дурной тон.
 
Последнее редактирование:
Вот часть схемы где видно что висит на Reset. Подключение датчиков и экрана я не стал прикладывать, там все просто и всё на других выводах.
 

Вложения

Сверху Снизу