Raspberry Pi temperatūros monitorius

Raspberry Pi Temperature Monitor



„Raspberry Pi“ yra galingas vienos plokštės kompiuteris (SBC). Jis gali būti naudojamas daugeliui sudėtingų užduočių. Tačiau tai padarius, „Raspberry Pi“ įrenginių procesoriaus temperatūra pakils. Kas nėra gerai. „Raspberry Pi SBC“ veikimas nukentės dėl temperatūros. Tai taip pat žinoma kaip terminis droselis.

Jei „Raspberry Pi“ procesoriaus temperatūra yra aukštesnė nei 80 laipsnių Celsijaus, viršutiniame dešiniajame ekrano kampe pamatysite termometro piktogramą. Oficialiai „Raspberry Pi Foundation“ rekomenduoja, kad jūsų „Raspberry Pi“ įrenginio temperatūra būtų žemesnė nei 85 laipsnių Celsijaus, kad jis tinkamai veiktų. Tai yra maksimali riba. Bet jis pradėtų droselėti esant 82 laipsniams Celsijaus.







Šiame straipsnyje aš jums parodysiu, kaip stebėti „Raspberry Pi“ temperatūrą. „Raspberry Pi 3“ modelio B įrenginyje naudosiu „Raspbian“ operacinę sistemą. Tačiau jis turėtų veikti bet kuriame „Raspberry Pi SBC“ su įdiegta „Raspbian“ operacine sistema.



Galite išmatuoti Raspberry Pi įrenginio šerdies temperatūrą naudodami šią komandą:



$vcgencmd matavimo_tempas

Dabartinė šerdies temperatūra yra 48,3 laipsnių Celsijaus, kaip matote pažymėtoje ekrano kopijos dalyje.





Kaip matote, kiekvieną kartą paleidus komandą, rodoma skirtinga temperatūros vertė.



Temperatūros duomenų analizavimas:

Temperatūros duomenys, kuriuos gauname iš vcgencmd komanda yra eilutė. Jūs negalite atlikti jokių skaičiavimų. Mes galime lengvai naudoti įprastą išraišką, norėdami išgauti tik temperatūros duomenis ir atlikti bet kokio tipo skaičiavimus.

Jei norite naudoti temperatūros duomenis „Bash“ apvalkalo scenarijuje, galite išgauti temperatūros duomenis naudodami egrep komandą taip:

$vcgencmd matavimo_tempas| egrep -arba '[0-9] * . [0-9] *'

Kaip matote, spausdinami tik temperatūros duomenys. Nieko nėra nei prieš, nei po jo.

Galite jį naudoti savo apvalkalo scenarijuje (tarkime print_temp.sh ) taip:

$nanoprint_temp.sh

Čia, 3 eilutėje, aš nustatiau temp kintamasis į analizuojamus temperatūros duomenis, kuriuos gaunu iš vcgencmd ir suimti komandą.

5 eilutėje aš naudojau išmetė spausdinti turinį temp kintantis ekrane.

1 eilutė naudojama pasakyti „Linux“, kad scenarijus turi būti vykdomas naudojant /bin/bash pagal nutylėjimą.

Dabar padarykite scenarijų vykdomąjį naudodami šią komandą:

$chmod+ x print_temp.sh

Dabar paleiskite scenarijų taip:

$./print_temp.sh

Kaip matote, norima išvestis spausdinama ekrane.

„Raspberry Pi“ temperatūros stebėjimo scenarijaus rašymas:

Dabar, kai galime išanalizuoti temperatūros duomenis, kuriuos gauname iš vcgencmd komandą, mes galime lengvai parašyti „Raspberry Pi“ temperatūros stebėjimo scenarijų. Temperatūros stebėjimo scenarijus gražiai suformatuotas ekrane kas sekundę spausdins esamą laiko žymę ir šerdies temperatūrą.

Pirmiausia sukurkite naują scenarijų tempmon.sh su tokia komanda:

$paliestitempmon.sh

Dabar redaguokite tempmon.sh scenarijų su tokia komanda:

$nanotempmon.sh

