|
|
Опции темы | Поиск в этой теме | Опции просмотра |
07.03.2014, 05:51 | #71 |
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 599 |
Re: Подключение термометра DS18S20 через GPIO на MR-3020 (CyberWRT)
Для cyberwrt к проге веб написал. Пока проверяю. На днях скину.
Без luci вот еще комманды для авто-запуска, что бы после включения или перезагрузки роутера сама запускалась: для датчиков на gpio включить авто-запуск: /etc/init.d/ds18b20_init enable отключить авто-запуск: /etc/init.d/ds18b20_init disable для датчиков на usb-uart включить авто-запуск: /etc/init.d/ds18b20usba_init enable отключить авто-запуск: /etc/init.d/ds18b20usba_init disable |
28.03.2014, 02:39 | #72 |
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 599 |
Re: Подключение термометра DS18S20 через GPIO на MR-3020 (CyberWRT)
Для OpenWrt.
Исправил баги. Что бы запустить прогу после установки, команды в предыдущих сообщениях. Или перезагрузить роутер, авто запуск включен. Последний раз редактировалось melsem; 28.03.2014 в 03:19. |
18.05.2014, 00:46 | #73 |
Member
Регистрация: 14.04.2014
Сообщений: 48
Вес репутации: 0 |
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 Вопрос, только как узнать серийный номер датчика? |
18.05.2014, 11:52 | #74 | |
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 599 |
Re: Подключение термометра DS18S20 через GPIO на MR-3020 (CyberWRT)
Цитата:
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. |
|
18.05.2014, 15:37 | #75 | |
Member
Регистрация: 14.04.2014
Сообщений: 48
Вес репутации: 0 |
Re: Подключение термометра DS18S20 через GPIO на MR-3020 (CyberWRT)
Цитата:
PS я правильно понимаю, что совместная работа интерфейса i2c и ds1820 подключенного к одному из gpio невозможна? PSS где вы берете информацию про то как работать с тем же ds1820 по gpio или например как работать по i2c с lcd? |
|
19.05.2014, 10:51 | #76 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: Подключение термометра DS18S20 через GPIO на MR-3020 (CyberWRT)
Интерфейсы не совместимы как на программном уровне так и на физическом.
I2C двухпроводная шина, а 1Wire однопроводная |
19.05.2014, 19:14 | #77 |
Member
Регистрация: 14.04.2014
Сообщений: 48
Вес репутации: 0 |
Re: Подключение термометра DS18S20 через GPIO на MR-3020 (CyberWRT)
Так и полагал, но как говориться надеялся и ждал!Придеться задействовать один из gpio светодиодных, только вот выгружая модуль из ядра, я так полагаю все светодиоды погаснут?
|
19.05.2014, 19:50 | #78 |
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 599 |
Re: Подключение термометра DS18S20 через GPIO на MR-3020 (CyberWRT)
В 3020 не используя gpio от свето-диодов, uart и кнопок свободно висят 8 штук. Только подтяжки к +3v или на корпус.
Эти я использовал. |
24.05.2014, 01:02 | #79 | |
Member
Регистрация: 14.04.2014
Сообщений: 48
Вес репутации: 0 |
Re: Подключение термометра DS18S20 через GPIO на MR-3020 (CyberWRT)
Цитата:
только в putty при выполнении команды echo 6 > /sys/class/gpio/export в ответ получаю следующее ash: write error: Device or resource busy что не так? проверил на втором роутере (нетронутом пока) gpio 6 на земле сидит через резюк, как и известные gpio 7 и 29, получается надо действовать по той же схеме, что и было проделано, но device busy сказал) Последний раз редактировалось piglet-animas; 24.05.2014 в 01:17. |
|
24.05.2014, 10:38 | #80 | |
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 599 |
Re: Подключение термометра DS18S20 через GPIO на MR-3020 (CyberWRT)
Цитата:
Дай команду cat /sys/kernel/debug/gpio и если в ответе будет одна из строк << gpio-6 (sysfs ) out lo >> то он уже есть в системе. Проверь какая прога его добавила. Если установлен термостат измени в настройках управление нагрузкой на другой gpio и перезагрузи роутер. Последний раз редактировалось melsem; 24.05.2014 в 10:43. |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|