Tutaj będziemy omawiać, w jaki sposób możemy ustawić ESP32 w trybie głębokiego uśpienia w ustalonym czasie, aby zaoszczędzić energię. Zanim dowiemy się, jak obudzić się ESP32 z głębokiego snu za pomocą timera, zrozummy koncepcję głębokiego snu:
Co to jest głęboki sen w ESP32
ESP32 może być urządzeniem głodnym energii ze względu na zintegrowany moduł Wi-Fi i Bluetooth. ESP32 zazwyczaj rysuje 75MA w przypadku operacji nominalnych, podczas gdy może się przejść 240MA Podczas przesyłania danych przez Wi -Fi. Możemy jednak to zoptymalizować, włączając tryb głębokiego uśpienia.
W trybie głębokiego uśpienia cyfrowe urządzenia peryferyjne ESP32, niewykorzystane pamięci RAM i procesory są wyłączone. Tylko następująca lista części pozostaje działająca:
Po włączeniu trybu głębokiego uśpienia główny procesor jest wyłączony; Jednak koprocesor ULP (ultralowpower) może nadal odczytać dane z czujników i budzić procesor w dowolnym momencie.
To zastosowanie ESP32 jest przydatne, w którym chcemy wygenerować wyjście w określonym czasie lub gdy nastąpi zewnętrzne przerwanie lub zdarzenie. To oszczędza moc ESP32, ponieważ jego procesor pozostaje wyłączony przez resztę czasu i włącza się tylko wtedy, gdy jest nazywany.
Wraz z pamięcią główną CPU ESP32 jest również błyska lub wymazana, więc wszystko przechowywane w tej pamięci nie będzie już dostępne. Trzymana jest tylko pamięć RTC. Dlatego ESP32 zapisuje dane Wi -Fi i Bluetooth w pamięci RTC przed przejściem do trybu głębokiego uśpienia.
Po zresetowaniu lub usunięciu trybu głębokiego uśpienia układ ESP32 rozpoczyna wykonywanie programu od samego początku.
Z głębokiego snu możemy obudzić ESP32 przy użyciu różnych metod.
Obudź źródła w ESP32
Dostępnych jest wiele źródeł, aby obudzić ESP32 z głębokiego snu:
W tym przewodniku obejmiemy Obudź się zegar Źródło ESP32.
Jak używać timera, aby obudzić ESP32 z głębokiego snu
ESP32 jest wyposażony w kontroler RTC, który ma wbudowany moduł timera, który może obudzić ESP32 po predefiniowanym czasie. Ta funkcja ma ogromne aplikacje, w których potrzebujemy stemplowania czasu lub potrzebujemy wykonywania instrukcji w określonym czasie, jednocześnie utrzymując optymalne zużycie energii.
Aby umieścić ESP32 w trybie głębokiego uśpienia za pomocą kodu Micropython głęboki sen() funkcja z Moduł maszyny będzie użyty. Poniżej znajduje się składnia funkcji głębokiego snu w Micropython:
maszyna.Deepsleep (sleep_time_ms)Ta funkcja trwa 1 argument, który jest predefiniowanym czasem milisekund.
Aby zrozumieć użycie czasu ESP32 do oburzenia.
Przykładowy kod
Otwórz dowolny edytor Micropython i prześlij poniższy kod na tablicy ESP32. Tutaj będziemy używać Thonny Ide do przesyłania szkiców mikropython.
# Źródło kodu Linuxhint.comKod rozpoczął się od importowania niezbędnych bibliotek, takich jak importowaliśmy bibliotekę Deepsleep.
Następnie powstaje nowy obiekt dla ESP32 Pin 4. Ten pin pokaże wyjście za każdym razem, gdy ESP32 się budzi.
LED = pin (4, pin.NA ZEWNĄTRZ)Poniżej podane polecenia mrugną LED z opóźnieniem 1 sekund.
prowadzony.wartość (1)Tutaj do celów demonstracyjnych mrugamy diodą LED. Jednak każde inne urządzenie można również kontrolować.
Przed pójściem spać wydrukowaliśmy wiadomość, że ESP32 zmierza w trybie uśpienia.
Drukuj („Idę teraz spać”)Notatka: Możemy również dodać opóźnienie 5 lub więcej sekund, zanim ESP32 przejdzie do trybu uśpienia. Pomaga nam to przy budowaniu projektu i pisząc nowy scenariusz. Podczas przesyłania nowego kodu płyty musi być obudzone, a nie w trybie uśpienia. Jeśli nie dodamy opóźnienia, trudno będzie nam złapać ESP32 w trybie Awake i przesłać nowy skrypt.
Po napisaniu nowego skryptu i po przygotowaniu końcowego kodu możemy usunąć to opóźnienie w ostatecznej wersji skryptu.
Wreszcie, tablica ESP32 jest w głębokim śnie przez 5 sekund (5000 ms).
maszyna.Deepsleep (5000)Gdy 5 -sekundowy czas przejdzie, ESP32 budzi się i ponownie uruchamia kod podobny do En przycisk.
Wyjście
Następując moc wyjściową można zaobserwować na terminalu Shell Thonny IDE. Tutaj widzimy, że po każdym 5 sekundach ESP32 budzi się z głębokiego snu i mrugnij diodę LED na gpio pin 4.
LED w GPIO 4 obróci się NA przez 1 sekundę.
Po 1 sekundzie dioda LED obróci się WYŁĄCZONY.
Teraz płyta ESP32 ponownie przejdzie w tryb uśpienia przez 5 sekund, a następnie cały proces powtarza się. To wszystko, z powodzeniem kontrolowaliśmy tryb głębokiego uśpienia ESP32 za pomocą kodu timera.
Wniosek
Tutaj w tym samouczku skonfigurowaliśmy ESP32, aby obudzić się z Deep Sleep za pomocą programu timera napisanego w Micropython. Przesłaliśmy kod za pomocą Thonny Ide. Po prostu wydrukowaliśmy wiadomość, gdy ESP32 się obudzi i mrugnie diodą LED; Jednak za pomocą tego artykułu można wykonać dowolne zadanie, gdy ESP32 obudzi się z głębokiego snu.