toughc5_rtc_battery_log.ino

Kit de développement IoT étanche M5Stack ToughC5 (ESP32-C5) · Fichier : toughc5_rtc_battery_log.ino · Langage : C++ (Arduino) · Usage : Lire l'heure du RTC RX8130CE et sauvegarder des données dans la Flash avec gestion de la batterie.

Utilise le RTC RX8130CE pour horodater des événements et les sauvegarder dans le système de fichiers LittleFS.

Nécessite les bibliothèques 'RTClib' et 'LittleFS'. Le RTC RX8130CE est sur le bus I2C interne. Assurez-vous que la pile CR2032 est insérée pour maintenir l'heure en veille. Les données sont écrites dans un fichier texte sur la 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
}

← Retour à la fiche