m5paper_deep_sleep_timer-10.ino

M5Paper: IoT Development Kit with Tactile e-Ink Display · File : m5paper_deep_sleep_timer-10.ino · Language : C++ · Use case : Utiliser l'RTC pour réveiller le M5Paper en mode Deep Sleep afin de minimiser la consommation d'énergie pour une application IoT autonome.

Implements Deep Sleep mode to drastically reduce power consumption between periodic tasks, crucial for battery-powered applications.

Uses ESP32 specific esp_sleep_* functions. M5Paper consumes very little in deep sleep (<10uA). E-Ink screen retains the displayed image without power. Test with a multimeter.

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()
}

← Back to the board