🛠 Premier script Python : inventaire du système
Objetivos
Escribir un primer script de Python que muestre el inventario del Raspberry Pi 3 A+: SoC BCM2837B0 (4 núcleos Cortex-A53 @ 1,4 GHz), 512 MB de RAM compartida CPU/GPU, WiFi 2,4/5 GHz y la hora — la placa no tiene reloj de tiempo real, la hora proviene de NTP a través del WiFi en cada arranque.
Material
- Raspberry Pi 3 A+ con Raspberry Pi OS Lite y conexión WiFi establecida (este modelo no tiene puerto Ethernet)
- Un editor (
nano) por SSH; Python 3 está preinstalado
Código completo
#!/usr/bin/env python3
# inventaire.py — inventaire matériel du 3 Model A+
import platform, re, shutil, subprocess, datetime
def cpu:
txt = open("/proc/cpuinfo").read
model = re.search(r"Model\s*:\s*(.+)", txt)
ncpu = len(re.findall(r"processor", txt))
return (model.group(1).strip if model else "?"), ncpu
def temp:
out = subprocess.run(["vcgencmd", "measure_temp"], capture_output=True, text=True)
return out.stdout.strip.removeprefix("temp=")
mod, n = cpu
mem = shutil.disk_usage("/")
print("Modele :", mod) # attendu : Raspberry Pi Model B+
print("Coeurs CPU :", n) # attendu : 4 (Cortex-A53 @ 1,4 GHz)
print("RAM : 512 Mo LPDDR2 (partagee CPU/GPU)")
print("Temp SoC :", temp)
print("Heure :", datetime.datetime.now, "(NTP, pas de RTC embarque)")
print(f"SD racine : {mem.used//2**30} Go / {mem.total//2**30} Go")
chmod +x inventaire.py && ./inventaire.py
Verificación esperada
El script muestra un modelo de Raspberry Pi, 4 procesadores, una temperatura típica de 35–50 °C y una fecha actualizada solo si el WiFi/NTP ha sincronizado el reloj (de lo contrario, una fecha cercana al 1 de enero de 1970).
Errores frecuentes
- Hora incorrecta tras un reinicio sin conexión: no hay RTC ni pila, se necesita NTP o esperar la conexión WiFi.
vcgencmdno encontrado: comando exclusivo de Raspberry Pi OS, ausente en distribuciones de terceros (Ubuntu, Alpine).- Olvidar la línea
#!/usr/bin/env python3y elchmod +xantes de ejecutar./inventaire.py. - Confundir la RAM (512 MB) y el espacio en la tarjeta SD: son dos cifras muy diferentes.
Otros tutoriales para esta placa
- Allumer une LED en C avec libgpiod sur le GPIO 40 broches
- Bouton poussoir et retour console avec gpiozero
- Variation d'intensité d'une LED avec le PWM matériel
- Capteur I2C : température et pression avec BME280
- Connexion WiFi station et administration en SSH
- Démarrage SD/USB et récupération d'une carte qui ne boot plus
Ejemplos de código para esta placa
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython