Pokud je teplota procesoru vašeho Raspberry Pi vyšší než 80 stupňů Celsia, v pravém horním rohu obrazovky se zobrazí ikona teploměru. Oficiálně nadace Raspberry Pi doporučuje, aby teplota vašeho zařízení Raspberry Pi byla nižší než 85 stupňů Celsia, aby správně fungovala. To je maximální limit. Ale začalo by to škrtit při 82 stupních Celsia.
V tomto článku vám ukážu, jak sledovat teplotu vašeho Raspberry Pi. Na svém zařízení Raspberry Pi 3 Model B budu používat operační systém Raspbian. Mělo by to ale fungovat na jakémkoli Raspberry Pi SBC s nainstalovaným operačním systémem Raspbian.
Měření teploty Raspberry Pi SBC:
Teplotu jádra svého zařízení Raspberry Pi můžete měřit pomocí následujícího příkazu:
$ vcgencmd measure_tempAktuální teplota jádra je 48.3 stupně Celsia, jak vidíte ve vyznačené části obrazovky níže.
Jak vidíte, pokaždé, když spustím, příkaz zobrazí jinou hodnotu teploty.
Analýza údajů o teplotě:
Údaje o teplotě, které získáváme z vcgencmd příkaz je řetězec. Nelze na něm provést žádný výpočet. Můžeme snadno použít regulární výraz k extrakci pouze údajů o teplotě a provedení libovolného typu výpočtu.
Pokud chcete použít údaje o teplotě ve skriptu prostředí Bash, můžete je extrahovat pomocí egrep příkaz takto:
$ vcgencmd measure_temp | egrep -o '[0-9] * \.[0-9] * 'Jak vidíte, tisknou se pouze údaje o teplotě. Před nebo po něm nic není.
Můžete jej použít ve svém shell skriptu (řekněme print_temp.sh) jak následuje:
$ nano print_temp.sh
Tady na řádku 3 jsem nastavil tepl proměnná na analyzovaná teplotní data, která získávám z vcgencmd a grep příkaz.
Na řádku 5 jsem použil echo vytisknout obsah tepl proměnná na obrazovce.
Řádek 1 slouží k informování systému Linux, že skript by měl být spuštěn pomocí / bin / bash ve výchozím stavu.
Nyní vytvořte spustitelný skript pomocí následujícího příkazu:
$ chmod + x print_temp.sh
Nyní spusťte skript následujícím způsobem:
$ ./ print_temp.shJak vidíte, požadovaný výstup se vytiskne na obrazovku.
Psaní skriptu pro monitorování teploty Raspberry Pi:
Nyní, když můžeme analyzovat údaje o teplotě, které jsme získali z vcgencmd příkaz, můžeme snadno napsat skript pro monitorování teploty pro Raspberry Pi. Skript pro sledování teploty vytiskne každou sekundu na obrazovku aktuální časovou značku a teplotu jádra v pěkně formátovaném formátu.
Nejprve vytvořte nový skript tempmon.sh s následujícím příkazem:
$ dotykový tempmon.shNyní upravte tempmon.sh skript s následujícím příkazem:
$ nano tempmon.sh
Nyní zadejte následující řádky kódů a uložte soubor pomocí
Tady, na řádku 4, printf se používá k tisku řetězců TIMESTAMP a TEMP (degC) jako sloupce s pevnou šířkou.
Na řádku 5 jsem použil printf znovu vytisknout přerušovanou čáru, jen aby byl výstup čitelnější a přitažlivější.
Na řádku 7-13 jsem běžel nekonečnou smyčku, abych každou sekundu tiskl údaje o teplotě.
Na řádku 9 jsem uložil analyzovaná data o teplotě na tepl proměnná.
Na řádku 10 jsem uložil data časového razítka, která jsem získal z datum příkaz na časové razítko proměnná.
Na řádku 11 jsem vytiskl datum a čas ve formátu časového razítka a údaje o teplotě ve formátu sloupce s pevnou šířkou.
Na řádku 12 jsem použil příkaz sleep 1 k zadržení spuštění skriptu na sekundu. Poté bude smyčka pokračovat.
Nyní vytvořte skript tempmon.sh spustitelný pomocí následujícího příkazu:
$ chmod + x tempmon.sh
Nakonec spusťte skript tempmon.sh s následujícím příkazem:
$ ./ tempmon.shJak vidíte, skript pro sledování teploty funguje perfektně. Tiskne údaje o teplotě každou sekundu.
Jak vidíte, jak jsem zvyšoval zatížení systému, teplota se mírně zvýšila.
Pokud chcete skript sledování teploty zastavit, stiskněte
Nyní, když skript pro monitorování teploty funguje, zkopírujte jej do / usr / bin adresář. Tímto způsobem jej můžete spustit jako jakékoli jiné příkazy Linuxu.
Chcete-li zkopírovat skript tempmon.sh do / usr / bin adresáře, spusťte následující příkaz:
$ sudo cp tempmon.sh / usr / bin / tempmon
Jak vidíte, můžu spustit skript pro sledování teploty, stejně jako běžím standardní příkazy Linuxu.
Úpravy tempmon pro tisk údajů o teplotě ve stupních Fahrenheita:
Data teploty můžete snadno převést z Celsia na Fahrenheita.
Široce známý vzorec pro výpočet teploty ve stupních Fahrenheita z Celsia je,
F = (9/5) * C + 32Nebo
F = 1.8 * C + 32
Problém však je, že bash shell nemá potřebné funkce k provádění výpočtů s plovoucí desetinnou čárkou. Musíte se tedy spolehnout na některé další programy, jako je před naším letopočtem.
před naším letopočtem není ve výchozím nastavení nainstalován na Raspbian. Můžete jej ale snadno nainstalovat pomocí následujícího příkazu:
$ sudo apt install bc
před naším letopočtem by měl být nainstalován.
Nyní musíte upravit skript pro sledování teploty a provést nezbytné výpočty pro převod teploty na Fahrenheita z Celsia pomocí před naším letopočtem.
Upravte tempmon.sh skript s následujícím příkazem:
$ nano tempmon.sh
Nyní proveďte úpravy podle označení na snímku obrazovky níže.
Tady na řádku 4 jsem tiskl TEPLOTA (F) namísto TEPLOTA (degC).
Na řádku 9 jsem změnil proměnnou z tepl na tepl.
Na řádku 10 jsem přidal výsledek převodu Celsia na Fahrenheita do proměnné tempF.
Nakonec jsem vytiskl hodnotu tempF proměnná místo tepl na řádku 12.
Nyní spusťte skript následujícím způsobem:
$ ./ tempmonJak vidíte, teplota je vytištěna v jednotkách Fahrenheita.
Takto tedy monitorujete teplotu v Raspberry Pi. Děkujeme za přečtení tohoto článku.