Monitor de temperatura Raspberry Pi

Raspberry Pi Temperature Monitor



Raspberry Pi és un potent ordinador de placa única (SBC). Es pot utilitzar per fer moltes tasques sofisticades. Però fer-ho augmentarà la temperatura del processador dels dispositius Raspberry Pi. Cosa que no és bona. El rendiment del Raspberry Pi SBC patirà a causa de la temperatura. Això també es coneix com a limitació tèrmica.

Si la temperatura del processador del vostre Raspberry Pi supera els 80 graus centígrads, veureu una icona de termòmetre a l'extrem superior dret de la pantalla. Oficialment, la Raspberry Pi Foundation recomana que la temperatura del dispositiu Raspberry Pi sigui inferior a 85 graus centígrads perquè funcioni correctament. Aquest és el límit màxim. Però començaria a accelerar-se a 82 graus centígrads.







En aquest article, us mostraré com controlar la temperatura del vostre Raspberry Pi. Faré servir el sistema operatiu Raspbian al meu dispositiu Raspberry Pi 3 Model B. Però hauria de funcionar en qualsevol Raspberry Pi SBC amb el sistema operatiu Raspbian instal·lat.



Podeu mesurar la temperatura central del dispositiu Raspberry Pi amb l'ordre següent:



$vcgencmd mesura_temp

La temperatura actual del nucli és de 48,3 graus centígrads, tal com es pot veure a la secció marcada de la captura de pantalla següent.





Com podeu veure, cada vegada que executo l'ordre mostra un valor de temperatura diferent.



Analitzar les dades de temperatura:

Les dades de temperatura que obtenim del vcgencmd ordre és una cadena. No hi podeu fer cap càlcul. Podem utilitzar l’expressió regular fàcilment per extreure només les dades de temperatura i realitzar qualsevol tipus de càlcul.

Si voleu utilitzar les dades de temperatura en un script de shell Bash, podeu extreure les dades de temperatura amb egrep ordre de la següent manera:

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

Com podeu veure, només s’imprimeixen les dades de temperatura. No hi ha res abans ni després.

Podeu utilitzar-lo al vostre script de shell (diguem-ne print_temp.sh ) com segueix:

$nanoprint_temp.sh

Aquí, a la línia 3, he definit el fitxer temp variable a les dades de temperatura analitzades que obtinc de vcgencmd i adherència comandament.

A la línia 5, he utilitzat trobo per imprimir el contingut del fitxer temp variable a la pantalla.

La línia 1 s'utilitza per indicar a Linux que s'hauria d'executar l'script amb / bin / bash per defecte.

Ara, feu que l'script sigui executable amb l'ordre següent:

$chmod+ X print_temp.sh

Ara, executeu l'script de la següent manera:

$./print_temp.sh

Com podeu veure, la sortida desitjada s’imprimeix a la pantalla.

Escriptura d’un script de control de temperatura de Raspberry Pi:

Ara que podem analitzar les dades de temperatura que obtenim del vcgencmd , podem escriure fàcilment un script de control de temperatura per a Raspberry Pi. El guió de control de temperatura imprimirà la marca de temps actual i la temperatura del nucli cada segon a la pantalla de forma ben formatada.

En primer lloc, creeu un script nou tempmon.sh amb l'ordre següent:

$tocartempmon.sh

Ara, editeu el fitxer tempmon.sh script amb l'ordre següent:

$nanotempmon.sh

Ara, escriviu les línies de codis següents i deseu el fitxer amb + x i després premeu i Seguit per .

Aquí, a la línia 4, printf s'utilitza per imprimir les cadenes TIMESTAMP i TEMP (degC) com a columna d'amplada fixa.

A la línia 5, he utilitzat printf torneu a imprimir una línia discontínua per fer la sortida més llegible i atractiva.

A la línia 7-13, vaig executar un bucle infinit per imprimir les dades de temperatura cada segon.

A la línia 9, emmagatzemava les dades de temperatura analitzades al fitxer temp variable.

A la línia 10, emmagatzemava les dades de marca de temps que he obtingut de data ordre al fitxer marca de temps variable.

A la línia 11, vaig imprimir la data i l'hora en format de marca de temps i les dades de temperatura en format de columna d'amplada fixa.

A la línia 12, he utilitzat l'ordre sleep 1 per mantenir l'execució de l'script durant un segon. Després, el bucle continuarà.

Ara fes el guió tempmon.sh executable amb l'ordre següent:

$chmod+ X tempmon.sh

Finalment, executeu l'script tempmon.sh amb l'ordre següent:

$./tempmon.sh

Com podeu veure, el guió del monitor de temperatura funciona perfectament. Imprimeix les dades de temperatura cada segon.

Com podeu veure, a mesura que augmentava la càrrega del sistema, la temperatura augmentava lleugerament.

Si voleu aturar la seqüència de control de temperatura, premeu + c . El control de temperatura ja no s’executa, tal com es pot veure a la captura de pantalla següent.

Ara que l’escriptura de control de temperatura funciona, copiem-lo a / usr / bin directori. D’aquesta manera, podeu executar-lo com qualsevol altra ordre de Linux.

Per copiar l'script tempmon.sh fins al / usr / bin directori, executeu l'ordre següent:

$suo cptempmon.sh/usr/sóc/tempmon

Com podeu veure, puc executar l'script de supervisió de temperatura tal com executo les ordres estàndard de Linux.

Modificant tempmon per imprimir dades de temperatura en Fahrenheit:

Podeu convertir fàcilment les dades de temperatura de Celsius a Fahrenheit.

La fórmula àmpliament coneguda per calcular les temperatures en Fahrenheit a partir de Celsius és,

F =(9/5)*C +32
O bé
F =1.8 *C +32

Però el problema és que el bash shell no té les funcions necessàries per realitzar càlculs en coma flotant. Per tant, heu de confiar en alguns altres programes com ara bc .

bc no està instal·lat a Raspbian per defecte. Però podeu instal·lar-lo fàcilment amb l'ordre següent:

$suoapteinstal·lar bc

bc s'hauria d'instal·lar.

Ara, heu de modificar la seqüència de control de temperatura i fer els càlculs necessaris per convertir la temperatura a Fahrenheit de Celsius amb bc .

Editeu el fitxer tempmon.sh script amb l'ordre següent:

$nanotempmon.sh

Ara, feu les modificacions tal com es marca a la captura de pantalla següent.

Aquí, a la línia 4, vaig imprimir TEMP (F) en lloc de TEMP (degC) .

A la línia 9, he canviat la variable de temp a tempC .

A la línia 10, he afegit el resultat de la conversió Celsius a Fahrenheit a una variable tempF .

Finalment, vaig imprimir el valor de tempF variable en lloc de temp a la línia 12.

Ara, executeu l'script de la següent manera:

$./tempmon

Com podeu veure, la temperatura s’imprimeix en unitats Fahrenheit.

Per tant, és així com es controla la temperatura a Raspberry Pi. Gràcies per llegir aquest article.