m5paper_deep_sleep_timer-10.ino

M5Paper: Kit de desarrollo IoT con pantalla táctil e-Ink · Archivo : m5paper_deep_sleep_timer-10.ino · Lenguaje : C++ · Uso : Utiliser l'RTC pour réveiller le M5Paper en mode Deep Sleep afin de minimiser la consommation d'énergie pour une application IoT autonome.

Implementa el modo Deep Sleep para reducir drásticamente el consumo de energía entre tareas periódicas, crucial para aplicaciones alimentadas por batería.

Utiliza funciones específicas de ESP32 esp_sleep_*. M5Paper consume muy poco en deep sleep (<10uA). La pantalla e-Ink conserva la imagen mostrada sin consumo. Pruebe con un multímetro.

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

← Volver a la ficha