Raspberry Pi temperaturmonitor

Raspberry Pi Temperature Monitor



Raspberry Pi er en kraftfuld Single Board Computer (SBC). Det kan bruges til at udføre mange sofistikerede opgaver. Men det vil øge temperaturen på processoren på Raspberry Pi -enheder. Hvilket ikke er godt. Ydeevnen af ​​Raspberry Pi SBC vil lide på grund af temperaturen. Dette er også kendt som termisk gas.

Hvis temperaturen på processoren på din Raspberry Pi er over 80 grader Celsius, vil du se et termometerikon i øverste højre hjørne af skærmen. Officielt anbefaler Raspberry Pi Foundation, at temperaturen på din Raspberry Pi -enhed skal være under 85 grader Celsius, for at den fungerer korrekt. Det er den maksimale grænse. Men det ville begynde at drosle ved 82 grader Celsius.







I denne artikel vil jeg vise dig, hvordan du overvåger temperaturen på din Raspberry Pi. Jeg bruger Raspbian -operativsystemet på min Raspberry Pi 3 Model B -enhed. Men det burde fungere på enhver Raspberry Pi SBC med Raspbian -operativsystem installeret.



Du kan måle kernetemperaturen på din Raspberry Pi -enhed med følgende kommando:



$vcgencmd måle_temp

Den nuværende kernetemperatur er 48,3 grader Celsius, som du kan se i det markerede afsnit af skærmbilledet herunder.





Som du kan se, viser kommandoen hver anden temperaturværdi hver gang jeg kører.



Parsing af temperaturdata:

Temperaturdataene, som vi får fra vcgencmd kommandoen er en streng. Du kan ikke udføre nogen beregning på det. Vi kan let bruge regulært udtryk til kun at udtrække temperaturdataene og udføre enhver form for beregning på det.

Hvis du vil bruge temperaturdataene i et Bash -shell -script, kan du udtrække temperaturdataene med egrep kommando som følger:

$vcgencmd måle_temp| egrep -eller '[0-9] * . [0-9] *'

Som du kan se, udskrives kun temperaturdataene. Der er intet før eller efter det.

Du kan bruge det på dit shell -script (lad os sige print_temp.sh ) som følger:

$nanoprint_temp.sh

Her, på linje 3, indstillede jeg Midlertidig variabel til de analyserede temperaturdata, som jeg får fra vcgencmd og greb kommando.

På linje 5 brugte jeg smed ud at udskrive indholdet af Midlertidig variabel på skærmen.

Linje 1 bruges til at fortælle Linux, at scriptet skal udføres med /bin/bash som standard.

Gør nu scriptet eksekverbart med følgende kommando:

$chmod+ x print_temp.sh

Kør nu scriptet som følger:

$./print_temp.sh

Som du kan se, udskrives det ønskede output på skærmen.

Skrivning af et Raspberry Pi temperaturovervågningsscript:

Nu hvor vi kan analysere de temperaturdata, vi får fra vcgencmd kommando, kan vi nemt skrive et temperaturovervågningsscript til Raspberry Pi. Temperaturovervågningsscriptet udskriver det aktuelle tidsstempel og kernetemperatur hvert sekund på skærmen på en pænt formateret måde.

Opret først et nyt script tempmon.sh med følgende kommando:

$røre vedtempmon.sh

Rediger nu tempmon.sh script med følgende kommando:

$nanotempmon.sh

Indtast nu følgende kodelinjer og gem filen med + x og tryk derefter på og efterfulgt af .

Her på linje 4, printf bruges til at udskrive TIMESTAMP og TEMP (degC) strengene som kolonne med fast bredde.

På linje 5 brugte jeg printf igen for at udskrive en stiplet linje bare for at gøre output mere læseligt og tiltalende.

På linje 7-13 kørte jeg en uendelig loop for at udskrive temperaturdata hvert sekund.

På linje 9 lagrede jeg de analyserede temperaturdata på Midlertidig variabel.

På linje 10 lagrede jeg de tidsstempeldata, jeg fik fra dato kommando på tidsstempel variabel.

På linje 11 skrev jeg dato og klokkeslæt ud i tidsstempelformat og temperaturdata i kolonneformat med fast bredde.

På linje 12 brugte jeg sleep 1 -kommandoen til at holde udførelsen af ​​scriptet et sekund. Bagefter fortsætter sløjfen.

Lav nu scriptet tempmon.sh eksekverbar med følgende kommando:

$chmod+ x tempmon.sh

Kør endelig scriptet tempmon.sh med følgende kommando:

$./tempmon.sh

Som du kan se, fungerer temperaturmonitor scriptet perfekt. Det udskriver temperaturdata hvert sekund.

Som du kan se, da jeg øgede systembelastningen, steg temperaturen lidt.

Hvis du vil stoppe temperaturovervågningsscriptet, skal du trykke på + c . Temperaturovervågningen kører ikke mere, som du kan se på skærmbilledet herunder.

Nu hvor temperaturovervågningsscriptet fungerer, lad os kopiere det til /usr/bin vejviser. På den måde kan du køre det som alle andre Linux -kommandoer.

For at kopiere scriptet tempmon.sh til /usr/bin katalog, kør følgende kommando:

$sudo cptempmon.sh/usr/er/tempmon

Som du kan se, kan jeg køre temperaturovervågningsscriptet, ligesom jeg kører standard Linux -kommandoer.

Ændring tempmon til udskrivning af temperaturdata i Fahrenheit:

Du kan let konvertere temperaturdata fra Celsius til Fahrenheit.

Den almindeligt kendte formel til beregning af temperaturer i Fahrenheit fra Celsius er,

F =(9/5)*C +32
Eller
F =1.8 *C +32

Men problemet er, bash shell har ikke nødvendige funktioner til at udføre flydende punktberegninger. Så du skal stole på nogle andre programmer som f.eks bc .

bc er ikke installeret på Raspbian som standard. Men du kan nemt installere det med følgende kommando:

$sudopassendeinstallere bc

bc skal installeres.

Nu skal du ændre temperaturovervågningsscriptet og foretage nødvendige beregninger for at konvertere temperaturen til Fahrenheit fra Celsius med bc .

Rediger tempmon.sh script med følgende kommando:

$nanotempmon.sh

Foretag nu ændringerne som markeret på skærmbilledet herunder.

Her, på linje 4, printede jeg TEMP (F) i stedet for TEMP (degC) .

På linje 9 ændrede jeg variablen fra Midlertidig til tempC .

På linje 10 tilføjede jeg resultatet af Celsius til Fahrenheit -konverteringen til en variabel tempF .

Til sidst printede jeg værdien af tempF variabel i stedet for Midlertidig på linje 12.

Kør nu scriptet som følger:

$./tempmon

Som du kan se, udskrives temperaturen i Fahrenheit -enhed.

Så det er sådan, du overvåger temperaturen i Raspberry Pi. Tak fordi du læste denne artikel.