Спящий режим (обновлено: 16 Jun 2021, 13:14:28)

Поддержка спящего режима для экономии энергии при питании от батарей. Модуль по веб не доступен во время спящего режима ! Доступный максимальный интервал сна до 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 при которых датчик еще работает.

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


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