Raspberry Pi Temperation Monitor

Raspberry Pi Temperation Monitor
Raspberry Pi è un potente computer a scheda singola (SBC). Può essere usato per svolgere molti compiti sofisticati. Ma ciò aumenterà la temperatura del processore dei dispositivi Raspberry Pi. Che non va bene. Le prestazioni di Raspberry Pi SBC ne soffriranno a causa della temperatura. Questo è anche noto come throttling termico.

Se la temperatura del processore del tuo Raspberry Pi è superiore a 80 gradi Celsius, vedrai un'icona del termometro nell'angolo in alto a destra dello schermo. Ufficialmente, la Raspberry Pi Foundation raccomanda che la temperatura del tuo dispositivo Raspberry Pi sia inferiore a 85 gradi Celsius affinché funzioni correttamente. Questo è il limite massimo. Ma inizierebbe a limitare a 82 gradi Celsius.

In questo articolo, ti mostrerò come monitorare la temperatura del tuo Raspberry Pi. Userò il sistema operativo Raspbian sul mio dispositivo Raspberry Pi 3 Model B. Ma dovrebbe funzionare su qualsiasi SBC Raspberry Pi con il sistema operativo Raspbian installato.

Misurare la temperatura di Raspberry Pi SBC:

Puoi misurare la temperatura centrale del tuo dispositivo Raspberry Pi con il seguente comando:

$ vcgencmd misura_temp

L'attuale temperatura centrale è 48.3 gradi Celsius come puoi vedere nella sezione marcata dello screenshot seguente.

Come puoi vedere, ogni volta che eseguo, il comando mostra un valore di temperatura diverso.

Analizzare i dati di temperatura:

I dati di temperatura che otteniamo dal VcGencmd Il comando è una stringa. Non puoi eseguire alcun calcolo su di esso. Possiamo facilmente usare un'espressione regolare per estrarre solo i dati di temperatura ed eseguire qualsiasi tipo di calcolo su di esso.

Se si desidera utilizzare i dati di temperatura in uno script di shell bash, è possibile estrarre i dati di temperatura con egrep comando come segue:

$ vcgencmd misura_temp | egrep -o '[0-9]*\.[0-9]*'

Come puoi vedere, vengono stampati solo i dati di temperatura. Non c'è niente prima o dopo.

Puoi usarlo sul tuo script di shell (diciamo print_temp.sh) come segue:

$ nano print_temp.sh

Qui, sulla riga 3, ho impostato il temp variabile ai dati di temperatura analizzati che ottengo dal VcGencmd E grep comando.

Nella riga 5, ho usato eco Per stampare il contenuto del temp variabile sullo schermo.

La riga 1 viene utilizzata per dire a Linux che lo script dovrebbe essere eseguito /Bin/Bash Per impostazione predefinita.

Ora, rendi eseguibile lo script con il seguente comando:

$ chmod +x print_temp.sh

Ora, esegui lo script come segue:

$ ./print_temp.sh

Come puoi vedere, l'output desiderato è stampato sullo schermo.

Scrivere uno script di monitoraggio della temperatura Raspberry Pi:

Ora che possiamo analizzare i dati di temperatura che otteniamo dal VcGencmd comando, possiamo facilmente scrivere uno script di monitoraggio della temperatura per Raspberry Pi. Lo script di monitoraggio della temperatura stampa il timestamp corrente e la temperatura del core ogni secondo sullo schermo in modo ben formattato.

Innanzitutto, crea un nuovo script tempmon.sh con il seguente comando:

$ touch tempmon.sh

Ora, modifica il tempmon.sh Script con il seguente comando:

$ nano tempmon.sh

Ora, digita le seguenti righe di codici e salva il file con + X e poi premere y seguito da .

Qui, sulla riga 4, printf viene utilizzato per stampare le stringhe Timestamp e Temp (DEGC) come colonna di larghezza fissa.

Nella riga 5, ho usato printf Ancora una volta per stampare una linea tratteggiata solo per rendere l'output più leggibile e accattivante.

Sulla riga 7-13, ho eseguito un ciclo infinito per stampare i dati di temperatura ogni secondo.

Sulla riga 9, ho memorizzato i dati di temperatura analizzati sul temp variabile.

Nella riga 10, ho archiviato i dati Timestamp che ho ricevuto dal data comando sul timestamp variabile.

Sulla riga 11, ho stampato la data e l'ora in formato timestamp e i dati di temperatura in formato colonna di larghezza fissa.

Nella riga 12, ho usato il comando sleep 1 per tenere l'esecuzione dello script per un secondo. Successivamente, il ciclo continuerà.

Ora, crea la sceneggiatura tempmon.sh eseguibile con il seguente comando:

$ chmod +x tempmon.sh

Infine, esegui lo script tempmon.sh con il seguente comando:

$ ./tempmon.sh

Come puoi vedere, lo script del monitor della temperatura funziona perfettamente. Sta stampa i dati di temperatura ogni secondo.

Come puoi vedere, man mano che ho aumentato il carico del sistema, la temperatura è leggermente aumentata.

Se si desidera interrompere lo script di monitoraggio della temperatura, premere + C. Il monitoraggio della temperatura non è più in esecuzione come puoi vedere nello screenshot seguente.

Ora che lo script di monitoraggio della temperatura funziona, copialo /usr/cestino directory. In questo modo, puoi eseguirlo come qualsiasi altro comando Linux.

Per copiare lo script tempmon.sh al /usr/cestino Directory, eseguire il seguente comando:

$ sudo cp tempmon.sh/usr/bin/tempmon

Come puoi vedere, posso eseguire lo script di monitoraggio della temperatura proprio mentre eseguo i comandi standard Linux.

Modifica tempmon Per la stampa dei dati di temperatura in Fahrenheit:

È possibile convertire facilmente i dati di temperatura da Celsius in Fahrenheit.

La formula ampiamente conosciuta per il calcolo delle temperature in Fahrenheit da Celsius è,

F = (9/5)* c + 32
O
F = 1.8 * c + 32

Ma il problema è che Bash Shell non ha le funzioni necessarie per eseguire calcoli di punti galleggianti. Quindi, devi fare affidamento su alcuni altri programmi come avanti Cristo.

avanti Cristo non è installato su raspbian per impostazione predefinita. Ma puoi facilmente installarlo con il seguente comando:

$ sudo APT Installa bc

avanti Cristo dovrebbe essere installato.

Ora, devi modificare lo script di monitoraggio della temperatura e effettuare i calcoli necessari per convertire la temperatura in Fahrenheit da Celsius con avanti Cristo.

Modificare il tempmon.sh Script con il seguente comando:

$ nano tempmon.sh

Ora, apporta le modifiche contrassegnate nello screenshot seguente.

Qui, sulla riga 4, ho stampato Temp (f) invece di Temp (degc).

Nella riga 9, ho cambiato la variabile da temp A tempc.

Nella riga 10, ho aggiunto il risultato della Celsius alla conversione di Fahrenheit in una variabile tempf.

Infine, ho stampato il valore di tempf variabile anziché temp sulla riga 12.

Ora, esegui lo script come segue:

$ ./tempmon

Come puoi vedere, la temperatura è stampata in unità Fahrenheit.

È così che monitori la temperatura in Raspberry Pi. Grazie per aver letto questo articolo.