Инструменты пользователя

Инструменты сайта


temp_mon

Это старая версия документа!


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

Введение

Задача: мониторинг температуры в серверной и на улице, а также сохранение статистики и рисование графиков.

Для решения задачи нам понадобится:

Подготовка Raspberry Pi

Для начала нужно установить ОС на флеш-карту, как это сделать подробно описано тут. После того, как система установлена и загружается нужно ее подготовить для работы. Во-первых, настраивает локальную сеть, дату, время, часовой пояс и т.д. Во-вторых в файл /etc/modules добавляем модули необходимые для работы температурных датчиков и дисплея:

i2c-dev
w1-gpio
w1-therm

Подключение датчиков и дисплея

Для подключения температурных датчиков нам понадобится трехжильный кабель(или более), отлично подойдет четырехжильная витая пара. У датчика три пина: земля, пин по которому передаются данные и плюс питания:

Датчики подключаются парралельно на один кабель. Протягиваем кабель от места установки Raspberry через те места, где мы хотим повесить датчики. После чего в конце линии вешаем датчик, подключив его к трем жилам кабеля(запоминаем цвета жил к каким подключили пины датчика) и соответственно по ходу линии делаем любое кол-во разрезов и врезаем туда датчики на те же цвета(не перепутать, а то можно спалить датчики). Также в любом месте между пином данных и пином +3,3в надо поставить один резистор 4.7кОм, я установил его в корпусе, но можно в любом месте на линии, где удобно. Наглядная сехма подключения датчика на макетной плате(для тестов) ниже:

Итак, датчик(и) подключен(ы), вышеуказанные модули ядра загружены, после этого в каталоге /sys/bus/w1/devices/ должен появиться список ваших датчиков, у каждого свой аппаратный номер:

# ls -1 /sys/bus/w1/devices
28-0000045ef9b4
28-0000045f1c62
28-0000046022cb
w1_bus_master1

В моем случае 3 датчика, пробуем теперь считать показания(заниает 1 секунду):

# cat /sys/bus/w1/devices/28-0000045ef9b4/w1_slave
a6 00 4b 46 7f ff 0a 10 cb : crc=cb YES
a6 00 4b 46 7f ff 0a 10 cb t=10375

Вот в таком виде датчик дает показания, чтобы получить температуру в градусах нужно разделить на 1000:

10375 / 1000 = 10.375 С
temp_mon.1391674893.txt.gz · Последнее изменение: 2022/03/25 17:04 (внешнее изменение)