journalisation.py

RP2040 (placa genérica / chip) · Archivo : journalisation.py · Lenguaje : Python · Uso : Journaliser des mesures en CSV dans la mémoire flash de la carte

MicroPython expone la flash interna como sistema de archivos: este script escribe allí un CSV de temperatura cada 5 s, en modo append para no sobrescribir nunca los datos. El archivo se recupera luego como un pendrive.

Hardware

Una placa genérica con microcontrolador RP2040 (doble Cortex-M0+) programada en MicroPython. Sin componentes externos; la flash de la placa es el almacenamiento (unos pocos MB disponibles).

Cableado

Sin cableado: solo medidas internas. Añade un sensor (DHT, ADC) manteniendo el mismo formato de línea.

Funcionamiento

open(FICHIER, "a") abre en modo añadir; cada línea contiene segundos desde el arranque y la temperatura. os.stat()[6] da el tamaño para vigilar el llenado.

Ejecución

Graba MicroPython vía BOOTSEL (archivo .uf2) y copia el script en la unidad de la placa. Comprueba el pin del LED de usuario de tu placa (a menudo GP25) y adáptalo si hace falta.

Variantes

Añade rotación (renombrar journal.csv a journal-1.csv al pasar de 100 KB), o marca la hora con un RTC externo tipo 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".

← Volver a la ficha