toughc5_rtc_battery_log.ino

M5Stack ToughC5 Weatherproof IoT Dev Kit (ESP32-C5) · File : toughc5_rtc_battery_log.ino · Language : C++ (Arduino) · Use case : Lire l'heure du RTC RX8130CE et sauvegarder des données dans la Flash avec gestion de la batterie.

Uses the RX8130CE RTC to timestamp events and save them to the LittleFS file system.

Requires 'RTClib' and 'LittleFS' libraries. The RX8130CE RTC is on the internal I2C bus. Ensure the CR2032 battery is inserted to maintain time during sleep. Data is written to a text file on 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
}

← Back to the board