Пробудите ЕСП32 из дубоког спавања помоћу тајмера-МицроПитхон

Probudite Esp32 Iz Dubokog Spavana Pomocu Tajmera Micropithon



ЕСП32 је ИоТ платформа заснована на микроконтролеру. Потрошња енергије је једна од главних брига при раду са микроконтролерском плочом. Све док напајамо ЕСП32 са једносмерном струјом, не бринемо више о потрошњи енергије, али са пројектима резервне батерије на дуге стазе морамо да оптимизујемо укупну снагу.

Овде ћемо разговарати о томе како можемо да поставимо ЕСП32 у режим дубоког спавања у одређено време да бисмо уштедели енергију. Пре него што научимо како да пробудимо ЕСП32 из дубоког сна помоћу тајмера, хајде да разумемо концепт дубоког сна:

Шта је дубоко спавање у ЕСП32

ЕСП32 може бити уређај гладан енергије због интегрисаног ВиФи и Блуетоотх модула. ЕСП32 обично црта 75мА за номиналне операције док може ићи до 240мА приликом преноса података преко ВиФи мреже. Међутим, ово можемо оптимизовати омогућавањем режима дубоког спавања.









У режиму дубоког спавања, ЕСП32 дигиталне периферије, неискоришћена РАМ меморија и ЦПУ су искључени. Само следећа листа делова остаје у функцији:



  • РТЦ контролер
  • УЛП копроцесор
  • РТЦ брза и спора меморија
  • РТЦ периферије





Када је режим дубоког спавања омогућен, главни ЦПУ се искључује; међутим, УЛП (УлтраЛовПовер) копроцесор и даље може да чита податке са сензора и да пробуди ЦПУ кад год је то потребно.

Ова апликација ЕСП32 је згодна тамо где желимо да генеришемо излаз у одређено време или када се деси екстерни прекид или догађај. Ово штеди енергију ЕСП32 јер његов ЦПУ остаје искључен до краја времена и укључује се само када се позове.



Заједно са ЦПУ ЕСП32 главна меморија се такође флешује или брише, тако да све што је ускладиштено у овој меморији више неће бити доступно. Ту се чува само РТЦ меморија. Стога, ЕСП32 чува ВиФи и Блуетоотх податке унутар РТЦ меморије пре него што пређе у режим дубоког спавања.

Када се режим дубоког спавања ресетује или уклони, ЕСП32 чип почиње извршавање програма од самог почетка.

Из дубоког сна можемо пробудити ЕСП32 користећи различите методе.

Извори за буђење у ЕСП32

Доступно је више извора за буђење ЕСП32 из дубоког сна:

  • Тајмер
  • Додирните игле
  • Екстерно буђење ект0
  • Екстерно буђење екст1

У овом водичу ћемо покрити Тајмер за буђење извор за ЕСП32.

Како користити тајмер за буђење ЕСП32 из дубоког спавања

ЕСП32 долази са РТЦ контролером који има уграђени тајмер модул који може пробудити ЕСП32 након унапред дефинисаног времена. Ова функција има огромне апликације где нам је потребно временско означавање или морамо да извршимо упутства у одређено време уз одржавање оптималне потрошње енергије.

Да ставите ЕСП32 у режим дубоког спавања користећи МицроПитхон код дубоки сан() функција из машински модул ће се користити. Следи синтакса функције дубоког сна у МицроПитхон-у:

машина. дубоки сан ( слееп_тиме_мс )

Ова функција узима 1 аргумент који је унапред дефинисано време у милисекунди .

Да бисмо разумели употребу ЕСП32 тајмера за буђење, узећемо пример који трепери ЛЕД након сваког подешеног времена и враћа се у стање мировања када се задатак заврши.

Пример кода

Отворите било који МицроПитхон едитор и учитајте доле наведени код на ЕСП32 плочу. Овде ћемо користити Тхонни ИДЕ за учитавање МицроПитхон скица.

# Извор кода Линукхинт.цом

из машина увоз дубоки сан

из машина увоз Пин

из време увоз спавати

ЛЕД = Пин ( 4 , Пин. ОУТ ) #ПИН 4 дефинисан за ЛЕД излаз

ЛЕД. вредност ( 1 ) #Укључите ЛЕД на 1 сек

спавати ( 1 )

ЛЕД. вредност ( 0 ) #Искључите ЛЕД на 1 сек

спавати ( 1 )

принт ( 'Идем на спавање сада' )

дубоки сан ( 5000 ) #Спавајте 5 секунди

Код је започео увозом неопходних библиотека као што смо ми увезли библиотеку дубоког спавања.

Након тога се креира нови објекат за ЕСП32 пин 4. Овај пин ће показати излаз сваки пут када се ЕСП32 пробуди.

ЛЕД = Пин ( 4 , Пин. ОУТ )

Испод датих команди ће трептати ЛЕД са закашњењем од 1 сек.

ЛЕД. вредност ( 1 )

спавати ( 1 )

ЛЕД. вредност ( 0 )

спавати ( 1 )

Овде у сврху демонстрације, треперимо ЛЕД. Међутим, било који други уређај се такође може контролисати.

Пре одласка на спавање одштампали смо поруку да ЕСП32 иде у режим спавања.

принт ( 'Идем на спавање сада' )

Белешка: Овде такође можемо додати кашњење од 5 или више секунди пре него што ЕСП32 пређе у режим мировања. Ово нам помаже када градимо пројекат и пишемо нову скрипту. Док учитавате нови код, плоча мора бити будна, а не у режиму спавања. Ако не додамо кашњење, биће нам тешко да ухватимо ЕСП32 у будном режиму и отпремимо нову скрипту.

Након писања нове скрипте и када је коначни код спреман, можемо уклонити ово кашњење у коначној верзији скрипте.

Коначно, ЕСП32 плоча се ставља у дубоко спавање на 5 секунди (5000 мс).

машина. дубоки сан ( 5000 )

Када прође 5 секунди, ЕСП32 се буди и поново покреће код сличан ИН дугме.

  Аутоматски генерисан графички кориснички интерфејс, текст, опис апликације

Излаз

Следећи излаз се може посматрати на терминалу љуске Тхонни ИДЕ. Овде можемо видети да се након сваких 5 секунди ЕСП32 буди из дубоког сна и трепери ЛЕД на ГПИО пину 4.

ЛЕД на ГПИО 4 ће се окренути НА за 1 сек.

Након 1 секунде ЛЕД ће се укључити ВАН .

Сада ће ЕСП32 плоча поново отићи у режим мировања на 5 секунди и након тога цео процес се понавља. Дакле, то је то што смо успешно контролисали ЕСП32 режим дубоког спавања помоћу кода тајмера.

Закључак

Овде, у овом водичу, конфигурисали смо ЕСП32 да се буди из дубоког спавања помоћу програма тајмера написаног у МицроПитхон-у. Пребацили смо код користећи Тхонни ИДЕ . Једноставно смо одштампали поруку када се ЕСП32 пробуди и затрепери ЛЕД; међутим, коришћењем овог чланка може се извршити било који задатак када се ЕСП32 пробуди из дубоког сна.