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