deep_sleep_battery_saver.ino

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

Met le microcontrôleur en profond sommeil et le réveille périodiquement pour économiser la batterie.

Utilise les API de gestion d'alimentation de l'ESP-IDF. Le PaperDIY possède une batterie de 140 mAh, rendant cette fonctionnalité cruciale. Notez que la RAM est perdue lors du deep sleep. Utilisez RTC RAM pour conserver des données critiques.

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
}

← Retour à la fiche