m5paper_deep_sleep_button.ino

Kit de desarrollo IoT M5Paper con pantalla táctil e-Ink de 4,7 pulgadas · Archivo : m5paper_deep_sleep_button.ino · Lenguaje : C++ (Arduino) · Uso : Mettre le M5Paper en sommeil profond pour une autonomie maximale, avec réveil par bouton physique.

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

← Volver a la ficha