m5paper_deep_sleep_timer-10.ino
Implementa el modo Deep Sleep para reducir drásticamente el consumo de energía entre tareas periódicas, crucial para aplicaciones alimentadas por batería.
Utiliza funciones específicas de ESP32 esp_sleep_*. M5Paper consume muy poco en deep sleep (<10uA). La pantalla e-Ink conserva la imagen mostrada sin consumo. Pruebe con un multímetro.
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()
}