Hvis temperaturen på prosessoren på Raspberry Pi er over 80 grader Celsius, vil du se et termometerikon øverst til høyre på skjermen. Offisielt anbefaler Raspberry Pi Foundation at temperaturen på Raspberry Pi-enheten din skal være under 85 grader Celsius for at den skal fungere skikkelig. Det er maksimumsgrensen. Men det ville begynne å strupes ved 82 grader Celsius.
I denne artikkelen vil jeg vise deg hvordan du overvåker temperaturen på Raspberry Pi. Jeg vil bruke Raspbian-operativsystemet på Raspberry Pi 3 Model B-enheten. Men det skal fungere på hvilken som helst Raspberry Pi SBC med Raspbian-operativsystem installert.
Måling av temperaturen på Raspberry Pi SBC:
Du kan måle kjernetemperaturen til Raspberry Pi-enheten din med følgende kommando:
$ vcgencmd measure_tempDen nåværende kjernetemperaturen er 48.3 grader Celsius som du kan se i den markerte delen av skjermbildet nedenfor.
Som du kan se, viser kommandoen annen temperaturverdi hver gang jeg kjører.
Analyse av temperaturdataene:
Temperaturdataene som vi får fra vcgencmd kommando er en streng. Du kan ikke utføre noen beregning på den. Vi kan enkelt bruke vanlig uttrykk for å trekke ut bare temperaturdataene og utføre alle typer beregninger på den.
Hvis du vil bruke temperaturdataene i et Bash shell-skript, kan du trekke ut temperaturdataene med egrep kommandoen som følger:
$ vcgencmd measure_temp | egrep -o '[0-9] * \.[0-9] * 'Som du kan se, er bare temperaturdataene skrevet ut. Det er ingenting før eller etter det.
Du kan bruke den på skallskriptet ditt (la oss si det print_temp.sh) som følger:
$ nano print_temp.sh
Her, på linje 3, satte jeg inn temp variabel til de analyserte temperaturdataene som jeg får fra vcgencmd og grep kommando.
På linje 5 brukte jeg ekko for å skrive ut innholdet på temp variabel på skjermen.
Linje 1 brukes til å fortelle Linux at skriptet skal kjøres med / bin / bash som standard.
Gjør nå skriptet kjørbart med følgende kommando:
$ chmod + x print_temp.sh
Kjør nå skriptet som følger:
$ ./ print_temp.shSom du kan se, skrives ønsket utskrift på skjermen.
Skrive et Raspberry Pi temperaturovervåkingsskript:
Nå som vi kan analysere temperaturdataene vi får fra vcgencmd kommando, kan vi enkelt skrive et temperaturovervåkingsskript for Raspberry Pi. Temperaturovervåkingsskriptet vil skrive ut gjeldende tidsstempel og kjernetemperatur hvert sekund på skjermen på en pent formatert måte.
Opprett først et nytt skript tempmon.sh med følgende kommando:
$ touch tempmon.shNå, rediger tempmon.sh skript med følgende kommando:
$ nano tempmon.sh
Skriv inn følgende kodelinjer og lagre filen med
Her, på linje 4, printf brukes til å skrive ut TIMESTAMP og TEMP (degC) strengene som kolonne med fast bredde.
På linje 5 brukte jeg printf igjen for å skrive ut en stiplet linje bare for å gjøre utdataene mer lesbare og tiltalende.
På linje 7-13 kjørte jeg en uendelig løkke for å skrive ut temperaturdataene hvert sekund.
På linje 9 lagret jeg de analyserte temperaturdataene på temp variabel.
På linje 10 lagret jeg tidsstempeldataene jeg fikk fra Dato kommando på tidsstempel variabel.
På linje 11 skrev jeg ut dato og klokkeslett i tidsstempelformat og temperaturdata i kolonneformat med fast bredde.
På linje 12 brukte jeg sleep 1-kommandoen til å holde utførelsen av skriptet i et sekund. Etterpå fortsetter sløyfen.
Lag nå skriptet tempmon.sh kjørbar med følgende kommando:
$ chmod + x tempmon.sh
Til slutt, kjør skriptet tempmon.sh med følgende kommando:
$ ./ tempmon.shSom du kan se, fungerer temperaturmonitorskriptet perfekt. Det skriver ut temperaturdata hvert sekund.
Som du ser, da jeg økte systembelastningen, økte temperaturen litt.
Hvis du vil stoppe temperaturovervåkingsskriptet, trykker du på
Nå som temperaturovervåkingsskriptet fungerer, la oss kopiere det til / usr / søppel katalog. På den måten kan du kjøre det som alle andre Linux-kommandoer.
Å kopiere skriptet tempmon.sh til / usr / søppel katalog, kjør følgende kommando:
$ sudo cp tempmon.sh / usr / bin / tempmon
Som du kan se, kan jeg kjøre temperaturovervåkingsskriptet akkurat som jeg kjører standard Linux-kommandoer.
Endrer tempmon for utskrift av temperaturdata i Fahrenheit:
Du kan enkelt konvertere temperaturdataene fra Celsius til Fahrenheit.
Den allment kjente formelen for å beregne temperaturer i Fahrenheit fra Celsius er,
F = (9/5) * C + 32Eller
F = 1.8 * C + 32
Men problemet er at bash shell ikke har nødvendige funksjoner for å utføre flytende punktberegninger. Så du må stole på noen andre programmer som bc.
bc er ikke installert på Raspbian som standard. Men du kan enkelt installere det med følgende kommando:
$ sudo apt install bc
bc skal installeres.
Nå må du endre temperaturovervåkingsskriptet og gjøre nødvendige beregninger for å konvertere temperaturen til Fahrenheit fra Celsius med bc.
Rediger tempmon.sh skript med følgende kommando:
$ nano tempmon.sh
Gjør nå endringene som markert i skjermbildet nedenfor.
Her, på linje 4, skrev jeg ut TEMP (F) i stedet for TEMP (degC).
På linje 9 endret jeg variabelen fra temp til tempC.
På linje 10 la jeg til resultatet av Celsius til Fahrenheit-konverteringen til en variabel tempF.
Til slutt skrev jeg ut verdien av tempF variabel i stedet for temp på linje 12.
Kjør nå skriptet som følger:
$ ./ tempmonSom du kan se, er temperaturen trykt i Fahrenheit-enhet.
Så det er slik du overvåker temperaturen i Raspberry Pi. Takk for at du leser denne artikkelen.