journalisation.py
MicroPython expose la flash interne comme un système de fichiers : ce script y écrit un CSV de température toutes les 5 s, en mode append pour ne jamais écraser les données. Le fichier se récupère ensuite comme une clé USB.
Matériel requis
Une Raspberry Pi Pico 2 (RP2350 double Cortex-M33 @ 150 MHz) avec MicroPython installé, alimentée par USB. Aucun composant externe ; la flash de la carte sert de stockage (quelques Mo disponibles).
Câblage
Aucun câblage : mesures internes uniquement. Ajouter un capteur (DHT, ADC) en gardant le même format de ligne.
Fonctionnement
open(FICHIER, "a") ouvre en ajout ; chaque ligne contient les secondes depuis le démarrage et la température. os.stat()[6] donne la taille pour surveiller le remplissage.
Exécution
Installer le MicroPython « Pico 2 » (maintenir BOOTSEL, brancher l'USB, déposer le .uf2), puis copier le script via Thonny. Démarrage automatique avec le nom main.py.
Variantes
Ajouter une rotation (renommer journal.csv en journal-1.csv au-delà de 100 Ko), ou horodater avec une horloge RTC externe type DS3231.
journalisation.py
# Journal CSV dans le systeme de fichiers interne (flash) de la carte.
import time
import os
import machine
FICHIER = "journal.csv"
ENTETE = "timestamp,temperature_c
"
def temperature():
adc = machine.ADC(4) # capteur thermique interne
v = adc.read_u16() * 3.3 / 65535.0
return 27.0 - (v - 0.706) / 0.001721
# Creer le fichier avec l'entete s'il n'existe pas.
if FICHIER not in os.listdir():
with open(FICHIER, "w") as f:
f.write(ENTETE)
print("Journalisation toutes les 5 s")
while True:
t = temperature()
horodatage = time.ticks_ms() // 1000
with open(FICHIER, "a") as f: # append : pas d'ecrasement
f.write("%d,%.2f
" % (horodatage, t))
taille = os.stat(FICHIER)[6]
print("+1 ligne (%d octets au total)" % taille)
time.sleep(5)
# Recuperer le CSV : ouvrir le lecteur de la carte ou "Thonny > Fichiers".