![]() |
|
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
![]() |
#1 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
А что такое MQTT?
|
![]() |
![]() |
![]() |
#2 |
Member
Регистрация: 25.10.2013
Сообщений: 80
Вес репутации: 0 ![]() |
![]()
MQTT - протокол подписки/нотификации.
Если вкратце: есть некий сервер (брокер), к которому подключаются хосты, публикующие инфу и хосты-подписчики. Вся инфа публикуется в древовидной структуре, типа каталогов в файловой системе. Подписка может быть оформлена на определенную ветку или ряд веток по маске. Очень удобно, когда нужно в real-time получать изменения чего-либо. Есть MQTT-S - разновидность MQTT, чуть урезанная - для простоты при работе с простыми датчиками. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Мудрёно.
|
![]() |
![]() |
![]() |
#4 |
Member
Регистрация: 25.10.2013
Сообщений: 80
Вес репутации: 0 ![]() |
![]()
Получилось примерно так:
#!/bin/sh stty -F /dev/ttyUSB0 raw speed 9600 while read i; do URL="http://server/path/to/script/$i" `wget -q "$URL" -O /tmp/wget_answer` TMP=`cat /tmp/wget_answer` echo $TMP > /dev/ttyUSB0 done </dev/ttyUSB0 Но периодически сталкиваюсь с проблемой - OpenWRT перестает общаться с ардуино, хотя устройство в /dev/ присутствует (как и прежде - /dev/ttyUSB0). Ардуино не висит, работает. Такое впечатление, что слетают настройки stty, но повторная команда stty -F /dev/ttyUSB0 raw speed 9600 или повторный запуск скрипта проблему не решают (( И главное - НЕ ругается, что устройство занято. Перетыкание провода USB на ардуине освобождают (переинициализируют) в OpenWRT ttyUSB и все оживает. В чем может быть затык? |
![]() |
![]() |
![]() |
#5 |
Member
Регистрация: 25.10.2013
Сообщений: 80
Вес репутации: 0 ![]() |
![]()
И вот еще что заметил - проблемы сдвухсторонним общением (чтение/запись) с портом /dev/ttyUSB0 отчасти были вызваны отсутствием интернет.
Уж не знаю как это связано, но дома (openwrt получает доступ к интернет через wifi) скрипт работает, на работе (нет wifi) - нет. Сразу скажу, что для чистоты эксперимента из скрипта убирал обращения к внешним серверам (wget) и даже пробовал просто отправлять что-нибудь в порт - все повторялось: дома - ok, на работе - нихт.. ( Отправлял, например, такое: stty -F /dev/ttyUSB0 raw speed 9600 && echo **reload:5# > /dev/ttyUSB0 или stty -F /dev/ttyUSB0 raw speed 9600 && sleep 2 && echo **reload:5# > /dev/ttyUSB0 где "**reload:5#" - это некая команда скетчу arduino Последний раз редактировалось borey; 29.10.2014 в 03:05. |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Порт достачно инициализировать один раз, например засунуть это
Цитата:
А ser2net пробовали? |
|
![]() |
![]() |
![]() |
#7 | |
Member
Регистрация: 25.10.2013
Сообщений: 80
Вес репутации: 0 ![]() |
![]() Цитата:
Про инициализацию один раз понимаю, делаю каждый раз на всякий случай - вредить не должно. Проблема вряд ли этим вызвана, т.к. в цикле нет перенастроек параметров порта, а отвечать перестает как раз находясь в цикле.. ( |
|
![]() |
![]() |
![]() |
#8 | ||
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#9 | |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#10 | |
Member
Регистрация: 25.10.2013
Сообщений: 80
Вес репутации: 0 ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|