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

Raspberry Pi Temperature Monitor

Raspberry Pi - мощный одноплатный компьютер (SBC). Его можно использовать для выполнения множества сложных задач. Но это приведет к увеличению температуры процессора устройств Raspberry Pi. Что нехорошо. Производительность Raspberry Pi SBC пострадает из-за температуры. Это также известно как тепловое дросселирование.

Если температура процессора вашего Raspberry Pi превышает 80 градусов по Цельсию, вы увидите значок термометра в правом верхнем углу экрана. Официально Raspberry Pi Foundation рекомендует, чтобы температура вашего устройства Raspberry Pi была ниже 85 градусов по Цельсию, чтобы оно работало должным образом. Это максимальный предел. Но он начинал троттлинг при 82 градусах Цельсия.



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



Вы можете измерить температуру ядра вашего устройства Raspberry Pi с помощью следующей команды:



$vcgencmd measure_temp

Текущая температура ядра составляет 48,3 градуса по Цельсию, как вы можете видеть в отмеченном разделе на скриншоте ниже.

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



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

Данные о температуре, которые мы получаем от vcgencmd команда - это строка. Вы не можете производить по нему какие-либо вычисления. Мы можем легко использовать регулярное выражение, чтобы извлекать только данные о температуре и выполнять с ними любые вычисления.

Если вы хотите использовать данные о температуре в сценарии оболочки Bash, вы можете извлечь данные о температуре с помощью egrep команду следующим образом:

$vcgencmd measure_temp| egrep -или '[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

Как видите, скрипт монитора температуры работает отлично. Он печатает данные о температуре каждую секунду.

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

Если вы хотите остановить скрипт мониторинга температуры, нажмите + c . Мониторинг температуры больше не работает, как вы можете видеть на скриншоте ниже.

Теперь, когда скрипт мониторинга температуры работает, давайте скопируем его в / usr / bin каталог. Таким образом, вы можете запускать его, как и любые другие команды Linux.

Чтобы скопировать скрипт tempmon.sh к / usr / bin каталог, выполните следующую команду:

$судо cptempmon.sh/usr/являюсь/темпмон

Как видите, я могу запустить сценарий мониторинга температуры так же, как стандартные команды Linux.

Изменение темпмон для печати данных о температуре в градусах Фаренгейта:

Вы можете легко преобразовать данные о температуре из градусов Цельсия в градусы Фаренгейта.

Широко известная формула для расчета температуры в градусах Фаренгейта от Цельсия:

F =(9/5)*C +32
Или
F =1,8 *C +32

Но проблема в том, что оболочка bash не имеет необходимых функций для выполнения вычислений с плавающей запятой. Итак, вам придется полагаться на некоторые другие программы, такие как до н.э .

до н.э по умолчанию не устанавливается на Raspbian. Но вы можете легко установить его с помощью следующей команды:

$судоподходящийустановить до н.э

до н.э должен быть установлен.

Теперь вам нужно изменить сценарий мониторинга температуры и произвести необходимые вычисления для преобразования температуры в градусы Фаренгейта из Цельсия с помощью до н.э .

Отредактируйте tempmon.sh скрипт с помощью следующей команды:

$наноtempmon.sh

Теперь внесите изменения, как показано на скриншоте ниже.

Здесь, в строке 4, я напечатал ТЕМП (F) вместо того ТЕМП (град. C) .

В строке 9 я изменил переменную с темп к tempC .

В строке 10 я добавил результат преобразования Цельсия в Фаренгейта в переменную. tempF .

Наконец, я распечатал значение tempF переменная вместо темп в строке 12.

Теперь запустите сценарий следующим образом:

$./темпмон

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

Вот как вы отслеживаете температуру в Raspberry Pi. Спасибо, что прочитали эту статью.