m5paper_deep_sleep_button.ino
Implementa una estrategia crítica de ahorro de energía para aplicaciones a batería.
El sueño profundo apaga la CPU y la mayoría de los periféricos. GPIO 39 (a menudo vinculado al botón PWR o un GPIO libre) se configura como entrada pull-up para detectar una pulsación. La pantalla e-Ink conserva la imagen sin alimentación. Verifique el esquema para confirmar el pin de despertar.
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