![]() |
|
![]() |
#2 |
Junior Member
Регистрация: 27.08.2013
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
Подскажите, пожалуйста, купил PL2303HX и DS18B20 на ebay. Никак не могу подружить это дело. Соединял RX, TX и DATA датчика - никакого результата. На OpenWRT выводит строчку поиска датчика и все, дальше выход без каких-либо данных...
|
![]() |
![]() |
![]() |
#3 | |
Member
Регистрация: 29.03.2013
Сообщений: 68
Вес репутации: 0 ![]() |
![]() Цитата:
1. На роутер надо поставить OpenWRT, я ставил с этого форума, но можно и от первоисточника, проверял - работает. 2. Веб-интерфейс не обязателен, поэтому можно обойтись стандартной памятью роутера в 4MiB (у меня стоит флешка и вебморда LUCI). 3. USB-to-UART на PL2303 определится только при подключении через хаб! Пробовал напрямую в порт USB (типа для модемов 3G), не работает. 4. Для работы через digitemp, на роутер необходимо установить пакеты kmod-usb-serial, kmod-usb-serial-pl2303 (для переходника на PL2303), digitemp. 5. Подключить один датчик как показано тут, аналогично в статье хабра. 6. Проверить, определось ли устр-во USB в /dev. Должно появиться ttyUSB0, в логе тоже будет соответствующая запись. Посмотреть можно командой Код:
ls /dev 7. Инициализировать датчик командой Код:
digitemp_DS9097 -i -s /dev/ttyUSB0 8. Затем считать температуру командой Код:
digitemp_DS9097 -a З.Ы. Кстати, если найти конфигурационный файл .digitemprc, у меня он находится в корне /root, подредактировав его, можно избавиться от обрезания ненужной информации вроде времени и даты при выводе температуры командой Код:
digitemp_DS9097 -a Код:
digitemp_DS9097 -h Вот список пакетов, что установлено у меня, при этом работает digitemp: Код:
blkid 2.21.2-1 block-mount 0.2.0-9 busybox 1.19.4-5 digitemp 3.6.0-5 digitemp-usb 3.6.0-5 dnsmasq 2.62-2 dropbear 2011.54-2 e2fsprogs 1.42.4-1 fdisk 2.21.2-1 firewall 2-53 glib2 2.26.1-3 hotplug2 1.0-beta-4 iptables 1.4.10-4 iw 3.3-1 jshn 2012-07-08 kernel 3.3.8-1- kmod-ath 3.3.8+2012-09-07-2 kmod-ath9k 3.3.8+2012-09-07-2 kmod-ath9k-common 3.3.8+2012-09-07-2 kmod-cfg80211 3.3.8+2012-09-07-2 kmod-crypto-aes 3.3.8-1 kmod-crypto-arc4 3.3.8-1 kmod-crypto-core 3.3.8-1 kmod-fs-ext4 3.3.8-1 kmod-gpio-button-hotplug 3.3.8-1 kmod-ipt-conntrack 3.3.8-1 kmod-ipt-core 3.3.8-1 kmod-ipt-nat 3.3.8-1 kmod-ipt-nathelper 3.3.8-1 kmod-leds-gpio 3.3.8-1 kmod-ledtrig-default-on 3.3.8-1 kmod-ledtrig-netdev 3.3.8-1 kmod-ledtrig-timer 3.3.8-1 kmod-ledtrig-usbdev 3.3.8-1 kmod-lib-crc-ccitt 3.3.8-1 kmod-lib-crc16 3.3.8-1 kmod-mac80211 3.3.8+2012-09-07-2 kmod-nls-base 3.3.8-1 kmod-nls-cp1251 3.3.8-1 kmod-nls-cp437 3.3.8-1 kmod-nls-cp866 3.3.8-1 kmod-nls-koi8r 3.3.8-1 kmod-nls-utf8 3.3.8-1 kmod-ppp 3.3.8-1 kmod-pppoe 3.3.8-1 kmod-pppox 3.3.8-1 kmod-scsi-core 3.3.8-1 kmod-usb-core 3.3.8-1 kmod-usb-ohci 3.3.8-1 kmod-usb-serial 3.3.8-1 kmod-usb-serial-pl2303 3.3.8-1 kmod-usb-storage 3.3.8-1 kmod-usb2 3.3.8-1 kmod-wdt-ath79 3.3.8-1 libblkid 2.21.2-1 libblobmsg-json 2012-07-08 libc 0.9.33.2-1 libcom_err 1.42.4-1 libext2fs 1.42.4-1 libgcc 4.6-linaro-1 libip4tc 1.4.10-4 libiwinfo 35 libiwinfo-lua 35 libjson 0.9-2 liblua 5.1.4-8 libncurses 5.7-5 libnl-tiny 0.1-3 libpthread 0.9.33.2-1 librpc 0.9.32-rc2-0a2179bbc0844928f2a0ec01dba93d9b5d6d41a7 libubox 2012-07-08-cca2ed6c8cdb3555fea43ff63ba1c9905dd7a164 libubus 2012-06-01-a62e2f8c15a65efb1a82404d8f31e3bfc1cbe7d9 libubus-lua 2012-06-01-a62e2f8c15a65efb1a82404d8f31e3bfc1cbe7d9 libuci 2012-03-28.1-1 libuci-lua 2012-03-28.1-1 libusb 0.1.12-3 libuuid 2.21.2-1 libxtables 1.4.10-4 lua 5.1.4-8 luci trunk+svn9309-1 luci-app-firewall trunk+svn9309-1 luci-i18n-english trunk+svn9309-1 luci-lib-core trunk+svn9309-1 luci-lib-ipkg trunk+svn9309-1 luci-lib-lmo trunk+svn9309-1 luci-lib-nixio trunk+svn9309-1 luci-lib-sys trunk+svn9309-1 luci-lib-web trunk+svn9309-1 luci-mod-admin-core trunk+svn9309-1 luci-mod-admin-full trunk+svn9309-1 luci-proto-core trunk+svn9309-1 luci-proto-ppp trunk+svn9309-1 luci-sgi-cgi trunk+svn9309-1 luci-theme-base trunk+svn9309-1 luci-theme-openwrt trunk+svn9309-1 mc 4.7.5.3-2 mtd 18 netifd 2012-09-13-8a671b56edd90d9b19ea4317ce664793ee324cb4 opkg 618-2 ppp 2.4.5-6 ppp-mod-pppoe 2.4.5-6 swap-utils 2.21.2-1 swconfig 10 terminfo 5.7-5 uboot-envtools 2012.04.01-1 ubus 2012-06-01-a62e2f8c15a65efb1a82404d8f31e3bfc1cbe7d9 ubusd 2012-06-01-a62e2f8c15a65efb1a82404d8f31e3bfc1cbe7d9 uci 2012-03-28.1-1 uhttpd 40 wireless-tools 29-5 wpad-mini 20120910-1 zlib Несколько фото. |
|
![]() |
![]() |
![]() |
#4 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,617
Вес репутации: 9822 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
А устройство появилось в папке /dev ?
|
![]() |
![]() |
![]() |
#5 |
Junior Member
Регистрация: 27.08.2013
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
Большое спасибо, Admin и electric за ответы!
Отдельное спасибо electric за подробную инструкцию и фотоотчет! Пройдя ещё раз по всем пунктам проблема оказалась банальной... Глючил провод между датчиком и адаптером. Примотал сразу к контактам - показания стали выводится в консоли! Нашел аудио провод (который на CD привод) и попробовал на нем - все ок! Для истории (у меня роутер TL-WR1043ND): 1. Поставил OpenWRT от "первоисточника": Код:
root@OpenWrt:~# uname -a Linux OpenWrt 3.10.4 #1 Sat Aug 24 00:51:52 UTC 2013 mips GNU/Linux root@OpenWrt:~# cat /etc/opkg.conf | grep ^src src/gz packages http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages 3. У меня PL2303HX определился без хаба сразу после установки kmod-usb-serial-pl2303. 4. Установлено: Код:
root@OpenWrt:~# opkg list-installed | grep usb-serial kmod-usb-serial - 3.10.4-1 kmod-usb-serial-cp210x - 3.10.4-1 kmod-usb-serial-ftdi - 3.10.4-1 kmod-usb-serial-pl2303 - 3.10.4-1 root@OpenWrt:~# opkg list-installed | grep digitemp digitemp - 3.6.0-5 digitemp-usb - 3.6.0-5 GND датчика к GND адаптера DATA датчика к RX и TX адаптера VCC датчика к +5V адаптера 6. Устройство появляется: Код:
root@OpenWrt:~# ls /dev/ | grep ttyU ttyUSB0 root@OpenWrt:~# logread | tail -n 3 Thu Jan 1 03:35:01 1970 auth.info kernel: [ 2101.590000] usb 1-1: new full-speed USB device number 2 using ehci-platform Thu Jan 1 03:35:01 1970 auth.info kernel: [ 2101.750000] pl2303 1-1:1.0: pl2303 converter detected Thu Jan 1 03:35:01 1970 auth.info kernel: [ 2101.770000] usb 1-1: pl2303 converter now attached to ttyUSB0 root@OpenWrt:~# lsusb Bus 001 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Кто-нибудь подключал датчик DHT11 к адаптеру? Влажность тоже было бы интересно снимать. Или он не подходит? |
![]() |
![]() |
![]() |
#6 |
Member
Регистрация: 29.03.2013
Сообщений: 68
Вес репутации: 0 ![]() |
![]()
Sizeoff, DHT11, как и DHT22 имеют немного отличный от 1wire интерфейс, имею ввиду софтверную часть. Их можно подключить к роутеру с openwrt 2-мя путями:
1. Через ардуину. Дуина считывает все датчики и передает через UART в роутер на встроенный uart либо через тот же USB-UART на PL2303. 2. Вывести GPIO на роутере и на них сделать шину обмена с датчиками. Можно погуглить, видел решения на openwrt и малине. Поляки интересно с роутерами заморачивались)) Номер один, номер два, номер три и четыре... Последний раз редактировалось electric; 28.08.2013 в 22:41. |
![]() |
![]() |
![]() |
#7 |
Junior Member
Регистрация: 25.01.2013
Адрес: Рыбинск,Ярославская обл
Возраст: 47
Сообщений: 8
Вес репутации: 0 ![]() |
![]()
Делал это все на raspberry pi. Все начиналось на компе с убунтой. Там настраивалось и обкатывалось . Графики сам писал на php сайт на вордпресс. Датчик стоит в алюминиевой трубке (барабан от картриджа нр 1200). Сверху трубка обклеена фольгой и закреплена на кронштейне 20 см от стены, что в прочем не мешает ему врать на солнце.
Скрипт запускает digitemp раз в минуту , информация пишется в тхт файл. За 3 года он 27 МБ весит. Раз в 10 минут данные синхронизируютсяч в mysql .Сразу в базу не хочу писать Иза сложности бэкапа . Бэкап просто скачка файла утилитой wget на рабочем компе раз в день. Поделка на star003.dlinkddns.com/wps в разделе мониртор температуры |
![]() |
![]() |
![]() |
#8 |
Junior Member
|
![]()
UPD:
API проекта: http://narodmon.ru/#apidoc Протокол передачи показаний: http://narodmon.ru/#proto Подключение OpenWRT и OR-WRT: http://narodmon.ru/#!openwrt Подключение Xively, Cosm, Pachube: http://narodmon.ru/#!xively Показания по SMS: http://narodmon.ru/#sms_in Поддержать проект: http://narodmon.ru/#!donate |
![]() |
![]() |
![]() |
#9 |
Senior Member
Регистрация: 04.01.2013
Адрес: Москва
Сообщений: 461
Вес репутации: 1152 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
В основе информация с польского форума
http://openrouter.info/forum/ Все делалось на железке TL-WR740 c датчиками SHT21 и BMP180 Отключаем светодиоды от GPIO Код:
rmmod leds_gpio Устанавливаем пакеты Код:
opkg install kmod-i2c-core opkg install kmod-i2c-gpio-custom opkg install i2c-tools Питание I2C устройств от 3,3в, к шине питания от выводов SDA/SCL ставим резисторы. Подключаем датчики к роутеру. Код:
root@OpenWrt:/# insmod i2c-gpio-custom bus0=0,13,16 [ 656.340000] Custom GPIO-based I2C driver version 0.1.1 [ 656.340000] i2c-gpio i2c-gpio.0: using pins 13 (SDA) and 16 (SCL) Код:
root@OpenWrt:/# cat /etc/rc.local # Put your custom commands here that should be executed once # the system init finished. By default this file does nothing. rmmod leds_gpio insmod i2c-gpio-custom bus0=0,13,16 exit 0 Код:
root@OpenWrt:/# i2cdetect -y i2c-gpio0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- 77 ![]() Для работы с датчиком давления на польском форуме был найдена скомпилированная версия BMP085 для ar71xx . Кидаем в удобное место на роутере, ставим права на выполнение Код:
root@OpenWrt:/# bmp085 -d i2c-gpio0 T: 29.4 P: 997.48 Код:
#!/bin/sh RAWTEMP=$(i2cget -y 0 0x40 0xe3 w) RAWHUMI=$(i2cget -y 0 0x40 0xe5 w) if (echo "$RAWTEMP"| grep -Eq '0x[0-9a-f]{4}'); then HEXORDERED=$(echo "$RAWTEMP"|sed -r 's/0x([0-9a-f]{2})([0-9a-f]{2})/0x\2\1/') DECRAW=$(($HEXORDERED)) echo $DECRAW | awk -v tem=${DECRAW} '{ printf "%.2f stC\n", -46.85+((tem*175.72)/65536)}' fi if (echo "$RAWHUMI"| grep -Eq '0x[0-9a-f]{4}'); then HEXORDERED=$(echo "$RAWHUMI"|sed -r 's/0x([0-9a-f]{2})([0-9a-f]{2})/0x\2\1/') DECRAW=$(($HEXORDERED)) echo $DECRAW | awk -v hum=${DECRAW} '{ printf "%.2f %%RH\n", -6+((hum*125)/65536)}' fi Код:
root@OpenWrt:/# sht21.sh 30.11 stC 27.70 %RH На плате сопротивления 4,7ком, емкости 0,1 мкФ. BMP180 отличается от BMP085 корпусом, программно работа с ними одинаковая. В качестве готового решения можно, найти плату GY-65 и подобные. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Регистрация: 17.02.2013
Адрес: Харьков
Сообщений: 235
Вес репутации: 689 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Вопрос, у кого как быстро сканирует "i2cdetect -y i2c-gpio0" адресное пространство?
И при этом какая загрузка CPU этого процесса? (в еще одной консоли можно вбить команду top) |
![]() |
![]() |
![]() |
Метки |
1-wire, digitemp, narodmon, openwrt, uart |
Здесь присутствуют: 7 (пользователей: 0 , гостей: 7) | |
|
|