Подключение led-панели к роутеру на OpenWRT

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Подключение led-панели к роутеру на OpenWRT

Сообщение sergejey » Пт ноя 21, 2014 3:36 pm

Новости из лаборатории "очумелые ручки" ))

Имеем в наличии:
1. TPLink W703N с установленным OpenWRT
Изображение
Про установку OpenWRT можно почитать здесь (устанавливать все пакеты узла автоматики не нужно, только OpenWRT).

2. Led-бейджик на светодиодах под названием B1236TAW 12*36 Dots USB Rechargeable Advertising Scrolling Board Message Name Badge Sign w/ 432-LED
Изображение

Покупался здесь.

Задача: сделать на нём возможность вывода сообщений путём отправки оных HTTP-запросом по WiFi

Решение:

(UPDATE: При использовании CyberWRT можно подключить модуль LedTicker, где всё уже настроено и прописано)

1. Ставим дополнительные пакеты на OpenWRT:
opkg update
opkg install bash
opkg install coreutils-stty
opkg install kmod-usb-serial
opkg install kmod-usb-serial-pl2303

2. Подключаем светодиодную панель к роутеру (определяется как /dev/ttyUSB0)

3. создаём папку /www/cgi-bin и ставим ей права запуска
chmod 0777 /var/cgi-bin

4. Копируем в эту папку два файла из архива
miniled.cgi
tail.bin

5. Запускаем форму по адресу http://IPроутера/cgi-bin/miniled.cgi

Изображение

Можно заполнить форму и отправить комаду. Если всё хорошо, то сообщение появится на led-панели. В строке браузера можно посмотреть http-запрос, который можно отправлять с той же MajorDoMo для периодического обновления данных.

Так же можно указать URL, чтобы панелька сама брала с него данные (надо добавлять запуск /www/cgi-bin/miniled.cgi в крон: * * * * * /www/cgi-bin/miniled.cgi > /dev/null). Например, используя ссылку http://СЕРВЕР/objects/?op=get&object=ThisComputer&p=textBoxTest можно отображать на панельке текущее время.

После обновления саму панельку можно даже отключить от роутера и прицепить куда-нибудь -- всё будет показываться, но, понятное дело, данные при этом обновляться не будут.

Из особенностей -- не поддерживается русский язык и не поддерживаются спец. символы типа анимированных сердечек, телефона и т.п.

Чтобы подключить панельку пришлось сначало пару недель наскоками пытаться скомпилировать программу на Си под OpenWRT, потом бросить это дело (найденная мной программа не работала с панелями такого типа) и пойти другим путём. Может кому пригодится история на будущее:
история разбораПоказать
* При подключении к компьютеру (Windows) панель определялась как profilic COM-порт
* Родная программа (очень убогая, кстати, и на китайском языке) писала данные в панель через этот COM-порт и с помощью программы Free Device Monitoring Studio можно было перехватывать пакеты и смотреть их содержимое. Приблизительно так:
Изображение
* Поэкспериментировав с данным разобрал структуру сообщения (текст, скорость, эффект). Долго мучился с контрольной суммой, но нашёл perl-овскую библиотеку Device:MiniLED и подсмотрел как она считается (как оказалось, остаток деления на 256 суммы всех байтов сообщения, включая системные поля)
* Потом долго мучился, чтобы весь алгоритм перевести на чистый Bash (на роутере места не особо много для языков более высокого уровня).
* В итоге, после пары дней экспериментов, всё завелось как надо
Вложения
miniled.tar
(7.5 КБ) 777 скачиваний

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
spider
Сообщения: 17
Зарегистрирован: Вс фев 23, 2014 7:05 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Подключение led-панели к роутеру на OpenWRT

Сообщение spider » Вс ноя 23, 2014 2:16 pm

Добрый день.
Мы с Админом с форума Cyber-Place
перенесли Выши скрипты в модуль "Бегущая строка"
Не могли бы Вы проверить работоспособность модуля, а то у нас нет такой панельки для тестов
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Подключение led-панели к роутеру на OpenWRT

Сообщение sergejey » Пн ноя 24, 2014 12:05 pm

