toughc5_rtc_battery_log.ino
Usa el RTC RX8130CE para registrar la hora de los eventos y guardarlos en el sistema de archivos LittleFS.
Requiere las bibliotecas 'RTClib' y 'LittleFS'. El RTC RX8130CE está en el bus I2C interno. Asegúrese de que la batería CR2032 esté insertada para mantener la hora durante el sueño. Los datos se escriben en un archivo de texto en Flash.
toughc5_rtc_battery_log.ino
#include <M5ToughC5.h>
#include <RTClib.h>
#include <FS.h>
#include <LittleFS.h>
RTC_DS3231 rtc; // Le RX8130CE est compatible avec la lib RTClib via I2C
File logFile;
void setup() {
M5.begin();
Serial.begin(115200);
if (!LittleFS.begin()) {
Serial.println("LittleFS Mount Failed");
return;
}
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
return;
}
// Vérifier si l'heure est perdue (pile CR2032 vide)
if (rtc.lostPower()) {
Serial.println("RTC lost power. Setting to compile time.");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop() {
DateTime now = rtc.now();
// Formater la date/heure
char timeStr[20];
sprintf(timeStr, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
Serial.print("Time: ");
Serial.println(timeStr);
// Écrire dans le fichier de log (simulant une prise de mesure)
logFile = LittleFS.open("/data.log", "a");
if (logFile) {
logFile.print(now.year());
logFile.print("-");
logFile.print(now.month());
logFile.print("-");
logFile.print(now.day());
logFile.print(" ");
logFile.println(timeStr);
logFile.close();
Serial.println("Logged to Flash.");
}
delay(5000); // Log toutes les 5 secondes
}