🛠 Surveiller la température et la fréquence de la Zero 2 W
Objetivos
Aprender a leer el estado térmico y de frecuencia de la placa: la Zero 2 W concentra un quad Cortex-A53 en 65 × 30 mm sin ventilador, con capas de cobre gruesas que actúan como disipador. El umbral de *throttling* es de 85 °C (reducción progresiva desde los 80 °C). Vas a medir, limitar y verificar el comportamiento bajo carga.
Material
- 1 Raspberry Pi Zero 2 W (conectada por SSH)
- Opcional: un pequeño disipador adhesivo (las carcasas cerradas agravan el aumento de temperatura)
- Una carga de prueba: sysbench o un simple bucle de cálculo
Código completo
# Température du SoC (mesure côté GPU, la plus juste sur les kernels Pi) :
vcgencmd measure_temp # temp=48.3'C
# Fréquences actuelles des cœurs :
vcgencmd measure_clock arm # en Hz (1000000000 = 1 GHz nominal)
# Bits d'état : 0x0 = tout va bien ; bit 0 = sous-tension,
# bit 18 = bridage thermique déjà survenu depuis le boot :
vcgencmd get_throttled
# Échantillonnage toutes les 2 s pendant une charge :
nproc
seq 4 | xargs -P4 -I{} sh -c 'yes > /dev/null &'
while true; do
printf "%s %s %s\n" "$(date +%T)" \
"$(vcgencmd measure_temp | cut -d= -f2)" \
"$(vcgencmd measure_clock arm | cut -d= -f2)"
sleep 2
done
# Stopper la charge : Ctrl-C puis « pkill yes »
Verificación esperada
En reposo, alrededor de 40–50 °C; bajo carga en los 4 núcleos, la temperatura sube notablemente. A 20 °C de temperatura ambiente, una Zero 2 W sin carcasa aguanta un *stress test* indefinidamente sin limitación (documentado por la fundación) — pero en una carcasa cerrada o sin disipador en una habitación calurosa, se observa cómo la frecuencia cae por debajo de 1 GHz y « get_throttled » muestra el bit 18. La refrigeración pasiva opcional se convierte entonces en una decisión de rendimiento, no de seguridad.
Errores frecuentes
- Confiar en /sys/class/thermal, que puede ir lento: « vcgencmd measure_temp » habla directamente con la GPU, es la referencia en este SoC.
- Confundir throttled=0x0 (nunca limitado desde el arranque) con el estado instantáneo: los bits de historial solo se borran al reiniciar.
- Creer que el bit 0 (subtensión) es fiable en la Zero: la gama Zero NO tiene detección de subtensión por hardware — 0x0 no prueba que la alimentación sea correcta.
- Pegar un disipador en el componente equivocado: el calor proviene del paquete RP3A0 (el SoC SiP), no del regulador.
- Dejar « yes » ejecutándose en segundo plano después de la prueba: la placa se calienta innecesariamente y la tarjeta SD se desgasta.
Otros tutoriales para esta placa
- Premier démarrage de la Zero 2 W sans écran (headless)
- Se connecter au Wi-Fi (et comprendre les limites 2,4 GHz / WPA2)
- GPIO en Python : LED et bouton avec gpiozero
- Le tour de passe-passe « clé USB Linux » : Ethernet sur USB (g_ether)
- Serveur de blocage de pub réseau avec Pi-hole
- Remettre une Zero 2 W en état de boot : usbboot et boot files
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash