🛠 Surveiller température et fréquence du BCM2835

Raspberry Pi Model B (Rev 1, 2012) — Ficha de placa · avance · Schéma : IMG-model-b-rev1-avance-2-modelb1-surveillance-thermique.svg — Boîtier du Model B Rev 1 avec son dissipateur, sonde de température, jauges vcgencmd mesure_temp et mesure_clock arm, graphique d'historique avec seuil de throttling à 85 °C

Objetivos

Establecer una monitorización continua del SoC BCM2835: temperatura, frecuencia ARM actual e indicador de estrangulamiento (throttling). El firmware limita la CPU por encima de 85 °C o en caso de subtensión detectada — sin corte franco documentado para esta placa. Utilizará vcgencmd, registrará en una base de texto e interpretará el indicador get_throttled bit a bit.

Material

Código completo

#!/bin/sh
# surveil.sh - journalise temperature, clock et drapeau de bridage
# format: horodatage;temp_c;arm_hz;throttled_hex
while true; do
  T=$(vcgencmd measure_temp | sed 's/temp=//;s/.C//')
  C=$(vcgencmd measure_clock arm | cut -d= -f2)
  V=$(vcgencmd get_throttled | cut -d= -f2)
  echo "$(date -Is);${T};${C};${V}" >> /var/log/pisoc.csv
  sleep 30
done

# Lecture rapide :
# vcgencmd measure_temp      -> 'temp=52.3'C (bridage au-dela de 85 C)
# vcgencmd measure_clock arm -> 700000000 au repos nominal
# vcgencmd get_throttled     -> 0x0 = rien a signaler
#   bit 0 sous-tension | bit 2 sous-tension subie | bit 3 bridage thermique
#   bit 4 bridage sous-tension | bits 16-19 = memoire des evenements passes

# Provoquer la montee (test seulement, 256 MB de RAM : pas de stress --vm) :
stress --cpu 1 --timeout 120

Verificación esperada

tail -f /var/log/pisoc.csv muestra temperaturas coherentes (30-60 °C en reposo según la caja). Durante stress --cpu 1, la temperatura sube y la frecuencia medida puede bajar de 700 MHz si se alcanza el umbral de 85 °C; get_throttled muestra entonces un indicador distinto de cero con el bit 3 (estrangulamiento térmico) o el bit 0 (subtensión) activado.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales