m5paper_deep_sleep_timer-10.ino
Implémente le mode Deep Sleep pour réduire drastiquement la consommation électrique entre les tâches périodiques, crucial pour les alimentations sur batterie.
Utilise les fonctions spécifiques ESP32 esp_sleep_*. Le M5Paper consomme très peu en deep sleep (<10uA). L'écran e-Ink conserve l'image affichée sans consommation. Testez avec un multimètre.
m5paper_deep_sleep_timer-10.ino
#include <M5Paper.h>
// Durée du sommeil en secondes
#define SLEEP_TIME_SEC 60
void setup() {
M5.begin(true, false, false);
M5.Display.init();
// Affiche un message avant de dormir
M5.Display.drawString("Reveil: " + String(millis()/1000) + "s", 10, 10);
M5.Display.drawString("Endormissement...", 10, 40);
M5.Display.update();
delay(1000);
// Configuration du Deep Sleep via RTC
// Sur ESP32, esp_sleep_enable_timer_wakeup utilise des microsecondes
esp_sleep_enable_timer_wakeup(SLEEP_TIME_SEC * 1000000ULL);
// Optionnel : Activer le réveil par bouton tactile (GPIO) si câblé
// esp_sleep_enable_ext0_wakeup(GPIO_NUM_39, 0); // Exemple GPIO tactile
M5.Display.drawString("Zzz...", 10, 70);
M5.Display.update();
esp_deep_sleep_start();
}
void loop() {
// Non atteint après deep sleep, le code redémarre dans setup()
}