m5paper_deep_sleep_button.ino
Implémente une stratégie d'économie d'énergie critique pour les applications sur batterie.
Le sommeil profond coupe le CPU et la plupart des périphériques. Le GPIO 39 (souvent lié au bouton PWR ou un GPIO libre) est configuré en entrée pull-up pour détecter l'appui. L'écran e-Ink conserve l'image sans alimentation. Vérifiez le schéma pour confirmer le pin de réveil.
m5paper_deep_sleep_button.ino
#include <M5EPD.h>
#define WAKEUP_PIN 39 // Bouton PWR ou GPIO dédié selon montage
void setup() {
M5.begin();
M5.EPD.SetRotation(90);
// Affiche un message avant de dormir
M5EPD_Canvas canvas(&M5.EPD);
canvas.createCanvas(540, 960);
canvas.setTextSize(4);
canvas.setCursor(100, 400);
canvas.print("Sleeping...");
canvas.pushCanvas(0, 0, UPDATE_MODE_GC16);
// Configure le réveil
esp_sleep_enable_ext0_wakeup(GPIO_NUM_39, 0); // Réveil si GPIO 39 passe à LOW
// Éteint l'écran pour économiser
M5.EPD.PowerOff();
Serial.println("Going to deep sleep...");
esp_deep_sleep_start();
}
void loop() {
// Jamais atteint en sommeil profond