journal.py

micro:bit V2 (BBC micro:bit v2) · Fichier : journal.py · Langage : MicroPython · Usage : Journaliser température et lumière en série vers un PC

La micro:bit écrit une ligne CSV toutes les 2 s sur sa liaison série (lumière ambiante, pas, cap de boussole, horodatage). Le moniteur série copie le flux dans un fichier, ouvrable dans un tableur pour tracer les courbes.

Matériel requis

Une BBC micro:bit V2 (nRF52833, matrice 5×5 LED, boutons A/B, accéléromètre + boussole, microphone et haut-parleur) alimentée par USB ou pile. Un PC avec un moniteur série (python.microbit.org, Thonny ou PuTTY).

Câblage

Aucun câblage : la liaison série passe par le câble USB (profil CDC).

Fonctionnement

uart.init fixe le débit ; print() envoie une ligne CSV ; ticks_diff horodate sans débordement. read_light_level et get_steps fournissent les colonnes sans capteur externe.

Exécution

Ouvrez python.microbit.org, collez le programme MicroPython et envoyez-le vers la carte (la micro:bit apparaît comme lecteur MICROBIT). Appuyez sur reset pour relancer.

Variantes

Remplacez la série par le radio pour un nœud sans fil, ou ajoutez capteur externe I2C (BME688) sur pin19/pin20.

journal.py

# Journal CSV sur la liaison serie (BLE/USB) : temperature + lumiere.
# Ouvrir le moniteur serie de python.microbit.org ou Thonny (115200).
from microbit import *
import time

uart.init(baudrate=115200)
PERIODE_MS = 2000
t_entree = time.ticks_ms()

print('horodatage_ms;lumiere;pas;cap_boussole')
while True:
    lux = display.read_light_level()      # 0..255
    pas = accelerometer.get_steps()
    cap = int(compass.heading())          # 0..359 degres
    horodatage = time.ticks_diff(time.ticks_ms(), t_entree)
    print('%d;%d;%d;%d' % (horodatage, lux, pas, cap))
    display.show(Image.HAPPY if lux > 50 else Image.SAD)
    sleep(PERIODE_MS)

# Copier la console serie dans un fichier .csv puis ouvrir dans un
# tableur pour tracer les courbes.
# Astuce : sous Windows, puTTY(mode serie) ou l'app 'Serial' de
# python.microbit.org enregistre automatiquement le flux complet.
# Le separateur point-virgule evite les souci avec les tableurs
# francais qui utilisent deja la virgule comme separateur decimal.

← Retour à la fiche