m5paper_deep_sleep_button.ino

Kit de développement IoT M5Paper avec écran e-Ink tactile 4,7 pouces · Fichier : m5paper_deep_sleep_button.ino · Langage : C++ (Arduino) · Usage : Mettre le M5Paper en sommeil profond pour une autonomie maximale, avec réveil par bouton physique.

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

← Retour à la fiche