Пятница, 27.12.2024, 22:11
| RSS
Поиск
Главная |
Защита, контроль, управление
Форма входа

Меню

Авторские проекты

Статьи

Raspberry Pi

Полезная информация

Обратная связь

Ссылки

Форум

Чат

Канал YouTube

Группа в Facebook


Календарь
«  Сентябрь 2015  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
282930

Наш опрос

Ссылки


Яндекс.Метрика





.
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Raspberry Pi для домашней автоматизации. Шина 1-wire

Raspberry Pi для домашней автоматизации. Шина 1-wire

Наш канал в YouTube


DS18B20

В прошлом обзоре мы рассмотрели подключение датчика BMP085 по шине I2C. А сейчас остановимся на, пожалуй, одной из самых популярных шин – 1-wire. Ее очень широко используют в системах домашней (да и не только) автоматизации для подключения различных датчиков, устройств контроля доступа, охранных сигнализаций и т.д.

В данном материале будет рассмотрено подключение датчиков температуры DS18B20 к Raspberry Pi. Как известно, все устройства, работающие по шине 1-wire имеют уникальный идентификационный номер, что позволяет включать однотипные устройств фактически параллельно. В Raspberry Pi для работы с шиной 1-wire задействован пин GPIO4, к которому мы и подключим два датчика температуры DS18B20 (рис.1).

 

DS18B20 Raspberry Pi

Рис.1

 

Выполним настройки конфигурационного файла config для работы с датчиками DS18B20. Открываем файл командой:

sudo nano /etc/webiopi/config

и в разделе [DEVICES] прописываем:

tmp0=DS18B20

tmp1=DS18B20 (рис.2)

 

Конфигурация DS18B20 webiopi Raspberry Pi

Рис.2

 

Сохраняем изменения в конфигурационном файле (Ctrl+O/Enter), перезапускаем WebIOPi (sudo /etc/init.d/webiopi restart) и вводим в браузере адрес встроенного монитора девайсов WebIOPi:

http://192.168.1.8:8000/app/devices-monitor

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

 

Вывод данных DS18B20 Raspberry Pi

Рис.3

 

Теперь необходимо разобраться в следующем моменте. Датчики включены на одну шину, и требуется выяснить, какой датчик является tmp0, а какой tmp1. Другими словами нам нужно определить идентификационные номера каждого датчика. Для этого необходимо зайти на диске Raspberry Pi в папку:

sys/bus/w1/devices (рис.4)

 

Серийные номера DS18B20 Raspberry Pi

Рис.4

 

Там находятся два файла, названия которых и являются идентификационными номерами подключенных к шине 1-wire датчиков. Теперь необходимо в конфигурационном файле привязать идентификационные номера датчиков к присвоенным переменным tmp0 и tmp1.

Открываем файл config командой:

sudo nano /etc/webiopi/config

и в разделе [DEVICES] прописываем:

tmp0=DS18B20 slave:28-000002c2a679

tmp1=DS18B20 slave:28-000002c29f6c (рис.5)

 

DS18B20 webiopi

Рис.5

 

Сохраняем изменения в конфигурационном файле (Ctrl+O/Enter) и перезапускаем WebIOPi (sudo /etc/init.d/webiopi restart)

В файл script.py  добавляем макрос работы с датчиками DS18B20 (рис.6)

 

DS18B20 Raspberry Pi Python

Рис.6

 

Создаем тестовую страницу index.html для вызова макросов со скрипта Python и визуализации получаемых данных температуры(рис.7)

 

DS18B20 Raspberry Pi HTML

Рис.7

 

Копируем созданные файлы script.py и index.html в соответствующие папки /home/pi/myproject/python и /home/pi/myproject/html

Вводим в браузере адрес http://192.168.1.8:8000/index.html

После загрузки страницы получаем данные температуры с датчиков DS18B20 (рис.8).

 

DS18B20 Raspberry Pi вывод данных на web страницу

Рис.8

 

Аналогично, как и для датчика BMP085 рассмотренные примеры можно добавить на любую HTML страницу нашей системы домашней автоматизации. Они позволят вам организовать сбор данных с датчиков температуры DS18B20.

 


 

Скрипты JavaScript, Python

 

Содержание всех статей сайта по теме Raspberry Pi




Категория: | Просмотров: 17654 | Добавил: Admin | Теги: | Рейтинг: 5.0/1 |
Всего комментариев: 3


3 timer  
Почему русские буквы преавратились в кракозябры?

1 deniss1900  
Странно если раскоментирую строчку запуска скрипта веб неоткрывается в чем может быть дело

2 Admin  
0
Нужно запустить тест webiopi и посмотреть в чем дело:

sudo webiopi -d -c /etc/webiopi/config





T2M © 2024
Сайт управляется системой uCoz