Это старая версия документа!
Задача: мониторинг температуры в серверной и на улице, а также сохранение статистики и рисование графиков.
Для решения задачи нам понадобится:
Для начала нужно установить ОС на флеш-карту, как это сделать подробно описано тут. После того, как система установлена и загружается нужно ее подготовить для работы. Во-первых, настраивает локальную сеть, дату, время, часовой пояс и т.д. Во-вторых в файл /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 С