deep_sleep_battery_saver.ino

M5Stack PaperDIY Complete Kit · File : deep_sleep_battery_saver.ino · Language : C++ (Arduino) · Use case : Gérer la consommation d'énergie en mettant l'ESP32-S3 en profond sommeil entre les tâches.

Puts the microcontroller into deep sleep and wakes it up periodically to save battery.

Uses ESP-IDF power management APIs. The PaperDIY has a 140 mAh battery, making this feature crucial. Note that RAM is lost during deep sleep. Use RTC RAM to retain critical data.

deep_sleep_battery_saver.ino

#include <Arduino.h>

// Broche de réveil (ex: bouton ou timer)
#define WAKE_PIN 0 

void setup() {
  Serial.begin(115200);
  delay(1000);
  Serial.println("Waking up...");
  
  // Vérifier la cause du réveil
  esp_sleep_wakeup_cause_t wakeup_reason = esp_sleep_get_wakeup_cause();
  if (wakeup_reason == ESP_SLEEP_WAKEUP_TIMER) {
    Serial.println("Woken by timer");
  } else if (wakeup_reason == ESP_SLEEP_WAKEUP_EXT0) {
    Serial.println("Woken by external trigger");
  }
  
  // Effectuer une tâche (ex: lecture capteur)
  Serial.println("Doing work...");
  delay(1000);
  
  // Configurer le réveil par minute
  esp_sleep_enable_timer_wakeup(60 * 1000000ULL); // 60 secondes
  Serial.println("Going to deep sleep...");
  esp_deep_sleep_start();
}

void loop() {
  // Jamais atteint en deep sleep
}

← Back to the board