Три режима сна
Есть три типа режима сна:
- Модуль WiFi - выключен только WiFi;
- Легкий - все выключено за исключением часов реального времени (RTC), процессор в режиме ожидания;
- Глубокий - (режим глубокого сна) все выключено включая процессор работают только часы реального времени (RTC)
Для ухода в глубокий сон нужны два контакта:
- GPIO16 (D0 модуля NodeMCU) – это специальный контакт, оснащенный функцией WAKE (пробуждение)
- Контакт RST
Как это работает?
- Контакт RSTмодуля ESP8266 во время работы всегда находится в состоянии «HIGH» или "1" или подтянут к питанию ESP8266 .
- Контакт RSTмодуля получая сигнал «LOW» или "0" или подтянут к земле выполнит сброс микроконтроллера.
- контакт GPIO16 подключен к выходу часов реального времени (RTC) передает контакту RST сигнал «LOW» тем самым оправляет микроконтроллер в глубокую спячку или передает «HIGH» пробуждая модуль.
Настройки прошивки ESP Easy для сохранения энергии
Sleep Mode (Спящий режим)
Заходим в Config и переходи в подраздел Sleep Mode (Спящий режим)
Sleep awake time(Время бодрствования при выходе из сна, в сек)
Минимальное время в секундах, в течение которого модуль бодрствует, при истечении этого времени модуль уходит в сон
По умолчанию 0 а это значит что модуль не когда не уйдет в глубокий сон.
При загрузке из глубокого сна таймер запускается на основе этой настройки. Если этот таймер истечет, узел снова войдет в глубокий сон.
Как только узел установит успешное соединение Wi-Fi, таймер перезапустится, чтобы разрешить отправку данных датчика.
Независимо от этого параметра, можно перевести узел в глубокий сон с помощью команды deepsleep
Вытащить из глубокого сна можно и подачей на контакт RSTмодуля «HIGH» или "1"
Sleep time (sec) (Время засыпания, в сек. )
Время в секундах, в течение которого узел находится в глубоком сне.
Sleep on connection failure (Спящий режим при сбое подключения)
При невозможности подключится точка доступа уходит в спящий режим.
Подраздел Special and Experimental Settings (Специальные и экспериментальные настройки)
Идем по пути Tools > Advanced Settings (Инструменты> Расширенные настройки)
Connection Failure Threshold (Порог сбоя подключения)
Должно быть отключено
Force WiFi B/G (Принудительно использовать Wi-Fi B/G)
Должна стоять галочка, по идеи перевод в B/G режимы должен позволить сохранить энергию, но я не уверен
Restart WiFi Lost Conn (Перезапустите Wi-Fi при потере соединения)
Должно быть отключено
Force WiFi No Sleep (Принудительное включение WiFi без сна)
Обязательно отключено
Periodical send Gratuitous ARP (Периодическая отправка ARP)
Отключено
CPU Eco Mode (Эко-режим ЦП)
Должно быть включено.
Вызов функции delay из планировщика во время цикла ожидания. Это приведет к значительному снижению энергии - до 0,2 Вт.
При вызове delay останавливается ядро, работает только периферия, а значит при использовании функции не прекращается работа прерываний (если произойдет прерывание, то обработчик начнет работать), также продолжается передача/приём в буфер данных по последовательному порту, генерация ШИМ-сигнала также не прекращается.
Если узел только отправляет пакеты (например, только датчик, подключенный и отправляющий на какой-то сервер), то это отличный способ сэкономить энергию и уменьшить нагрев.
Но нет гарантии, что потребление энергии будет снижено. Например, когда хост получает непрерывные запросы ping, он никогда не активирует режим энергосбережения.
Если режим энергосбережения активен, узел может пропустить некоторые широковещательные пакеты. Например, пакеты p2p ESPeasy будут время от времени пропускаться, поэтому не активируйте этот режим, когда важно время ответа на полученные пакеты.
Выводы
Итак, для снижения потребления электроэнергии можно поступить двумя способами программным и железным
- Включая Sleep awake time(Время бодрствования при выходе из сна, в сек) можно пробудить модуль подачей на контакт RST модуля ESP8266 высокого уровня, «HIGH» Например, подавая 2-3вольта через геркон, а сам факт пробуждения и будет детекцией сигнала (т. е. геркон подключаем к RTS, или по другому, подтягиваем RTS к питанию через геркон)
- Включая Sleep awake time(Время бодрствования при выходе из сна, в сек) и пробуждая модуль по таймеру, соединено GPIO16 и RTS
- Выключая все режимы и настраивая все программные настройки прошивки описанные выше с включением CPU Eco Mode (Эко-режим ЦП)
На сегодня все и как всегда...
Продолжение следует...
Статьи на моем канале по теме ESP Easy:
- Подключаем кнопку и светодиод и настраиваем их в прошивке ESP Easy
Подписывайтесь на наш канал TehnoZet-2 , будет интересно! Мы активно развиваемся! Понравилась статья, хотите продолжения - пишите комментарии, ставьте лайк, жмите палец вверх!