🛠 Premier script Python : rapport d'information système
Objetivos
Escribir, hacer ejecutable y lanzar un script real de Python 3: argumentos, función, llamada a vcgencmd para leer la temperatura del SoC y la frecuencia DVFS actual. Es la base de todos los tutoriales siguientes.
Material
- Raspberry Pi 4B con Raspberry Pi OS (Bureau o Lite)
- Un terminal (SSH o local)
- No se necesita electrónica
Código completo
#!/usr/bin/env python3
"""info.py - petit rapport systeme 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 systeme 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
Verificación esperada
chmod +x info.py y luego ./info.py --temp : una línea Firmware, Temperature : temp=42.0'C aproximadamente, get_throttled 0x0 (sin limitación) y arm_freq=1500 por defecto en BCM2711.
Errores frecuentes
- Olvidar el shebang o chmod +x : ./info.py devuelve Permission denied.
- Ejecutar con python (Python 2 no está en Bookworm) en lugar de python3.
- vcgencmd no encontrado : está en otra distribución o en una VM, no en Raspberry Pi OS.
- Indentation InconsistantIndentationError : mezcla de espacios y tabulaciones.
- El separador de argumentos : --temp debe preceder a la ejecución, no al editor.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython