Подключение DS18B20 к Raspberry Pi 2/3
Наконец-то дождался когда приедет датчик DS18B20 на плате. Самому паять и делать плату под это дело было не с руки ибо ради кусочка тесктолита один на один сантиметра пришлось бы купить пластину десять на десять и потратить на неё почти 150 рублей. В то же время, датчик Dallas DS18B20, два резистора, текстолит, светодиодик, три штырька и шелкография вышли мне всего за 65 рублей. Это дешевле чем купить голый датчик в местном магазине. Напомню, что за, что отвечает на платах Raspberry второй и третьей версии.
Плата с распаяным датчиком подключается тремя проводками: питание, земля, данные. Резистор для работы линии уже распаян на плате, по этому достаточно лишь подключить проводки.
- Питание 3.3 вольт — 1
- Земля — 6
- Данные — 7
Подключал всё с выключенным питанием, так как пришлось разбирать корпус и сверлить дырочки. И так, после включения питания даём команду:
pi@raspberrypi:~ $ sudo modprobe w1-gpio && sudo modprobe w1_therm
Потом переходим в каталог в который скидываются данные полученные с датчиков. Либо просто распечатываем содержимое этого каталога:
pi@raspberrypi:~ $ ls -l /sys/bus/w1/devices/ total 0 lrwxrwxrwx 1 root root 0 Sep 13 17:06 28-0113163a2b7f -> ../../../devices/w1_bus_master1/28-0113163a2b7f lrwxrwxrwx 1 root root 0 Sep 13 17:06 w1_bus_master1 -> ../../../devices/w1_bus_master1
Так как подключен всего один датчик, то каталог с серийным номером устройства один. На самом деле можно подключать несколько датчиков паралельно и в каталоге будут появляться каталоги с серийниками всех подключенных датчиков. Можно мониторить десяток термометров по всему дому и плюс смотреть уличную температуру. Всё зависит от вашей фантазии. И так, вот, что лежит в моём каталоге:
Так же нужно редактировать файлик /boot/config.txt и добавить туда одну строчку:
dtoverlay=w1-gpio
Далее можно просмотреть файлик содержащий входящую информацию.
pi@raspberrypi:~ $ cat /sys/bus/w1/devices/28-0113163a2b7f/w1_slave 55 01 4b 46 7f ff 0c 10 be : crc=be YES 55 01 4b 46 7f ff 0c 10 be t=21312
В этой мешанине нас интересуют всего два значения: crc= и t=. Первое значение показывает корректность полученных данных, а второе — температуру. Но второе значение необходимо разделить на тысячу и получим действительую температуру конкретного датчика. Но видя столько знаков не думайте, что датчик имеет такую высокую температурную точность. Реальная точность — это половина градуса. Но данные довольно корректные, я для проверки использовал два спиртовых градусника. Собственно у меня небыло лабораторных термометров, чтобы гарантировать точность. Для бытовых нужд такой точности хватит с запасом.
В дальнейшем я хочу подключить ещё один термометр и выкинуть его на улицу. Тем более, что сейчас наступает зима и хочется иметь довольно актуальные данные по температуре за бортом и в квартире.
Тэги: ИТ, программирование, Raspberry
Отредактировано:2021-01-31 15:11:15
Онлайн-метеостанцию мастеришь?