![]() |
![]() |
#11 |
Junior Member
Регистрация: 31.07.2015
Сообщений: 3
Вес репутации: 0 ![]() |
![]()
Доброго времени суток!
В первых строках своего повествования, хочу выразить огромную благодарность Maker39 и sakatgg за советы, поддержку, помощь! И кончено Lolipop! Теперь подробно, что и как было сделано? По шагам. (Много букв) A) На Али был куплен роутер клон Hame-A15 по этому и потом этому обзору от Lolipop. Прикольный зверек. На нем великолепно прижился Zyxel Кинетик с модемом ZTE MF1ХХ (не помню 150 или 180). Работает эта связка 4 месяца круглосуточно. Нареканий нет. Особенно порадовала цена! B) Оценив работу этого мелкого трудяги, было принято решение прикупить еще один для экспериментов. Цель ставилась простая: научить роутер читать наипопулярнейшие далласовские 1Wire датчики температуры (из серии DS18b20). По аналогии с этим постом на Хабре. Единственное условие было – читаем информация из датчика не через GPIO, а через переходник usb-com. Выбор выпал на мелкие USB - > RS232/UART на базе PL2303HX по копеечной цене (~35 руб на Али). На время ожидания посылки из Китая, взят с работы кабель USB-COM тоже на Prolific PL2303. C) В ближайшем радоимагазине прикуплена всякая мелочевка для обвязки датчика. И собрана схема подключения датчика (-ков) по этому фото-мануалу. Схема типовая, гугл найдет Вам несколько десятков таких. Забегая вперед скажу, что для китайских плат нет необходимости паять обвязку датчика – подключаем датчик напрямую, закоротив RX и TX на ногу DATA датчика. D) Началось самое интересное. *nix системы ни в какую не хотели корректно работать с usb-com. Были сделаны несколько неудачных попыток заставить это все заработать на Cubieboard под Ubuntu, на HP DL360 под RHEL, ну и конечно под OpenWrt. То PL2303 не приживается, то порт закрыт/настроен хитро, то в ядре запрещен usbserial. Маялся долго. Читал много. Уже хотел бросить и купить народный TL-ML3020 и тупо склонировать по статье с Хабра, но остановила цена. Да и не спортивно это. Чтобы 100% быть уверенным, подключил обе конструкции (по очереди шнурок с переходником и Китайскую usb-uart плату) к винде. Заработало с первой попытки. Ставим драйвера на pl2303, качаем Digitemp под винду, указываем COM-порт и имеем профит в виде текущей температуры. Проверено на WinXP и W7Corp. Откладываем бубен. E) Как говорят психологи – проблемами надо делиться. И поделился с Lolipop, sakatgg и Maker39 Далее собственно мануал, что делать. 1. На колон Hame A15 со стоковой прошивкой ставим OpenWrt из этого обзора от Lolipop. Никаких заморочек. Только чтобы спрыгнуть с заводской. 2. Из веб-морды поверх ставим этупрошивку от Maker39 из поста #40. Внимание! У меня замечен был такой глюк – роутер не записывал изменения. ХЗ почему … Все, что менял/устанавливал/докачивал работало до первого ребута / отключения питания. Полечил так: Пролил в /tmp (SCP, TFTP, WGET – кому что больше по душе) эту же прошивку и прошил из терминала поверх вручную командой mtd write –r имя_файла.bin firmware Сутки полету, десяток перезагрузок – полет нормальный. 3. Далее мелкий тюнинг. Под себя настраиваем. Сетка, hostname, TZ, пароль_рута, WiFi (я пока отключил за ненадобностью) и т.д. Проверяем, что зверьку доступен инет. 4. Заходим в LuCi (или с терминала – кому как нравится) и безжалостно сносим два пакета kmod-usb-serial-wwan и usb-modeswitch (зараза, крови попила). 5. Ставим необходимые пакеты: opkg update opkg install kmod-usb-serial-pl2303 opkg install digitemp-usb opkg install digitemp Самопроверка: root@TEMon:~# opkg list-installed |grep usb |grep kmod kmod-usb-core - 3.10.49-1 kmod-usb-net - 3.10.49-1 kmod-usb-net-cdc-ether - 3.10.49-1 kmod-usb-ohci - 3.10.49-1 kmod-usb-serial - 3.10.49-1 kmod-usb-serial-pl2303 - 3.10.49-1 kmod-usb2 - 3.10.49-1 Втыкаем наш PL2303 и перегружаем роутер (на всякий случай). Проверяем, что система увидела именно Prilific PL2303, а не что-то другое. dmesg | grep usb* [ 20.790000] usbcore: registered new interface driver usbserial [ 20.830000] usbcore: registered new interface driver usbserial_generic [ 20.850000] usbserial: USB Serial support registered for generic [ 20.930000] usbcore: registered new interface driver cdc_ether [ 21.370000] usbcore: registered new interface driver pl2303 [ 21.390000] usbserial: USB Serial support registered for pl2303 [ 21.450000] usb 2-1: pl2303 converter now attached to ttyUSB0 Проверяем, что порт назначен и какой у него номер (могут отличатся названия). root@TEMon:~# ls -l /dev/ttyUSB* crw-r--r-- 1 root root 188, 0 Aug 11 19:51 /dev/ttyUSB0 Ну и в завершении собственно ищем датчик и пишем его серийник в файл: root@TEMon:~# digitemp_DS9097 -i -s /dev/ttyUSB0 DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com Turning off all DS2409 Couplers . Searching the 1-Wire LAN 28FF255965040082 : DS18B20 Temperature Sensor ROM #0 : 28FF255965040082 Wrote .digitemprc Читаем показания с датчика: root@TEMon:~# digitemp_DS9097 -a DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com Aug 11 20:54:48 Sensor 0 C: 26.69 F: 80.04 Цель достигнута. За минимальные деньги (~430 руб роутер, 35 руб usb->uart, ~40 руб DS18b20-мелкий опт) у нас есть приличный, в меру шустрый, мелкий, малокушающий SoC, настроенный на работу с 1Wire. Далее просматриваю большие горизонты использования. В ближайших планах прикрутить SNMP и собирать Кактусом температуру с удаленной точки. Быть может дозрею прикрутить внешнюю флэшку через USB-хаб как бутовую и на ней развернуть отрисовку графиков температуры через RRDtools. Для домашнего использования можно замутить легкий web на который будет транслироваться температура со всех датчиков. Можно также замутить отрисовку графиков. Можно подумать в сторону автоматизации теплицы/погреба (такая тема есть здесь). Последний раз редактировалось And760; 12.08.2015 в 09:16. |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|