spider писал(а):Добрый день.
Мы с Админом с форума Cyber-Place
перенесли Выши скрипты в модуль "Бегущая строка"
Не могли бы Вы проверить работоспособность модуля, а то у нас нет такой панельки для тестов
А подскажите пожалуйста, где взять этот модуль? Что-то на cyber-place не нашёл, т.к. по указанной ссылке мой топик про компиляцию libusb.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
spider
Сообщения: 17
Зарегистрирован: Вс фев 23, 2014 7:05 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Подключение led-панели к роутеру на OpenWRT

Сообщение spider » Пн ноя 24, 2014 12:22 pm

Заходите в веб интерфейс роутера, с прошивкой CyberWrt и модуль находится в разделе "Test"
[url=Заходите в веб интерфейс роутера, с прошивкой CyberWrt и модуль находится в разделе "Test"
Демка веб интефейса CyberWrt
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Подключение led-панели к роутеру на OpenWRT

Сообщение sergejey » Пн ноя 24, 2014 12:38 pm

Ага, понял, спасибо. Попробую в ближайшее время поставить CyberWrt на роутер.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
spider
Сообщения: 17
Зарегистрирован: Вс фев 23, 2014 7:05 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Подключение led-панели к роутеру на OpenWRT

Сообщение spider » Пн ноя 24, 2014 12:47 pm

А что по поводу set $QUERY_STRING ?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Подключение led-панели к роутеру на OpenWRT

Сообщение sergejey » Пн ноя 24, 2014 1:58 pm

spider писал(а):А что по поводу set $QUERY_STRING ?
Я немного дополнил miniled.cgi и обновил архив в первом сообщении.
Убрал вывод переменных окружения, а так же добавил поле URL, указав которое можно сделать так, чтобы роутер сам забирал строчку для панельки по указанной ссылке. Можно, к примеру, отражать актуальное значение свойства какого-то объекта в таком виде http://АДРЕССЕРВЕРА/objects/?op=get&object=ОБЪЕКТ&p=СВОЙСТВО
Только надо в крон запись добавить для вызова команды /www/cgi-bin/miniled.cgi с нужной периодичностью (можно это сделать при установке? если ссылка не задана или задана без http в начале, то ничего не будет происходить)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
spider
Сообщения: 17
Зарегистрирован: Вс фев 23, 2014 7:05 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Подключение led-панели к роутеру на OpenWRT

Сообщение spider » Пн ноя 24, 2014 8:26 pm

Отпишитесь когда проверите модуль на CyberWrt прошивке
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Подключение led-панели к роутеру на OpenWRT

Сообщение sergejey » Вт ноя 25, 2014 12:12 am

spider писал(а):Отпишитесь когда проверите модуль на CyberWrt прошивке
Проверил -- в целом работает!
В приложении файл, который взамен того, что сейчас устанавливается (/www/cgi-bin/modules/ledticker/index.cgi)

Несколько моментов:
1. Для работы модуля надо установить из раздела драйверы модуль Драйвер PL2303
2. При установке модуля устанавливаются библиотеки:
bash -- ок, понятно
terminfo -- что оно делает?
libncurses -- что оно делает?
т.е. с ними всё работает, но я не в курсе, для чего они именно, т.к. под openwrt я их не ставил, если правильно помню.

Ну а так, всё здорово. Cyberwrt понравился -- достаточно просто и наглядно устанавливаются модули, гораздо удобней, чем под "голой" OpenWRT
Вложения
index.cgi.gz
(1.92 КБ) 758 скачиваний

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
spider
Сообщения: 17
Зарегистрирован: Вс фев 23, 2014 7:05 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Подключение led-панели к роутеру на OpenWRT

Сообщение spider » Вт ноя 25, 2014 12:48 am

Это зависимости, их можно тоже удалять. Для этого в модуле есть фаил remove.sh
Package: bash
Version: 4.2-3
Depends: libc, libncurses
Package: libncurses
Version: 5.9-1
Depends: libc, terminfo
Что бы получать информацию об пакетах, установите модуль "Пакеты" он не много весит

Модуль подправил проверяйте
Зависимости после удаления модуля, тоже подчищаются
Ответить