stats

ESP-Light-Sleep

Om een ESP-01 spaarzaam om te laten gaan met energie wanneer deze op batterijen werkt is Deep-Sleep tijdens rust een optie, maar deze optie heeft twee nadelen: Er moet een hardware ingreep (!) worden gedaan via de I/O wake-Up pin met de Reset pin, en de CPU herstart volledig.

Een goed alternatief is Light-Sleep-on-Timer, maar door een bug (?) in de ESP-01 software wil de CPU na ontwaken niet altijd correct reageren. De maximale slaaptijd blijkt 1000.000 uS (1 Sec) te zijn waarna wel de resterende delay tijd wordt doorlopen, maar NIET in slaap toestand.

Na wat experimenteren kwam ik op de volgende Work-Around: Een functie waarin die ene Sec slaaptijd telkens opnieuw wordt aangeroepen totdat het gewenste ontwaakmoment wordt bereikt. De CPU is dan wel elke seconde even bezig met aftellen, maar dat zijn slechts enkele uSec.

 
void Sleep(int tijd) {
 while (tijd--) {
  wifi_set_opmode(NULL_MODE);
  wifi_fpm_set_sleep_type(LIGHT_SLEEP_T);
  wifi_fpm_open();
  wifi_fpm_do_sleep(998500);
  delay(999);
 }
}

Lees hier meer over het gebruik van Light-Sleep in combinatie met ESPnow en modem sleep.

Heb je vragen of opmerkingen? Stuur me een berichtje en je krijgt alle gewenste informatie!

HOME