deep_sleep_battery_saver.ino
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
}