🛠 Premier script Python : rapport d'information système
Objectifs
Écrire, rendre executable et lancer un vrai script Python 3 : arguments, fonction, appel de vcgencmd pour lire la temperature du SoC et la fréquence DVFS courante. C'est la base de tous les tutos suivants.
Materiel
- Raspberry Pi 4B avec Raspberry Pi OS (Bureau ou Lite)
- Un terminal (SSH ou local)
- Aucune électronique nécessaire
Code complet
#!/usr/bin/env python3
"""info.py - petit rapport système du Pi 4B."""
import argparse
import subprocess
def vcgencmd(arg):
r = subprocess.run(["vcgencmd", arg], capture_output=True, text=True)
return r.stdout.strip or "indisponible"
def main:
p = argparse.ArgumentParser(description="Rapport système Pi 4B")
p.add_argument("--temp", action="store_true", help="temperature du SoC")
a = p.parse_args
print("Firmware :", vcgencmd("version").splitlines[0])
if a.temp:
print("Temperature :", vcgencmd("measure_temp"))
print("Etranglement :", vcgencmd("get_throttled"))
print("Memoire :", vcgencmd("get_config arm_freq"))
if __name__ == "__main__":
main
Verification attendue
chmod +x info.py puis ./info.py --temp : une ligne Firmware, Temperature : temp=42.0'C environ, get_throttled 0x0 (aucun bridage) et arm_freq=1500 par defaut sur BCM2711.
Erreurs frequentes
- Oublier le shebang ou chmod +x : ./info.py renvoie Permission denied.
- Lancer avec python (Python 2 absent de Bookworm) au lieu de python3.
- vcgencmd introuvable : vous etes sur une autre distribution ou une VM, pas sur Raspberry Pi OS.
- Indentation InconsistantIndentationError : melange d'espaces et de tabulations.
- Le séparateur d'arguments : --temp doit précéder l'exécution, pas l'éditeur.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython