Монитор за температурата на Raspberry Pi

Raspberry Pi Temperature Monitor



Raspberry Pi е мощен единичен компютър (SBC). Може да се използва за извършване на много сложни задачи. Но това ще повиши температурата на процесора на устройствата Raspberry Pi. Което не е добре. Производителността на Raspberry Pi SBC ще пострада поради температурата. Това е известно още като термично дроселиране.

Ако температурата на процесора на вашия Raspberry Pi е над 80 градуса по Целзий, ще видите икона на термометър в горния десен ъгъл на екрана. Официално Фондация Raspberry Pi препоръчва температурата на вашето Raspberry Pi устройство да бъде под 85 градуса по Целзий, за да работи правилно. Това е максималната граница. Но ще започне да се намалява при 82 градуса по Целзий.







В тази статия ще ви покажа как да наблюдавате температурата на вашия Raspberry Pi. Ще използвам операционна система Raspbian на моето устройство Raspberry Pi 3 Model B. Но трябва да работи на всеки Raspberry Pi SBC с инсталирана операционна система Raspbian.



Можете да измерите основната температура на вашето Raspberry Pi устройство със следната команда:



$vcgencmd мярка_темп

Текущата температура на ядрото е 48,3 градуса по Целзий, както можете да видите в маркирания раздел на екрана по -долу.





Както можете да видите, всеки път, когато стартирам, командата показва различна стойност на температурата.



Анализиране на данните за температурата:

Данните за температурата, които получаваме от vcgencmd командата е низ. Не можете да извършвате никакви изчисления по него. Можем лесно да използваме регулярен израз, за ​​да извлечем само данните за температурата и да извършим всякакъв вид изчисления върху тях.

Ако искате да използвате температурните данни в скрипт на Bash shell, можете да извлечете данните за температурата с егреп команда, както следва:

$vcgencmd мярка_темп| егреп -или '[0-9] * . [0-9] *'

Както можете да видите, се отпечатват само данните за температурата. Няма нищо преди или след него.

Можете да го използвате в скрипта си на обвивката (да речем print_temp.sh ) както следва:

$наноprint_temp.sh

Тук, на ред 3, зададох темп променлива към данните за анализираната температура, които получавам от vcgencmd и захващане команда.

На линия 5 използвах изхвърлен за отпечатване на съдържанието на темп променлива на екрана.

Ред 1 се използва, за да каже на Linux, че скриптът трябва да се изпълни с /bin/bash по подразбиране.

Сега направете скрипта изпълним със следната команда:

$chmod+ x print_temp.sh

Сега стартирайте скрипта, както следва:

$./print_temp.sh

Както можете да видите, желаният изход се отпечатва на екрана.

Писане на скрипт за наблюдение на температурата на Raspberry Pi:

Сега, когато можем да анализираме данните за температурата, които получаваме от vcgencmd команда, можем лесно да напишем скрипт за мониторинг на температурата за Raspberry Pi. Скриптът за мониторинг на температурата ще отпечатва текущата времева отметка и основната температура всяка секунда на екрана по добре форматиран начин.

Първо създайте нов скрипт tempmon.sh със следната команда:

$докосванеtempmon.sh

Сега редактирайте tempmon.sh скрипт със следната команда:

$наноtempmon.sh

Сега въведете следните редове кодове и запишете файла с + х и след това натиснете и следван от .

Тук, на ред 4, printf се използва за отпечатване на низовете TIMESTAMP и TEMP (degC) като колона с фиксирана ширина.

На линия 5 използвах printf отново, за да отпечатате пунктирана линия, само за да направите изхода по -четим и привлекателен.

На ред 7-13 пуснах безкраен цикъл, за да отпечатвам данните за температурата всяка секунда.

На ред 9 съхранявах данните за анализираната температура в темп променлива.

На ред 10 съхранявах данните за времевата отметка, които получих от дата команда на времева марка променлива.

На ред 11 отпечатах датата и часа във формат с времева отметка, а данните за температурата във формат с колона с фиксирана ширина.

На ред 12 използвах командата sleep 1, за да задържа изпълнението на скрипта за секунда. След това цикълът ще продължи.

Сега направете сценария tempmon.sh изпълним със следната команда:

$chmod+ x tempmon.sh

Накрая стартирайте скрипта tempmon.sh със следната команда:

$./tempmon.sh

Както можете да видите, скриптът за мониторинг на температурата работи перфектно. Той отпечатва данните за температурата всяка секунда.

Както можете да видите, когато увеличих натоварването на системата, температурата леко се повиши.

Ако искате да спрете скрипта за мониторинг на температурата, натиснете + ° С . Мониторингът на температурата вече не работи, както можете да видите на екрана по -долу.

Сега, когато скриптът за мониторинг на температурата работи, нека го копираме в /usr/bin директория. По този начин можете да го изпълните като всички други команди на Linux.

За да копирате скрипта tempmon.sh към /usr/bin директория, изпълнете следната команда:

$sudo cptempmon.sh/usr/съм/tempmon

Както можете да видите, мога да изпълня скрипта за мониторинг на температурата точно както изпълнявам стандартни команди на Linux.

Промяна tempmon за отпечатване на температурни данни във Фаренхайт:

Можете лесно да конвертирате температурните данни от Целзий в Фаренхайт.

Широко известната формула за изчисляване на температурите по Фаренхайт от Целзий е,

F =(9/5)*C +32
Или
F =1.8 *C +32

Но проблемът е, че bash shell няма необходими функции за извършване на изчисления с плаваща запетая. Така че, трябва да разчитате на някои други програми, като напр пр.н.е. .

пр.н.е. не е инсталиран на Raspbian по подразбиране. Но можете лесно да го инсталирате със следната команда:

$sudoподходящИнсталирай пр.н.е.

пр.н.е. трябва да се инсталира.

Сега трябва да промените скрипта за мониторинг на температурата и да направите необходимите изчисления, за да преобразувате температурата в Фаренхайт от Целзий с пр.н.е. .

Редактирайте tempmon.sh скрипт със следната команда:

$наноtempmon.sh

Сега направете промените, както е отбелязано на екрана по -долу.

Тук, на ред 4, отпечатах TEMP (F) вместо TEMP (degC) .

На ред 9 промених променливата от темп да се tempC .

На ред 10 добавих резултата от преобразуването на Целзий към Фаренхайт към променлива tempF .

Накрая отпечатах стойността на tempF променлива вместо темп на линия 12.

Сега стартирайте скрипта, както следва:

$./tempmon

Както можете да видите, температурата се отпечатва в единица по Фаренхайт.

Така че следите температурата в Raspberry Pi. Благодаря, че прочетохте тази статия.