Подключение DS18B20 к Raspberry Pi
Еще одна «памятка». На этот раз чтобы не забыть как я подключал датчик температуры DS18B20 к Raspberry Pi.
Схема подключения широко известна:
Для начала включаем 1-wire в raspi-config.
$ sudo apt-get upgrade
$ sudo sudo modprobe w1-gpio
$ sudo sudo modprobe w1_therm
Дальше правим файл /boot/config.txt
Добавляем строчку:
Дальше:
Увидим что-то типа этого:
28-02155375cdff w1_bus_master1
Вот первый номер и есть ID датчика. В моем случае это 28-02155375cdff.
И видим информацию от датчика:
7c 01 4b 46 7f ff 04 10 09 : crc=09 YES 7c 01 4b 46 7f ff 04 10 09 t=23500
23500 — это температура в градусах Цельсия, умноженная на 1000. Т.е. сейчас 23.5ºC. Не надо питать ложных иллюзий относительно трех знаков после запятой. Точность датчика всего 0,5 ºC.
Код на Python:
tfile=open("/sys/bus/w1/devices/28-000000d7970b/w1_slave") ttext=tfile.read() tfile.close() temp=ttext.split("\n")[1].split(" ")[9] temperature=float(temp[2:])/1000 print temperature
Но еще хотелось бы достучаться до датчика по сети. Для этого есть готовый фреймворк WebIOPi.
$ tar xvzf WebIOPi-0.7.1.tar.gz
$ cd WebIOPi-0.7.1
$ sudo ./setup.sh
После завершения установки необходимо активировать автозапуск WebIOPi. Автозапуск WebIOPi нужен для того, что бы каждый раз после включения Raspberry Pi не выполнять запуск приложения вручную. Для этого выполняем команду:
Правим файл конфигурации:
В разделе [DEVICES] прописываем:
И перезапускаем Raspberry:
В браузере набираем: ip-address-raspberry:8000/app/devices-monitor
Для доступа к WebIOPi необходимо в открывшейся форме ввести логин и пароль. По умолчанию логин «webiopi», пароль – «raspberry». Их, как и номер порта, затем можно будет изменить.
Если датчик исправен и правильно подключен, то в браузере будет отображаться температура в градусах Цельсия.