Controllare la temperatura del Raspberry Pi
I comandi per visualizzare la temperatura del processore e chip video possono essere impartiti direttamente dal terminale della Raspberry oppure tramite terminale remoto SSH.
Se interessa usare una Raspberry per rilevare e memorizzare temperature ed umidità ambientali o liquidi, in questo sito è presente una guida ai sensori esterni di temperatura DHT22 per ambienti interni e DS18B20 per ambienti esterni o liquidi.
I simboli che vengono visualizzati a schermo dal Raspberry in caso di temperatura troppo elevata sono due, un termometro con il mercurio a metà.
In questo caso la temperatura è maggiore di 80° C e minore di 85° C.
Ed un termometro con i mercurio a fondo scala, in questo caso la temperatura supera gli 85° C, spengere la Raspberry per evitare danneggiamenti.
E’ possibile installare dei dissipatori termici per CPU e GPU cheaiutano il chip a dissipare meglio il calore.
Visualizzare la temperatura:
Con questa istruzione viene visualizzata a schermo la temperatura della CPU:
/opt/vc/bin/vcgencmd measure_temp
Anteponendo il comando WATCH, la temperatura verrà aggiornata automaticamente ogni 2 secondi:
watch /opt/vc/bin/vcgencmd measure_temp
Visualizzare versione e tensioni:
/opt/vc/bin/vcgencmd version /opt/vc/bin/vcgencmd measure_temp /opt/vc/bin/vcgencmd measure_volts core /opt/vc/bin/vcgencmd measure_volts sdram_c /opt/vc/bin/vcgencmd measure_volts sdram_i /opt/vc/bin/vcgencmd measure_volts sdram_p
Creare uno script in bash
Possiamo creare un bash script per visualizzare la temperatura della CPU e della GPU, ossia del processore e del chip video. Lo script che ho creato è molto semplice ed istruttivo, ed è possibile modificarlo a piacimento con facilità.
Ho usato un IF THEN ELSE ed un SELECT CASE, per riconoscere le condizioni e visualizzare il messaggio.
prima cosa apriamo NANO l’editor di testo e digitiamo:
nano temperatura-pi.sh
trascriviamo od incolliamo il seguente codice
#!/bin/bash # Script: temperatura-pi.sh # Purpose: Visualizzare la temperatura di ARM CPU e GPU su Raspberry Pi 2/3 # Author: Lorenzo IZ0KBA - www.iz0kba.it/raspberry - under GPL v2.x+ # ------------------------------------------------------- cpu=$(</sys/class/thermal/thermal_zone0/temp) gpu=$(/opt/vc/bin/vcgencmd measure_temp) echo "--------------------------------------------" echo "$(date) @ $(hostname)" echo "--------------------------------------------" if (( ${gpu:5:2} \> 80)); then echo "Temperatura GPU elevata! => ${gpu:5}"; elif (( ${gpu:5:2} \> 64)); then echo "Temperatura GPU alta => ${gpu:5}"; else echo "Temperatura GPU nei limiti => ${gpu:5}"; fi case $((cpu/1000)) in 90) echo "Allarme!!! Temperatura CPU oltre i limiti => $((cpu/1000))'C";; 8[5-9]) echo "Temperatura CPU molto elevata! => $((cpu/1000))'C";; 8[0-4]) echo "Temperatura CPU elevata! => $((cpu/1000))'C";; 7?) echo "Temperatura CPU alta => $((cpu/1000))'C";; 6?) echo "Temperatura CPU medio alta => $((cpu/1000))'C";; *) echo "Temperatura CPU nei limiti => $((cpu/1000))'C";; esac
a questo punto salviamo il file, CTRL+O, ed usciamo CTRL+X
Impostiamo ora i permessi:
chmod +x temperatura-pi.sh
Adesso è possibile avviare lo script:
./temperatura-pi.sh
Dovremmo vedere a schermo la data e le temperature, un esempio:
------------------------------------- dom 12 Mar 19:14:10 CET @ raspberrypi ------------------------------------- Temperatura GPU nei limiti => 48.3'C Temperatura CPU nei limiti => 48'C
Per eseguire lo script ogni X secondi, bisognerà anteporre il comando in esempio, ove 10 sono i secondi di intervallo. Per fermare lo script premere CTRL+C:
watch -n 10 ./temperatura-pi.sh
Un commento
Filippo
Grazie, funziona benissimo, lo uso su un Raspberry usato come Cloud per monitorare le temperature!