Ak je teplota procesora vášho Raspberry Pi nad 80 stupňov Celzia, v pravom hornom rohu obrazovky sa zobrazí ikona teplomeru. Oficiálne nadácia Raspberry Pi odporúča, aby teplota vášho zariadenia Raspberry Pi bola nižšia ako 85 stupňov Celzia, aby správne fungoval. To je maximálna hranica. Začalo by to však škrtiť pri 82 stupňoch Celzia.
V tomto článku vám ukážem, ako sledovať teplotu vášho Raspberry Pi. Na svojom zariadení Raspberry Pi 3 Model B budem používať operačný systém Raspbian. Malo by to však fungovať na akomkoľvek Raspberry Pi SBC s nainštalovaným operačným systémom Raspbian.
Meranie teploty Raspberry Pi SBC:
Teplotu jadra vášho zariadenia Raspberry Pi môžete merať pomocou nasledujúceho príkazu:
$ vcgencmd measure_tempAktuálna teplota jadra je 48.3 stupne Celzia, ako vidíte na vyznačenej časti snímky obrazovky nižšie.
Ako vidíte, pri každom spustení príkaz zobrazuje inú hodnotu teploty.
Analýza údajov o teplote:
Údaje o teplote, ktoré dostaneme z vcgencmd príkaz je reťazec. Nemôžete na ňom vykonať žiadny výpočet. Pomocou Regulárneho výrazu môžeme ľahko extrahovať iba údaje o teplote a vykonať na ňom akýkoľvek typ výpočtu.
Ak chcete použiť údaje o teplote v skripte Bash shell, môžete údaje o teplote extrahovať pomocou egrep príkaz takto:
$ vcgencmd measure_temp | egrep -o '[0-9] * \.[0-9] * 'Ako vidíte, tlačia sa iba údaje o teplote. Pred ním ani po ňom nič nie je.
Môžete ho použiť na svojom shell skripte (povedzme print_temp.š) nasledovne:
$ nano print_temp.š
Tu na riadok 3 som nastavil tepl premenná na analyzované údaje o teplote, ktoré získam z vcgencmd a grep príkaz.
Na linke 5 som použil ozvena vytlačiť obsah súboru tepl premenná na obrazovke.
Prvý riadok slúži na informovanie systému Linux, že skript by sa mal vykonať pomocou / bin / bash predvolene.
Teraz urobte skript spustiteľný pomocou nasledujúceho príkazu:
$ chmod + x print_temp.š
Teraz spustite skript nasledovne:
$ ./ print_temp.šAko vidíte, požadovaný výstup sa vytlačí na obrazovku.
Písanie skriptu na monitorovanie teploty Raspberry Pi:
Teraz, keď môžeme analyzovať údaje o teplote, ktoré sme získali z vcgencmd príkaz, môžeme ľahko napísať skript na sledovanie teploty pre Raspberry Pi. Skript na sledovanie teploty vytlačí aktuálnu časovú pečiatku a teplotu jadra každú sekundu na obrazovku v pekne formátovanom formáte.
Najskôr vytvorte nový skript tempmon.š nasledujúcim príkazom:
$ dotykový tempmon.šTeraz upravte tempmon.š skript s nasledujúcim príkazom:
$ nano tempmon.š
Teraz zadajte nasledujúce riadky kódov a uložte súbor s
Tu, na riadku 4, printf sa používa na tlač reťazcov TIMESTAMP a TEMP (degC) ako stĺpca s pevnou šírkou.
Na linke 5 som použil printf znova vytlačiť prerušovanú čiaru, len aby bol výstup čitateľnejší a príťažlivejší.
Na riadku 7-13 som bežal nekonečnou slučkou, aby som každú sekundu tlačil údaje o teplote.
Na riadku 9 som uložil analyzované údaje o teplote do tepl premenná.
Na riadku 10 som uložil údaje časovej pečiatky, ktoré som získal z dátum príkaz na časová značka premenná.
Na riadku 11 som vytlačil dátum a čas vo formáte časovej pečiatky a údaje o teplote vo formáte stĺpca s pevnou šírkou.
Na riadku 12 som pomocou príkazu sleep 1 na chvíľu zadržal vykonávanie skriptu. Potom bude slučka pokračovať.
Teraz vytvorte scenár tempmon.š spustiteľný nasledujúcim príkazom:
$ chmod + x tempmon.š
Nakoniec spustite skript tempmon.š nasledujúcim príkazom:
$ ./ tempmon.šAko vidíte, skript monitora teploty funguje perfektne. Každú sekundu tlačí údaje o teplote.
Ako vidíte, keď som zvýšil zaťaženie systému, teplota sa mierne zvýšila.
Ak chcete skript na sledovanie teploty zastaviť, stlačte
Teraz, keď skript na sledovanie teploty funguje, skopírujme ho do / usr / bin adresár. Týmto spôsobom ho môžete spustiť ako akékoľvek iné príkazy systému Linux.
Ak chcete skopírovať skript tempmon.š do / usr / bin adresára, spustite nasledujúci príkaz:
$ sudo cp tempmon.sh / usr / bin / tempmon
Ako vidíte, môžem spustiť skript na sledovanie teploty rovnako, ako spúšťam štandardné príkazy systému Linux.
Úpravy tempmon pre tlač údajov o teplote vo stupňoch Fahrenheita:
Údaje o teplote môžete ľahko previesť z Celzia na Fahrenheita.
Všeobecne známy vzorec na výpočet teplôt vo stupňoch Fahrenheita z Celzia je,
F = (9/5) * C + 32Alebo
F = 1.8 * C + 32
Problém však je, že bash shell nemá potrebné funkcie na vykonávanie výpočtov s pohyblivou rádovou čiarkou. Musíte sa teda spoľahnúť na niektoré ďalšie programy, ako napr pred n. l.
pred n. l nie je predvolene nainštalovaný na Raspbian. Môžete ho však ľahko nainštalovať pomocou nasledujúceho príkazu:
$ sudo apt nainštalovať bc
pred n. l by mali byť nainštalované.
Teraz musíte upraviť skript na sledovanie teploty a vykonať potrebné výpočty na prevod teploty na Fahrenheita z Celzia pomocou pred n. l.
Upravte tempmon.š skript s nasledujúcim príkazom:
$ nano tempmon.š
Teraz urobte úpravy tak, ako sú označené na snímke obrazovky nižšie.
Tu, na riadok 4, som tlačil TEPLOTA (F) namiesto TEMP (degC).
Na riadku 9 som zmenil premennú z tepl do tepl.
Na riadku 10 som pridal výsledok premeny Celzia na Fahrenheita do premennej tempF.
Nakoniec som vytlačil hodnotu tempF premenná namiesto tepl na linke 12.
Teraz spustite skript nasledovne:
$ ./ tempmonAko vidíte, teplota je vytlačená v jednotkách Fahrenheita.
Takto teda monitorujete teplotu v Raspberry Pi. Ďakujeme, že ste si prečítali tento článok.