Raspberry PI

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

5 commenti

  • Lancerotto Pietro Bruno ( IZ3ZID )

    Volevo segnale che il percorso
    /opt/vc/bin/vcgencmd measure_temp
    su PI-OS recente ( 64 bit ) è cambiato in
    /usr/bin/vcgencmd measure_temp

    Sistemato questo mi ritorna un errore sulle righe con il \>
    if (( ${gpu:5:2} \> 80 )); then

    riga 12: ((: 36 \> 80 : errore di sintassi: operatore aritmetico non valido (il token dell’errore è “\> 80 “)

    Io ci smanetto un po’ ma non ho grandi conoscenze slla esatta sintassi degli script

    Ti ringrazio per un eventuale aiuto

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *