Блок управления режимом глубокого сна для контроллера ESP32
Плату ESP32 можно переключить в режим глубокого сна, а затем разбудить через
определенное время. Эта функция особенно полезна, если ваш проект завязан на времени (например, выполняет ежедневные задачи) и
требует низкого энергопотребления. Если переключить ESP32 в режим глубокого сна, то это значит, что у нее будут отключены самые
энергоемкие активности, но продолжат работать активности, необходимые для пробуждения процессора, если произойдет что-то интересное.
В режиме глубокого сна не работает ни процессор, ни WiFi, но по-прежнему может работать сопроцессор ULP (англ. «ultra low power»,
т.е. «процессор с ультранизким потреблением»).
После того, как ESP32 переведена в режим глубокого сна, есть несколько способов ее пробудить:
1.При помощи таймера. Он разбудит ESP32 через определенное количество времени.
2. При помощи внешнего пробуждения. Здесь есть две возможности: пробуждение либо при помощи одного внешнего инициатора, либо при помощи нескольких внешних инициаторов.
3. При помощи сенсорных контактов.
Данный блок служит для управления переходом контроллера в режим глубокого сна, и настройкой условий пробуждения.
Блок настраивается с помощью редактора блока. В настройках блока присутствует несколько закладок для задания различных режимов пробуждения.
На первой закладке настраивается необходимость пробуждения по таймеру, а так же время через которое таймер разбудит контроллер.
1.При помощи таймера. Он разбудит ESP32 через определенное количество времени.
2. При помощи внешнего пробуждения. Здесь есть две возможности: пробуждение либо при помощи одного внешнего инициатора, либо при помощи нескольких внешних инициаторов.
3. При помощи сенсорных контактов.
Данный блок служит для управления переходом контроллера в режим глубокого сна, и настройкой условий пробуждения.
Блок настраивается с помощью редактора блока. В настройках блока присутствует несколько закладок для задания различных режимов пробуждения.
На первой закладке настраивается необходимость пробуждения по таймеру, а так же время через которое таймер разбудит контроллер.
В случае задания режима пробуждения по таймеру, необходимо задать время сна.
Это можно сделать либо константой, либо задать это значение со входа блока («Sleep Time»).
На второй закладке настроек задаются сенсорные кнопки, от прикосновения к которым будет происходить пробуждение контроллера.
На второй закладке настроек задаются сенсорные кнопки, от прикосновения к которым будет происходить пробуждение контроллера.
Для каждой добавленной сенсорной кнопки можно задать порог срабатывания
(вычисляется опытным путём на основании физических размеров сенсора). По умолчанию порог срабатывания – 40.
На следующей закладке задаются выводы, изменение уровня на которых, служит для пробуждения контроллера.
На следующей закладке задаются выводы, изменение уровня на которых, служит для пробуждения контроллера.
Событие, служащее для пробуждения задается сразу для всех выбранных выводов.
Блок использует выбранные выводы не монопольно, то есть эти выводы можно использовать в схеме для других целей. Вывод, выбранный для пробуждения как сенсорная кнопка, не может быть использован для пробуждения от изменения состояния, и наоборот.
Засыпание процессора происходит по переднему фронту импульса на входе «Sleep».
На последней закладке задается наличие выходов блока.
Блок использует выбранные выводы не монопольно, то есть эти выводы можно использовать в схеме для других целей. Вывод, выбранный для пробуждения как сенсорная кнопка, не может быть использован для пробуждения от изменения состояния, и наоборот.
Засыпание процессора происходит по переднему фронту импульса на входе «Sleep».
На последней закладке задается наличие выходов блока.
При активации чекбокса «Выход причины пробуждения» у блока появляется выход «Reason», на котором будет выводится код
причины последнего пробуждения.
Коды причины пробуждения.
-1 – неизвестная причина (например, после перезагрузки контроллера).
1 – пробуждение от изменения состояния на выводе
3 – пробуждение от таймера
5 – пробуждение от сенсорной кнопки
Если будет выбрана хотя бы одна сенсорная кнопка, или вывод для пробуждения от изменения состояния, то на этой закладке появится чекбокс «Выход номера пина, вызвавшего пробуждение».
При активации этого чекбокса, у блока появляется выход «GPIO». В случае пробуждения от сенсорной кнопки, или изменения состояния вывода, на этом выходе будет номер GPIO выхода вызвавшего пробуждение. В остальных случаях на нём будет: -1 .
Коды причины пробуждения.
-1 – неизвестная причина (например, после перезагрузки контроллера).
1 – пробуждение от изменения состояния на выводе
3 – пробуждение от таймера
5 – пробуждение от сенсорной кнопки
Если будет выбрана хотя бы одна сенсорная кнопка, или вывод для пробуждения от изменения состояния, то на этой закладке появится чекбокс «Выход номера пина, вызвавшего пробуждение».
При активации этого чекбокса, у блока появляется выход «GPIO». В случае пробуждения от сенсорной кнопки, или изменения состояния вывода, на этом выходе будет номер GPIO выхода вызвавшего пробуждение. В остальных случаях на нём будет: -1 .