Dabar įveskite šias kodų eilutes ir išsaugokite failą naudodami + x ir tada paspauskite ir po to .

Čia, 4 eilutėje, printf naudojamas spausdinti TIMESTAMP ir TEMP (degC) eilutes kaip fiksuoto pločio stulpelį.

5 eilutėje aš naudojau printf dar kartą atspausdinti punktyrinę liniją, kad išvestis būtų skaitomesnė ir patrauklesnė.

7-13 eilutėje aš vykdžiau begalinę kilpą, kad kas sekundę spausdinčiau temperatūros duomenis.

9 eilutėje išsaugojau išanalizuotus temperatūros duomenis temp kintamasis.

10 eilutėje išsaugojau laiko žymos duomenis, kuriuos gavau iš data komandą ant laiko žyma kintamasis.

11 eilutėje išspausdinau datą ir laiką laiko žymos formatu, o temperatūros duomenis fiksuoto pločio stulpelio formatu.

12 eilutėje aš naudoju komandą „miegoti 1“, kad sekundei palaikyčiau scenarijaus vykdymą. Vėliau kilpa tęsis.

Dabar sukurkite scenarijų tempmon.sh vykdomas naudojant šią komandą:

$chmod+ x tempmon.sh

Galiausiai paleiskite scenarijų tempmon.sh su tokia komanda:

$./tempmon.sh

Kaip matote, temperatūros monitoriaus scenarijus veikia puikiai. Jis spausdina temperatūros duomenis kas sekundę.

Kaip matote, padidinus sistemos apkrovą, temperatūra šiek tiek pakilo.

Jei norite sustabdyti temperatūros stebėjimo scenarijų, paspauskite + c . Temperatūros stebėjimas nebeveikia, kaip matote žemiau esančioje ekrano kopijoje.

Dabar, kai veikia temperatūros stebėjimo scenarijus, nukopijuokime jį į /usr/bin katalogą. Tokiu būdu galite jį paleisti kaip ir bet kurias kitas „Linux“ komandas.

Norėdami nukopijuoti scenarijų tempmon.sh į /usr/bin katalogą, paleiskite šią komandą:

$sudo cptempmon.sh/usr/esu/tempmonas

Kaip matote, aš galiu paleisti temperatūros stebėjimo scenarijų taip pat, kaip ir standartines „Linux“ komandas.

Modifikavimas tempmonas Spausdinti temperatūros duomenis Farenheitu:

Galite lengvai konvertuoti temperatūros duomenis iš Celsijaus į Farenheitą.

Plačiai žinoma formulė temperatūrai Farenheite apskaičiuoti pagal Celsijų yra:

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

Tačiau problema ta, kad „bash shell“ neturi būtinų funkcijų slankiojo kablelio skaičiavimams atlikti. Taigi, jūs turite pasikliauti kitomis programomis, tokiomis kaip bc .

bc pagal numatytuosius nustatymus nėra įdiegta „Raspbian“. Bet jūs galite lengvai ją įdiegti naudodami šią komandą:

$sudotinkamasdiegti bc

bc turėtų būti įdiegta.

Dabar turite pakeisti temperatūros stebėjimo scenarijų ir atlikti reikiamus skaičiavimus, kad temperatūra būtų pakeista į Celsijaus laipsnius pagal Celsijų bc .

Redaguoti tempmon.sh scenarijų su tokia komanda:

$nanotempmon.sh

Dabar atlikite pakeitimus, kaip pažymėta žemiau esančioje ekrano kopijoje.

Čia, 4 eilutėje, atspausdinau TEMP (F) vietoj TEMP (degC) .

9 eilutėje pakeičiau kintamąjį iš temp į tempC .

10 eilutėje Celsijaus rezultatą prie Farenheito konvertavimo pridėjau prie kintamojo tempF .

Galiausiai atspausdinau jo vertę tempF kintamasis vietoj temp 12 eilutėje.

Dabar paleiskite scenarijų taip:

$./tempmonas

Kaip matote, temperatūra spausdinama Farenheito vienetais.

Taigi taip stebite „Raspberry Pi“ temperatūrą. Dėkojame, kad perskaitėte šį straipsnį.