Raspberry Pi Temperaturmonitor

Raspberry Pi Temperaturmonitor
Raspberry Pi er en kraftig enkeltbrettdatamaskin (SBC). Det kan brukes til å gjøre mange sofistikerte oppgaver. Men å gjøre det vil øke temperaturen på prosessoren til Raspberry PI -enheter. Som ikke er bra. Ytelsen til Raspberry Pi SBC vil lide på grunn av temperatur. Dette er også kjent som termisk gass.

Hvis temperaturen på prosessoren til 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 skal være under 85 grader Celsius for at den skal fungere ordentlig. Det er den maksimale grensen. Men det ville begynne å strupe på 82 grader Celsius.

I denne artikkelen vil jeg vise deg hvordan du skal overvåke temperaturen på Raspberry Pi. Jeg bruker raspbisk operativsystem 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 på bringebær PI -enheten med følgende kommando:

$ VCGENCMD MÅL_TEMP

Gjeldende kjernetemperatur er 48.3 grader Celsius som du kan se i den markerte delen av skjermdumpen nedenfor.

Som du ser, viser kommandoen hver gang jeg kjører forskjellig temperaturverdi.

Analysere temperaturdataene:

Temperaturdataene 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 Kommando som følger:

$ VCGENCMD MÅL_TEMP | Egrep -o '[0-9]*\.[0-9]*'

Som du ser er det bare temperaturdataene som skrives ut. Det er ingenting før eller etter det.

Du kan bruke det på skallskriptet ditt (la oss si print_temp.sh) følgende:

$ nano print_temp.sh

Her, på linje 3, satte jeg temp variabel til de analyserte temperaturdataene som jeg får fra VcGenCMD og grep kommando.

På linje 5 brukte jeg ekko å skrive ut innholdet i temp variabel på skjermen.

Linje 1 brukes til å fortelle Linux at skriptet skal utføres med /bin/bash Som standard.

Nå, gjør skriptet kjørbart med følgende kommando:

$ chmod +x print_temp.sh

Kjør nå skriptet som følger:

$ ./print_temp.sh

Som du kan se, skrives den ønskede utgangen på skjermen.

Å skrive et Raspberry Pi -temperaturovervåkningsskript:

Nå som vi kan analysere temperaturdataene vi får fra VcGenCMD Kommando, vi kan enkelt skrive et temperaturovervåkningsskript for Raspberry Pi. Temperaturovervåkningsskriptet vil skrive ut gjeldende tidsstempel og kjernetemperatur hvert sekund på skjermen på en pent formatert måte.

Lag først et nytt manus tempmon.sh med følgende kommando:

$ Touch Tempmon.sh

Rediger nå tempmon.sh Skript med følgende kommando:

$ nano tempmon.sh

Nå, skriv inn følgende koderlinjer og lagre filen med + x Og trykk deretter y etterfulgt av .

Her, på linje 4, printf brukes til å skrive ut tidsstempel og temp (DEGC) strenger som fast bredde kolonne.

På linje 5 brukte jeg printf igjen for å skrive ut en stiplet linje bare for å gjøre utdataene mer lesbar og tiltalende.

På linje 7-13 kjørte jeg en uendelig sløyfe for å skrive ut temperaturdata 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 datoen og klokkeslettet i tidsstempelformat og temperaturdataene i fast bredde kolonneformat.

På linje 12 brukte jeg Sleep 1 -kommandoen for å holde utførelse av manuset et sekund. Etterpå vil sløyfen fortsette.

Nå, lag 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.sh

Som du ser fungerer temperaturmonitorskriptet perfekt. Det skriver ut temperaturdataene hvert sekund.

Som du ser, da jeg økte systembelastningen, økte temperaturen litt.

Hvis du vil stoppe temperaturovervåkningsskriptet, trykk + c. Temperaturovervåkningen kjører ikke mer som du kan se på skjermdumpen nedenfor.

Nå som temperaturovervåkningsskriptet fungerer, la oss kopiere det til /usr/bin katalog. På den måten kan du kjøre det som alle andre Linux -kommandoer.

Å kopiere skriptet tempmon.sh til /usr/bin Katalog, kjør følgende kommando:

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

Som du kan se, kan jeg kjøre temperaturovervåkningsskriptet akkurat når jeg kjører standard Linux -kommandoer.

Endre tempmon For å skrive ut temperaturdata i Fahrenheit:

Du kan enkelt konvertere temperaturdataene fra Celsius til Fahrenheit.

Den allment kjente formelen for beregning av temperaturer i Fahrenheit fra Celsius er,

F = (9/5)* C + 32
Eller
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 for eksempel BC.

BC er ikke installert på Raspbian som standard. Men du kan enkelt installere den med følgende kommando:

$ sudo apt install BC

BC skal installeres.

Nå må du endre temperaturovervåkningsskriptet 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

Nå, gjør endringene som merket i skjermdumpen 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 resultatet av Celsius til Fahrenheit -konvertering til en variabel tempf.

Til slutt trykket jeg verdien av tempf variabel i stedet for temp på linje 12.

Kjør nå skriptet som følger:

$ ./tempmon

Som du kan se, skrives temperaturen i Fahrenheit -enheten.

Så det er slik du overvåker temperaturen i Raspberry Pi. Takk for at du leste denne artikkelen.