|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
23.10.2014, 02:04 | #1 |
Member
Регистрация: 25.10.2013
Сообщений: 80
Вес репутации: 0 |
Одновременные чтение/запись в/из Arduino на /dev/ttyUSB
Здравствуйте,
Подскажите, плз, куда копать. Задача - Arduino подключен к /dev/ttyUSB0. В скетче сказано, что периодически (по таймеру или по событиям) arduino должен вывести в Serial некие строки с данными. Эти данные нужно получить в OpenWRT и передать на сервер (пока смотрю на обычный wget, в будущем, наверное, буду отправлять через MQTT pub). Кроме этого, периодически получая задания с сервера (сейчас - wget, потом - MQTT sub), "демон" на OpenWRT должен передавать их на arduino (в /dev/ttyUSB0). Почему-то не работает (( Делаю так: 1. "слушатель" (arduino -> openwrt), пока - просто debug-версия (выводит на экран SSH все, что получил): Код:
#!/bin/sh stty -F /dev/ttyUSB0 raw speed 9600 -hupcl while read i; do echo "LINE:$i" done </dev/ttyUSB0 2. для тестирования отправки что-нибудь на arduino я использую такой тест-скрипт: Код:
#!/bin/sh stty -F /dev/ttyUSB0 raw speed 9600 -hupcl echo "test string in a special format" > /dev/ttyUSB0 Что я не так делаю? Может, есть у кого успешный опыт в реализации подобной задачи? Как делали? Заранее благодарю. |
23.10.2014, 05:03 | #2 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
Re: Одновременные чтение/запись в/из Arduino на /dev/ttyUSB
не плохо бы и скетч показать.
|
23.10.2014, 12:10 | #3 |
Member
Регистрация: 25.10.2013
Сообщений: 80
Вес репутации: 0 |
Re: Одновременные чтение/запись в/из Arduino на /dev/ttyUSB
Так, не в скетче дело - на компьютер-то вываливает/принимает без проблем (тем же мониторингом порта из IDE или putty).
Скетч большой и вывод там "без приблуд" - стандартным Serial.print |
23.10.2014, 17:30 | #4 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: Одновременные чтение/запись в/из Arduino на /dev/ttyUSB
|
23.10.2014, 18:18 | #5 |
Member
Регистрация: 25.10.2013
Сообщений: 80
Вес репутации: 0 |
Re: Одновременные чтение/запись в/из Arduino на /dev/ttyUSB
Admin, спасибо за отклик.
Насколько я понял, ser2net пробрасывает порт, что не совсем то - т.к. по планам сервер просто складывает данные, приходящие в формате некого API. Преобразование (из формата arduino-устройства в формат этого API) должно производиться openwrt. Да и вообще, ser2net, думаю, хорош для удаленного руления железкой в формате точка-точка ("один к одному"), а тут речь о "многие к одному".. Или я неправильно понял суть ser2net? По поводу socat - не имел еще с ним дела... А он сможет работать с HTTP-GET? Если я правильно понимаю, то socat - отличное решение, если нужно завести ввод/выод arduino на MQTT-pub/sub. Пойду, покурю маны на socat.. Спасибо! |
23.10.2014, 19:39 | #6 | |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
Re: Одновременные чтение/запись в/из Arduino на /dev/ttyUSB
Цитата:
Запускайте ser2net, и в скрипте (который на роутере) запрашивайте данные у ардуины и читайте ответ. Я у себя замечал такую штуку, что если открывать порт напрямую из скрипта (например раза три в секунду), то через некоторое время порт начинет подвисать (может что-то с буфером или с памятью), а если через ser2net делать, то всё робит. Последний раз редактировалось stD; 23.10.2014 в 19:47. |
|
24.10.2014, 14:54 | #7 | |
Member
Регистрация: 25.10.2013
Сообщений: 80
Вес репутации: 0 |
Re: Одновременные чтение/запись в/из Arduino на /dev/ttyUSB
Цитата:
|
|
23.10.2014, 19:45 | #8 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
Re: Одновременные чтение/запись в/из Arduino на /dev/ttyUSB
Скрипт можно зациклить или по крону запускать.
Как на баше скрипт писать я не знаю, у меня на пхп. |
24.10.2014, 14:51 | #9 |
Member
Регистрация: 25.10.2013
Сообщений: 80
Вес репутации: 0 |
Re: Одновременные чтение/запись в/из Arduino на /dev/ttyUSB
mebitek, огромное спасибо за дельные советы
"init" у меня - просто первое сообщение, которое ардуина вываодит в serial, "говоря", мол, "запустилась". Что касается "запрашивать из OpenWRT данные периодически у Arduino" - боюсь, не подойдет, т.к. на arduino могут (и должны) возникать асинхронные события, сведения о которых нужно сразу передать на сервер, используя OpenWRT, как организатор HTTP/MQTT-канал. На ПХП мне тоже было бы проще (я на нем как-то привык уже писать), но на пых мне не хватило места (принципиально отказался в свое время от подключения USB-drive, т.к. он иногда отваливался / не монтировался и все становилось очень печально). |
24.10.2014, 14:56 | #10 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: Одновременные чтение/запись в/из Arduino на /dev/ttyUSB
В модуле "Modbus" подсмотрите как реализовано
Модуль работает на Sh скриптах |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|