toughc5-rtc-sleep-wake.ino
Gestión de reloj en tiempo real y sueño profundo para una mayor autonomía.
El RTC RX8130CE está conectado vía I2C. Asegúrese de que la batería CR2032 esté instalada. La activación depende del cableado interno del pin INT del RTC a un GPIO de activación ESP32. La corriente de reposo baja a ~10µA.
toughc5-rtc-sleep-wake.ino
#include <M5ToughC5.h>
#include <RTClib.h>
RTC_DS3231 rtc; // Le RX8130CE est compatible via I2C
void setup() {
M5.begin();
Serial.begin(115200);
if (!rtc.begin()) {
Serial.println("RTC not found");
while(1);
}
if (rtc.lostPower()) {
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
M5.Display.drawString("Sleep Mode Active", 10, 10);
delay(2000);
// Configurer le réveil dans 1 heure (3600 secondes)
// Note: M5Stack a souvent des fonctions spécifiques, ici on utilise l'alarme standard
rtc.setAlarmEverySeconds(3600);
rtc.enableAlarm(3600); // 1 heure
}
void loop() {
DateTime now = rtc.now();
Serial.print("Time: ");
Serial.println(now.timestamp());
// Entrer en deep sleep
// Le pin d'interruption du RTC doit être connecté à un pin capable de réveil (ex: GPIO 0 ou 45 selon config)
// Pour le ToughC5, vérifier la doc M5 pour le pin RTC_INT
esp_sleep_enable_ext0_wakeup(GPIO_NUM_0, 0);
Serial.println("Going to sleep...");
delay(100);
esp_deep_sleep_start();
}