Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.05.2014, 00:46   #1
piglet-animas
Member
 
Регистрация: 14.04.2014
Сообщений: 48
Вес репутации: 0
piglet-animas is an unknown quantity at this point
По умолчанию Re: Подключение термометра DS18S20 через GPIO на MR-3020 (CyberWRT)

Сообщение от Admin Посмотреть сообщение
Можно обойтись и без адаптера USB-UART
Если есть опыт использования паяльника
Используем любой свободный GPIO роутера
Не забудьте удалить резистор подтягивающий порт в GND

Подключаем к GPIO датчик DS18B20
Вложение 821

Устанавливаем необходимые пакеты для работы 1-Wire
opkg install kmod-w1 kmod-w1-master-gpio kmod-w1-gpio-custom

Настраиваем шину на работу через порт GPIO, в примере GPIO2
insmod w1-gpio-custom bus0=0,2,0
или вот таким образом
echo "w1-gpio-custom bus0=0,2,0" > /etc/modules.d/59-w1-gpio-custom

Устанавливаем пакет для работы с датчиком температуры
opkg install kmod-w1-slave-therm

Прочитать значение датчика
cat /sys/bus/w1/drivers/w1_slave_driver/серийный номер датчика/w1_slave

В ответ получим данные от датчика, примерно в таком виде
7c 01 4b 46 7f ff 04 10 09 : crc=09 YES
7c 01 4b 46 7f ff 04 10 09 t=23750

Значение YES, говорит о целосности принятых данных.
Температура это значение t=23750, то есть 23.75 гр. С
Теперь температуру нужно перевести в понятный нам формат, установить запятую между целыми и дробными числами, то есть полученое значение t=xxxxx делим на 1000
awk -F= '/t=/ {printf "%.02f\n", $2/1000}' /sys/bus/w1/drivers/w1_slave_driver/серийный номер датчика/w1_slave

Вопрос, только как узнать серийный номер датчика?
piglet-animas вне форума   Ответить с цитированием
Старый 18.05.2014, 11:52   #2
melsem
Moderator
 
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 600
melsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud of
По умолчанию Re: Подключение термометра DS18S20 через GPIO на MR-3020 (CyberWRT)

Цитата:
Сообщение от piglet-animas Посмотреть сообщение
...awk -F= '/t=/ {printf "%.02f\n", $2/1000}' /sys/bus/w1/drivers/w1_slave_driver/серийный номер датчика/w1_slave

Вопрос, только как узнать серийный номер датчика?
Команда покажет серийники всех подключенных датчиков к GPIO (для юсб-uart не подходит).
ls -l /sys/devices/w1_bus_master1 | sed '/drw/!d; /28-*/!d' | awk '{print $9}'

Или вот так покажет температуру и без серийника, одного или всех подключенных датчиков.
awk -F= '/t=/ {printf "%.01f\n", $2/1000}' /sys/bus/w1/drivers/w1_slave_driver/*/w1_slave

Последний раз редактировалось melsem; 18.05.2014 в 11:57.
melsem вне форума   Ответить с цитированием
Старый 18.05.2014, 15:37   #3
piglet-animas
Member
 
Регистрация: 14.04.2014
Сообщений: 48
Вес репутации: 0
piglet-animas is an unknown quantity at this point
По умолчанию Re: Подключение термометра DS18S20 через GPIO на MR-3020 (CyberWRT)

Цитата:
Сообщение от melsem Посмотреть сообщение
Команда покажет серийники всех подключенных датчиков к GPIO (для юсб-uart не подходит).
ls -l /sys/devices/w1_bus_master1 | sed '/drw/!d; /28-*/!d' | awk '{print $9}'

Или вот так покажет температуру и без серийника, одного или всех подключенных датчиков.
awk -F= '/t=/ {printf "%.01f\n", $2/1000}' /sys/bus/w1/drivers/w1_slave_driver/*/w1_slave
Огромное спасибо! Все работает!
PS я правильно понимаю, что совместная работа интерфейса i2c и ds1820 подключенного к одному из gpio невозможна?
PSS где вы берете информацию про то как работать с тем же ds1820 по gpio или например как работать по i2c с lcd?
piglet-animas вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 09:18. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика