deep_sleep_battery_saver.ino

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

Pone el microcontrolador en sueño profundo y lo despierta periódicamente para ahorrar batería.

Usa las API de gestión de energía de ESP-IDF. El PaperDIY tiene una batería de 140 mAh, lo que hace que esta función sea crucial. Tenga en cuenta que la RAM se pierde durante el sueño profundo. Use RTC RAM para retener datos críticos.

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
}

← Volver a la ficha