Legacy-версия статьи. Это оригинальная версия до редактирования. Текущая версия

Спящий режим (legacy)

Поддержка спящего режима для экономии энергии при питании от батарей. Модуль по веб не доступен во время спящего режима ! Доступный максимальный интервал сна до 65534 секунды(чуть больше 18 часов)

Ток потребления самих чипов в глубоком сне согласно документации : ESP8266 - 20 мкА, ESP32 - 10 мкА.

Ток потребления в легком сне согласно документации -около 1 мА. На данный момент этот режим не поддерживается.


Для работы глубокого сна на ESP8266 необходима перемычка между GPIO16 и RST(EN) ! Без этого модуль не проснется ! Для ESP32 перемычки не требуется.

Для выхода из спящего режима, например для перенастройки, необходимо включить режим Safe mode.

Установка интервала пробуждения указывается на вкладке настроек main. 0 - спящий режим выключен

У ESP32 доступно пробуждение модуля по WAKEUP GPIO , указанного в шестеренке опции. -1 - GPIO не используется. 

Рекомендуется включить статический IP для более быстрого подключения к сети.

Не рекомендуется установка в прошивку поддержки времени(NTP) - это замедляет запуск модуля.


Алгоритм работы спящего режима

Данный алгоритм используется в прошивках, собранных с 14.06.21. Алгоритм позволяет просыпаться модулю на минимальное время от 3 секунд и больше, в зависимости от количества включенных сетевых опций.

Установленное время интервала сетевых опций в спящем режиме игнорируется и запуск опций происходит по очереди с интервалом в одну секунду(с учетом возможных попыток подключения при проблемах связи). Запуск опций происходит после успешного подключения к сети wifi, если подключиться не удалось, то модуль принудительно переходит в спящий режим спустя 60 секунд.

Порядок запуска сетевых опций:

1. Приемные опции(актуальны только для ESP32+E-INK): VSENS, Gismeteo, Narodmon Get, OpenWeatherMap.

2. Передающие опции: MQTT, TCP/UDP клиент, MajorDoMo, Narodmon, D2D отправка, Zabbix.

Опции не поддерживающие спящий режим: GSM SMS и GPRS(ESP32).


Работа в Intepreter

Интервал запуска скрипта игнорируется. Скрипт запускается после выполнения всех сетевых опций. Пока скрипт активен, то модуль не уходит в спящий режим, delay останавливает переход в спящий режим. 

Команда sleep(x) отправляет модуль в спящий режим на время х (секунды).

Опция Intepreter может применяться для отправки данных через функцию httpget или, например, для задержки выхода в спящий режим по условию. В конструкторе ESP8266(NoOS) после использования httpget возможно необходимо задержать уход в спящий режим используя delay(300). Время подбирается.


Рекомендации по использованию спящего режима

1. Использовать энергоэффективные DC-DC преобразователи. Большинство линейных стабилизаторов в состоянии покоя потребляют значительный ток, есть исключения , например - HT7330-A

2. Использовать современные экономичные датчики.

3. Если невозможно выполнить пункт 2, то использовать GPIO в режиме invert для подачи питания на датчики.

4. Демонтировать постоянно включенные светодиоды на плате, а лучше использовать "голые" модули без USB-UART преобразователей и прочей обвязки.

5. Убрать дублирующие подтяжки на I2C датчиках. Использовать повышенные сопротивления подтяжки на шинах i2c и 1wire при которых датчик еще работает.

Рекомендуется проанализировать потребляемый ток в спящем режиме с помощью мультиметра.


Все вопросы и проблемы по обновленной опции спящего режима обсуждаем в чате Телеграм(рекомендуется) или через обратную связь сайта.