Смотрим температуру процессора Raspberry Pi
Raspberry Pi 3. Мониторинг температуры процессора и других показателей
Продолжаем вникать в тонкости работы с микрокомпьютером Raspberry Pi.
В этой публикации я расскажу о том, как смотреть температуру процессора Raspberry Pi 3 и отслеживать другие показатели системы.
Процессор Raspberry Pi рассчитан на работу в пределах температуры до 80 ° C, при его нагреве свыше этой температуры начинается так называемый “троттлинг” – сбрасывание частот, что тормозит работу системы, но зато позволяет избежать преждевременной гибели устройства от перегрева. Так что будет не лишним время от времени посматривать температуру процессора “малины”, оценивая реальный нагрев при нагрузке и эффективность установленного охлаждения.
Что нам понадобится
Для осуществления описываемых в этой статье действий понадобится:
Подразумевается, что на Raspberry Pi уже установлена и настроена OS Raspbian.
Так же подразумевается, что настроен удаленный доступ к Raspberry Pi по протоколам SSH/VNC. Это не обязательное условие, но наличие удаленного доступа очень облегчает работу с “малинкой”. Его настройке посвящена отдельная статья на этом блоге.
Мониторинг температуры с помощью консольных команд
В Raspberry Pi можно узнать температуру процессора при помощи ввода консольной команды:
В результате увидим примерно следующее:
Как видно, рабочая температура моего микрокомпьютера составляет 53,7 ° C, что в принципе в пределах нормы для пассивного охлаждения и достаточно маленького и плохо вентилируемого корпуса.
Также можно считать температуру процессора Raspberry Pi напрямую с температурного датчика:
Она измеряется в миллиградусах, для перевода в градусы Цельсия нужно разделить полученное число на 1000:
При считывании значения с датчика мы получаем более точное значение температуры – без округления до первого знака после запятой, как в случае использования команды vcgencmd measure_temp. Другое дело, что смысла в такой точности при использовании Raspberry Pi в быту нет.
Но на всякий случай я решил написать о существовании такой возможности.
Conky – гибко настраиваемый системный монитор
Другой способ мониторинга системных показателей Raspberry Pi заключается к установке системного монитора Conky.
Он доступен в стандартных репозиториях:
После установки Conky необходимо сконфигурировать, создав и отредактировав файл .conkyrc в домашнем каталоге:
Можно очень гибко настроить Conky под себя, воспользовавшись детальной инструкцией на сайте русскоязычного сообщества Ubuntu.
Я же выложу типовой конфиг, который установил сам и который 100% работает:
Этот текст нужно вставить и сохранить в файл .conkyrc, после чего можно запускать самое приложение:
Системный монитор будет отображаться прямо на рабочем столе, и если введен конфиг из примера выше, то выглядеть он будет так:
RPi Monitor – мониторинг состояния Raspberry Pi через браузер
И еще один способ мониторинга температуры процессора и других системных показателей доступен при помощи пакета RPi-Monitor, разработанного, как видно из названия, специально для Raspberry Pi и аналогичных ему одноплатных микрокомпьютеров.
Этот пакет может отслеживать температуру процессора, загрузку процессора и оперативной памяти, уровень заполнения SD-карты, аптайм системы, объемы проходящего по сетевым подключениям трафика, а также строить графики изменения всех этих показателей и поддерживает аддоны. Например, в случае подключения к GPIO датчика влажности и температуры DHT11/DHT22, можно легко настроить RPi-Monitor для измерения не только температуры процессора, но и температуры и влажности окружающей среды.
Его нет в официальном репозитории, поэтому установка происходит в несколько действий.
Для начала добавляем поддержку https для менеджера пакетов APT:
Теперь пропишем открытый ключ для доступа к репозиторию:
Добавим репозиторий RPi-Monitor в список доступных репозиториев:
Наконец, обновим индекс пакетов с учетом добавленного репозитория и установим RPi-Monitor:
На этом установка завершена, но нужно выполнить еще три консольных команды.
Первая включает опцию автоматического мониторинга статуса установленных пакетов (с ней RPi-Monitor будет показывать сколько установленных пакетов доступно для обновления), вторая обновляет этот статус прямо сейчас, третья перезагружает RPi-Monitor:
После этого RPi-Monitor окончательно готов к использованию.
Он доступен из браузера по адресу http://ip-адрес-raspberry-pi:8888 и отображает состояние системы в следующем виде:
Кстати, только после установки RPi-Monitor я узнал, что в режиме простоя Raspberry Pi 3 сбрасывает частоты процессора до 600Мгц, а при появлении более-менее ресурсоемкой задачи автоматически повышает их до стандартных 1200Мгц.
Заключение
Самый простой способ посмотреть температуру процессора Raspberry Pi – выполнить соответствующую консольную команду. Он доступен по умолчанию, он всегда работает, для него не надо ничего настраивать.
Если планируется использовать Raspberry Pi как обычный компьютер (с подключенным монитором, мышью, клавиатурой и запущенным графическим интерфейсом PIXEL), то есть смысл установить системный монитор Conky и при помощи руководства настроить вывод информации полностью под свои нужды.
Если Raspberry Pi планируется использовать удаленно (т.е. управляя ей по сети при помощи протоколов SSH/VNC), то самым удобным вариантом является установка RPi Monitor. Этот монитор не может похвастаться такой гибкостью как Conky, зато доступен из браузера как с самой “малины”, так и с любого подключенного к локальной сети устройства. Кроме того, он готов к работе сразу же после установки и вообще не нуждается в настройке.
Публикация температуры и остальных параметров системы Raspberry через MQTT
Публикуем температуру, использование процессора, памяти и диска в MQTT для Home Assistant
Все точно работает на Raspbian Stretch, актуальной на момент данной публикации.
Так же все работает и на последней версии Raspbian Jessie
Есть очень удобная утилита awk, способная вытягивать только нужную нам информацию из выдаваемых данных. Именно ее будем использовать в скриптах.
Итак, у меня есть Hassio на отдельной малине, там же установлен брокер mosquitto.
Допустим, адрес hassio с брокером mosquitto 192.168.1.101
Так же у меня есть еще одна raspberry, с установленной xeoma, и я хочу получать информацию о ее состоянии в Home Assistant.
Я буду получать информацию о температуре процессора, загруженности процессора, использования оперативной памяти и жесткого диска (в данном случае корня флешки — / ), а так же процент использования usb диска и аптайм системы
Для начала установим необходимые пакеты python3:
Теперь установим mosquitto:
Теперь нужно создать скрипты.
Создадим папку mqtt в домашней директории raspberry:
Пояснения по скриптам:
hostname=»192.168.1.101» это адрес брокера
«/rpi/temp» это топик
check_output([«vcgencmd«,»measure_temp«]) это команда для отображения
Первый скрипт температуры:
Скрипт загрузки процессора:
и для него же bash скрипт с командой:
Скрипт загрузки оперативной памяти:
bash скрипт с командой:
Скрипт занятого места hdd:
bash скрипт с командой:
Скрипт занятого места usbhdd1:
в скрипте стоит /hdd/ — это ориентир для поиска утилитой awk, у меня usb диск смонтирован в mnt/hdd, поэтому по hdd выполняется поиск и выводит колонку №5 в вывод
Скрипт аптайма:
Даем права на выполнение всех этих скриптов:
И теперь нужно проверить их выполнение, выполнив по очереди каждый:
Должно выйти сообщение:
Теперь настроим автоматическое выполнение всех этих скриптов через cron
и добавляем в самом конце:
Теперь каждые 30 секунд будут выполняться все скрипты по очереди, аптайм раз в минуту
Чтобы добавить в Home Assistant, в sensors.yaml:
Настраиваем имена, иконки и группы, и в итоге получается вот так:
Обновил bash скрипт аптайма и сенсоры аптайма в Home Assistant, теперь аптайм выглядит так:
Публикация температуры и остальных параметров системы Raspberry через MQTT
Публикуем температуру, использование процессора, памяти и диска в MQTT для Home Assistant
Все точно работает на Raspbian Stretch, актуальной на момент данной публикации.
Так же все работает и на последней версии Raspbian Jessie
Есть очень удобная утилита awk, способная вытягивать только нужную нам информацию из выдаваемых данных. Именно ее будем использовать в скриптах.
Итак, у меня есть Hassio на отдельной малине, там же установлен брокер mosquitto.
Допустим, адрес hassio с брокером mosquitto 192.168.1.101
Так же у меня есть еще одна raspberry, с установленной xeoma, и я хочу получать информацию о ее состоянии в Home Assistant.
Я буду получать информацию о температуре процессора, загруженности процессора, использования оперативной памяти и жесткого диска (в данном случае корня флешки — / ), а так же процент использования usb диска и аптайм системы
Для начала установим необходимые пакеты python3:
Теперь установим mosquitto:
Теперь нужно создать скрипты.
Создадим папку mqtt в домашней директории raspberry:
Пояснения по скриптам:
hostname=»192.168.1.101» это адрес брокера
«/rpi/temp» это топик
check_output([«vcgencmd«,»measure_temp«]) это команда для отображения
Первый скрипт температуры:
Скрипт загрузки процессора:
и для него же bash скрипт с командой:
Скрипт загрузки оперативной памяти:
bash скрипт с командой:
Скрипт занятого места hdd:
bash скрипт с командой:
Скрипт занятого места usbhdd1:
в скрипте стоит /hdd/ — это ориентир для поиска утилитой awk, у меня usb диск смонтирован в mnt/hdd, поэтому по hdd выполняется поиск и выводит колонку №5 в вывод
Скрипт аптайма:
Даем права на выполнение всех этих скриптов:
И теперь нужно проверить их выполнение, выполнив по очереди каждый:
Должно выйти сообщение:
Теперь настроим автоматическое выполнение всех этих скриптов через cron
и добавляем в самом конце:
Теперь каждые 30 секунд будут выполняться все скрипты по очереди, аптайм раз в минуту
Чтобы добавить в Home Assistant, в sensors.yaml:
Настраиваем имена, иконки и группы, и в итоге получается вот так:
Обновил bash скрипт аптайма и сенсоры аптайма в Home Assistant, теперь аптайм выглядит так:
Смотрим температуру процессора Raspberry Pi
Скрипт на python 3, для мониторинга текущей температуры процессора Raspberry Pi 4 и автоматического охлаждения платы вентилятором.
Самое главное, для чего это нужно. Сама по себе малинка очень горячая, как и ее все аналоги, взять тот же оранж пи и пр. В работе на холостом ходу температура еще терпимая, но стоит к примеру начать сборку того же OPENCV и все, пишите письма. Как правило в комплекте нет даже радиаторов, которые нужно или покупать отдельно или снимать с подходящих по размеру плат. Но пассивного охлаждения зачастую мало, выделяемое тепло нужно с пластин радиатора еще и куда-то рассеивать и в этом существенно может помочь пусть даже небольшой вентилятор. Вариант с постоянным охлаждением имеет месту быть, но в данном посте речь пойдет об автоматической работе, для чего и служит этот скрипт, который всегда и без проблем, можно изменить под свои нужды.
После запуска скрипта, в консоль выводится текущая температура процессора и актуальное состояние вентилятора (интервал проверки составляет 2 секунды). При превышении заданной в скрипте температуры (55 градусов по цельсию), включается охлаждение на 20 секунд, после снижения температуры (до 40 градусов по цельсию) вентилятор автоматически выключается.
В скрипте можно вручную задать параметры:
FAN_ON_MODE = 55 # (в градусах Цельсия) Верхний температурный порог, при котором включается охлаждение.
FAN_OFF_MODE = 40 # (в градусах Цельсия) Нижний температурный порог, при котором охлаждение отключено
SLEEP_INTERVAL = 2 # (в секундах) Интервал проверки температуры
SLEEP_INTERVAL_FAN = 20 # (в секундах) Интервал проверки температуры
FAN_PIN = 21 # GPIO порт.
Данный скрипт можно запускать как вручную, так и добавить в крон (автозапуск)
Необходимые компоненты:
— Raspberry Pi 4 Model B (или аналог)
— вентилятор 5V
— резистор 680Ом (в моем случае это просто сведодиод)
— NPN транзистор (2N2222)
Так же понадобится установить отдельно в Python3, модуль GPIO
pip install RPi.GPIO
pip3 install RPi.GPIO
Общая схема
Общий вид
Ссылка на github.com [скрипт + описание]: Not for commercial use.
Вы нашли это полезным ?! Рад это слышать!
Спасибо за чтение!
Как подключать датчики к Raspberry Pi и работать с ними
Raspberry Pi – одноплатный компьютер, который эффективно использовать для выполнения практически любых задач. Это является осуществимым благодаря возможности подключать к нему дополнительные модули, а в частности – датчики.
Raspberry Pi – одноплатный компьютер, который эффективно использовать для выполнения практически любых задач. Это является осуществимым благодаря возможности подключать к нему дополнительные модули, а в частности – датчики.
Почти любое сложное устройство (например, квадрокоптер) требует наличия сенсоров, считывающих информацию из окружающей среды. Также при выполнении некоторых задач необходимо следить за состоянием определенных компонентов системы – в частности, процессора.
Как узнать температуру CPU Raspberry Pi
Чем более сложные задачи возлагаются на компьютер, тем больше нагревается его процессор. Перегрев, в свою очередь, способен привести к выходу из строя CPU.
На Raspberry Pi температура определяется очень легко. Для этого не нужно никаких модулей. В Raspberry Pi датчик температуры процессора встроен непосредственно в устройство.
Чтобы узнать температуру процессора Raspberry, потребуется открыть консоль и ввести в неё команду: vcgencmd measure_temp. После нажатия на кнопку Enter будет выведена информация о том, насколько в текущий момент разогрет CPU.
Благодаря этому встроенному датчику возможно организовать автоматическое включение охлаждения Raspberry. Код соответствующего скрипта можно найти, например, на GitHub.
Управление электроприборами через Raspberry Pi
Датчики температуры и влажности окружающей среды
Если температуру процессора можно получать со встроенного сенсора, для фиксирования условий окружающей среды нужен дополнительный модуль. Чаще всего для соответствующих целей применяется одна из двух следующих моделей: DHT11 и DHT22. Нужно рассмотреть их отличия.
DHT11 имеет следующие характеристики:
- определяет влажность в диапазоне 20-80% с погрешностью в 5%;
- фиксирует температуру от 0 до +50 градусов (погрешность – 2%);
- при считывании округляет показатели до целых.
Сенсор DHT22 имеет более продвинутые характеристики:
- 0-100% (5%);
- -40-125 градусов (0,5%);
- данные определяются с точностью до десятых долей.
Естественно эти устройства отличаются по цене – DHT11 для Raspberry Pi стоит несколько дешевле, чем модель DHT22. Однако в некоторых случаях только последняя способна выполнять задачи, которые на нее возлагает пользователь. Например, её часто используют в качестве компонента умного дома.
Подключить любой из указанных датчиков очень легко – нужно подсоединить его к пинам: 5 вольт, ground и одному из портов.
Следует отметить, что эти сенсоры не используют Raspberry Pi 1 wire – в них применяется особый протокол. Также для функционирования данных устройств необходимы драйвера для работы с GPIO для C. Это следует учитывать при подключении.
Сам драйвер, который называется Adafruit_DHT_Driver, нужно загружать с GitHub. Принципы работы с DHT изложены непосредственно в указанном хранилище, поэтому рассматривать их отдельно нет смысла.
После того как всё вышеперечисленное выполнено, можно будет работать с датчиком через консоль или скрипт (подходящий также возможно найти на “Гитхабе”).
Какие еще существуют датчики для Raspberry Pi
Для “Малины” к текущему моменту создано огромное количество датчиков – практически для любых задач. Например, в продаже можно встретить датчик движения Raspberry, сенсоры определения ориентации и ускорения (акселерометр), датчики освещения, напряжения, отпечатков пальцев и т. д.
Их стоимость варьируется от 150 рублей до нескольких тысяч. Некоторые из них, в свою очередь, по цене даже дороже, чем сам одноплатный компьютер.
Подключение других датчиков
Подключение других устройств к Raspberry происходит примерно таким же образом. По-большому счету отличается только набор драйверов и принципы взаимодействия с сенсором.
При работе с разными датчиками обязательно следует учитывать, что с некоторыми из них возможно взаимодействовать только при помощи определенных технологий – например, Java.
Модулей существует множество и рассматривать работу со всеми нет смысла, так как есть официальная документация. Более того, часто в комплект поставки кладут инструкцию, которая рассказывает намного больше, чем почти любая тематическая статья в интернете.
Благодаря широкому выбору датчиков из Raspberry Pi любого поколения возможно сделать практически все что угодно – главное, чтобы хватило мощности процессора и объема оперативной памяти. Поэтому “Малину” сейчас активно применяют в самых разных областях деятельности. Так, Raspberry можно использовать в качестве одного из главных компонентов умного дома, делать на её основе различные радиоуправляемые устройства и т. д. Фактически потенциал этого одноплатного компьютера ограничен исключительно фантазией того, кто с ним взаимодействует.
до тега
Первая часть скрипта (DS18B20) взята из книги Simon Monk [2], часть для BMP180 из скрипта Tony DiCola ( simpletest.py ), запись данных и графики параметров – ресурс electromost.com [3],[4]. Не забудьте в скрипте заменить идентификатор датчика на свой (подчеркнут). Я прописал датчик, который измеряет температуру наружного воздуха.
Строка pressure = pressure*0.75/100 – перевод Па в мм рт. столба.
Чтобы посмотреть графики, нужно в браузере ввести, например, 192.168.1.28:8000. После ввода логина и пароля загрузится файл /home/pi/examples/html/index.html:
Щелкнув мышкой по одной из картинок, вы загрузите из этой папки либо temp.html, либо press.html и, соответственно, будет построен график температуры или давления.
В интернете полно сервисов по мониторингу датчиков, но они могут быть временами недоступны или вообще прекратить работу. Например, тот же Weaved, который предлагается при установке WebIOPi. Гораздо надежнее предусмотреть мониторинг в собственном проекте, тогда вы ни от чего не будете зависеть.
Файлы данных даны для примера, удалите их и создайте свои, добавив в них по одной строчке Date,Temperature или Date,Pressure. Со временем в файлах накапливается много данных, построение графиков замедляется, браузер может даже выдать ошибку, поэтому устаревшие данные нужно удалять. Удобно это делать в редакторе mcedit – встроенном редакторе Midnight Commander (mc). Установите менеджер mc командой sudo apt install mc, перейдите в папку с данными и дайте команду, например, mcedit data_press.txt. Чтобы посмотреть последнюю строчку данных (для проверки работы скрипта), нажмите Ctrl+End. Если курсор находится в середине файла, то нажмите Ctrl+Home для перехода к началу файла. Поставьте курсор на первую строку данных, нажмите F3 и стрелку вниз. Строка будет выделена. Для ускорения процесса нажимайте Page Down. Дойдя до нужной даты, нажмите F8 (Удалить помеченный блок). Редактор выдаст сообщение о том, что блок слишком велик и восстановить его не удастся. Нажмите Продолжить. Блок будет удален. Для сохранения файла нажмите F2 и затем еще раз Сохранить. Редактор может выдать предупреждение – файл используется внешней программой, записать поверх? Нажмите Да. Для выхода из редактора нажмите два раза Esc.
Иногда в файлы данных может записаться сбойное значение – очень большое или очень маленькое, это исказит вид графика. Как удалить сбой, описано в конце статьи WebIOPi-0.7.1 и Raspberry Pi 3 – подключение датчика давления BMP180 .
Если можно выделить диапазон значений, выход за пределы которого можно рассматривать как сбой, тогда можно использовать условный оператор.
Например, такой: