🛠 Journaliser un capteur dans LittleFS

ESP32 (original, classe ESP32-WROOM-32) · intermediaire · Schéma : IMG-esp32-intermediaire-3-littlefs-logs-capteur.svg — Puce flash 4 Mo de l'ESP32 découpée en partitions, un fichier CSV de logs s'ajoutant dans la partition LittleFS

Objectifs

Stocker des mesures sur la flash interne de 4 Mo de l'ESP32 sans carte SD, avec le système de fichiers LittleFS (successeur officiel de SPIFFS, désormais déprécié). Vous apprendrez à formater, créer une arborescence de dossiers, ouvrir un fichier en append et écrire un CSV de logs.

Matériel

Code complet

#include <LittleFS.h>

void ecrireLigne(const String& ligne) {
  File f = LittleFS.open("/logs/capteur.csv", "a");
  if (!f) { Serial.println(F("Ouverture en échec")); return; }
  f.println(ligne);
  f.close;
}

void setup {
  Serial.begin(115200);
  if (!LittleFS.begin(true)) {   // true = formater si la partition est vide
    Serial.println(F("Formatage LittleFS..."));
    LittleFS.begin(true);
  }
  if (!LittleFS.exists("/logs")) LittleFS.mkdir("/logs");
}

void loop {
  float t = 20.0f + 5.0f * sin(millis / 30000.0f); // capteur simule
  ecrireLigne(String(millis / 1000) + "," + String(t, 2));
  File f = LittleFS.open("/logs/capteur.csv", "r");
  String derniere = f.readStringUntil('\n');
  f.close;
  Serial.printf("Derniere ligne du CSV : %s\n", derniere.c_str);
  delay(5000);
}

Vérification attendue

La console affiche la première ligne du CSV pendant que le fichier grossit en append ; après plusieurs minutes, /logs/capteur.csv contient une ligne « secondes,température » toutes les 5 secondes. Le contenu survit à une coupure d'alimentation.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels