Monitor temperature Raspberry Pi

Raspberry Pi Temperature Monitor

Raspberry Pi je moćno single board računalo (SBC). Može se koristiti za obavljanje mnogih sofisticiranih zadataka. No, time će se povećati temperatura procesora Raspberry Pi uređaja. Što nije dobro. Performanse Raspberry Pi SBC -a će patiti zbog temperature. To je također poznato kao termičko prigušivanje.

Ako je temperatura procesora vaše Raspberry Pi iznad 80 stupnjeva Celzijusa, vidjet ćete ikonu termometra u gornjem desnom kutu zaslona. Službeno, Zaklada Raspberry Pi preporučuje da temperatura vašeg uređaja Raspberry Pi treba biti ispod 85 stupnjeva Celzijusa kako bi ispravno radio. To je najveća granica. No, počeo bi se smanjivati ​​na 82 Celzijeva stupnja.



U ovom članku ću vam pokazati kako pratiti temperaturu vašeg Raspberry Pi. Koristit ću Raspbian operacijski sustav na svom uređaju Raspberry Pi 3 Model B. No, trebao bi raditi na bilo kojem Raspberry Pi SBC -u s instaliranim Raspbian operativnim sustavom.



Temperaturu jezgre vašeg Raspberry Pi uređaja možete mjeriti sljedećom naredbom:



$vcgencmd mjera_templa

Trenutna temperatura jezgre je 48,3 stupnja Celzijusa, što možete vidjeti u označenom odjeljku snimke zaslona u nastavku.

Kao što vidite, svaki put kada pokrenem naredba prikazuje različite vrijednosti temperature.



Raščlanjivanje podataka o temperaturi:

Podaci o temperaturi koje dobivamo iz vcgencmd naredba je niz. Na njemu ne možete izvršiti nikakav izračun. Regularni izraz možemo jednostavno upotrijebiti za izdvajanje samo podataka o temperaturi i izvršavanje bilo koje vrste izračuna na njima.

Ako želite koristiti podatke o temperaturi u skripti Bash ljuske, tada možete izvaditi podatke o temperaturi pomoću egrep naredite na sljedeći način:

$vcgencmd mjera_templa| egrep -ili '[0-9] * . [0-9] *'

Kao što vidite, ispisuju se samo podaci o temperaturi. Nema ni prije ni poslije toga.

Možete ga koristiti u ljuskoj skripti (recimo print_temp.sh ) kako slijedi:

$nanoprint_temp.sh

Ovdje, na liniji 3, postavio sam temp varijabla na podatke o raščlanjenoj temperaturi koje dobivam iz vcgencmd i zahvat naredba.

Na liniji 5 koristio sam izbaciti za ispis sadržaja temp varijabla na ekranu.

Linija 1 koristi se da Linuxu kaže da se skripta treba izvršiti /bin/bash prema zadanim postavkama.

Sada učinite skriptu izvršnom sa sljedećom naredbom:

$chmod+ x print_temp.sh

Sada pokrenite skriptu na sljedeći način:

$./print_temp.sh

Kao što vidite, željeni izlaz ispisuje se na ekranu.

Pisanje skripte za nadzor temperature Raspberry Pi:

Sada kada možemo raščlaniti podatke o temperaturi koje dobivamo iz vcgencmd naredbom, lako možemo napisati skriptu za praćenje temperature za Raspberry Pi. Skripta za praćenje temperature ispisat će trenutnu vremensku oznaku i temperaturu jezgre svake sekunde na zaslonu na lijepo oblikovan način.

Prvo stvorite novu skriptu tempmon.sh sa sljedećom naredbom:

$dodirtempmon.sh

Sada uredite datoteku tempmon.sh skriptu sa sljedećom naredbom:

$nanotempmon.sh

Sada upišite sljedeće redove kodova i spremite datoteku pomoću + x a zatim pritisnite i slijedi .

Ovdje, na liniji 4, printf koristi se za ispis nizova TIMESTAMP i TEMP (degC) kao stupac fiksne širine.

Na liniji 5 koristio sam printf ponovno ispisati isprekidanu liniju samo da bi ispis bio čitljiviji i privlačniji.

Na retku 7-13 pokrenuo sam beskonačnu petlju za ispis podataka o temperaturi svake sekunde.

Na retku 9 pohranio sam podatke o raščlanjenoj temperaturi na temp promjenjivo.

Na retku 10 pohranio sam podatke o vremenskoj oznaci koje sam dobio od datum naredba na vremenska oznaka promjenjivo.

U retku 11 ispisao sam datum i vrijeme u formatu vremenske oznake, a podatke o temperaturi u obliku stupca s fiksnom širinom.

Na retku 12 upotrijebio sam naredbu sleep 1 za zadržavanje izvršenja skripte na sekundu. Nakon toga, petlja će se nastaviti.

Sada, napravite scenarij tempmon.sh izvršna sa sljedećom naredbom:

$chmod+ x tempmon.sh

Na kraju, pokrenite skriptu tempmon.sh sa sljedećom naredbom:

$./tempmon.sh

Kao što vidite, skripta za praćenje temperature radi savršeno. Ispisuje podatke o temperaturi svake sekunde.

Kao što vidite, s povećanjem opterećenja sustava temperatura se lagano povećala.

Ako želite zaustaviti skriptu za praćenje temperature, pritisnite + c . Nadzor temperature više ne radi, kao što možete vidjeti na slici ispod.

Sada kada skripta za praćenje temperature radi, kopirajmo je u /usr/bin imenik. Na taj način možete ga pokrenuti kao i sve druge naredbe Linuxa.

Za kopiranje skripte tempmon.sh prema /usr/bin direktorij, pokrenite sljedeću naredbu:

$sudo k.čtempmon.sh/usr/am/tempmon

Kao što vidite, mogu pokrenuti skriptu za praćenje temperature isto kao i standardne naredbe za Linux.

Modificiranje tempmon za ispis podataka o temperaturi u Fahrenheitu:

Podatke o temperaturi možete jednostavno pretvoriti iz Celzijevih u Fahrenheitove.

Nadaleko poznata formula za izračunavanje temperatura u Fahrenheitu prema Celzijusu je,

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

No problem je u tome što bash ljuska nema potrebne funkcije za izvođenje izračuna s pomičnim zarezom. Dakle, morate se osloniti na neke druge programe poput prije Krista .

prije Krista nije zadano instaliran na Raspbian. No možete ga jednostavno instalirati pomoću sljedeće naredbe:

$sudoprikladaninstalirati prije Krista

prije Krista treba instalirati.

Sada morate izmijeniti skriptu za praćenje temperature i napraviti potrebne proračune za pretvaranje temperature u Celzijuse u Fahrenheit pomoću prije Krista .

Uredite datoteku tempmon.sh skriptu sa sljedećom naredbom:

$nanotempmon.sh

Sada napravite izmjene kako je označeno na slici ispod.

Evo, na liniji 4, tiskao sam TEMP (F) umjesto TEMP (degC) .

Na retku 9 promijenio sam varijablu iz temp do tempC .

Na retku 10 dodao sam rezultat pretvorbe Celzijusa u Fahrenheit u varijablu tempF .

Na kraju sam ispisao vrijednost tempF varijabla umjesto temp na liniji 12.

Sada pokrenite skriptu na sljedeći način:

$./tempmon

Kao što vidite, temperatura se ispisuje u Fahrenheitovoj jedinici.

Dakle, tako pratite temperaturu u Raspberry Pi. Hvala što ste pročitali ovaj članak.