L’enregistrement de données (suite)

Pendant semaine 9, on a fait une simulation d’enregistrement de données dans l’ESP32 en utilisant les tableaux. Cette approche n’est pas pratique car la mémoire utilisée est volatile, donc on peut facilement perdre les données s’il y a une coupure de courant. Pour remédier ce problème, on utilise le SPIFFS qui permet de sauvegarder les données de manière permanente, et ça nous donne une capacité totale de 1.5 MB.

La taille de fichier

Actuellement, le format de fichier est .txt. Chaque ligne de fichier contient une valeur, et chaque caractère occupe une mémoire d’une byte. Si on veut sauvegarder deux valeurs (25.45, et 26.75), on aura besoins de 11 bytes car « 25.45 », c’est 5 caractères (5 bytes), on a 1 byte pour aller dans une nouvelle ligne, et d’autres 5 bytes pour « 26.75 », pour donner un total de 11 bytes. On généralise cela par une formule suivante.

T=(N×nb)-1

T est la taille de fichier, N le nombre de valeurs à sauvegarder, nb est le nombre de bytes pour chaque valeur, et aller dans une nouvelle ligne.

Exemple :

Si on veut sauvegarder les données pendant 24 heures avec une période de 2 minutes. Que vaut la taille de fichier supposant les valeurs entre 10.00 et 99.99?

Réponse :

24 heures = 24 * 60 minutes = 1440 minutes.

Valeurs à sauvegarder N = 1440/2 = 720 valeurs.

On divise par 2 car on utilise une période de 2 minutes.

Si on suppose que toutes les valeurs ont 5 caractères, nb = 5 + 1 (pour nouvelle ligne) = 6 bytes.

T = 720*6 – 1 = 4319 bytes = 4.319 KB.

Vous trouverez le code compatible avec le M5stack BASIC CORE ici.

master_m5_ble_spiffs.zip

Il faut bien noter que la période d’enregistrement utilisée et la durée sont des petites valeurs en secondes pour pouvoir effectuer les tests rapidement, on peut changer ses valeurs afin d’adapter à la situation.