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 W (RP2350 + radio Wi-Fi 2,4 GHz) 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 W » (BOOTSEL + .uf2), copier le script via Thonny. Comme sur la Pico W, la LED utilisateur n'est pas sur un GPIO : utiliser une LED externe pour les sorties.
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".