Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.08.2015, 09:43   #1
tayanov
Junior Member
 
Регистрация: 23.10.2012
Сообщений: 13
Вес репутации: 0
tayanov is an unknown quantity at this point
Question Выполнение sh openwrt по команде arduino через uart

Всем привет.
Есть задачка. Не могу справиться ...
mr3020 openwrt хранит данные с счетчиков воды в sqlite. (полученные по wi-fi с esp 8266)
И содержит на борту несколько скриптов, количество которых будет увеличиваться.
К примеру по выполнению ./to.sh (to- temperature outdoor)
выводиться значение температуры, скажем 25.
А по выполнению ./kc.sh (kc-kitchen cold) получаю на экран последнее значение хранящееся в базе счетчика холодной воды в кухне.

В планах разработки иметь "коробочку" с N кнопками. Которые подключены к ардуине, та в свою очередь имеет 2-х строчный дисплей.

И так в состоянии покоя скажем на дисплее время (этот момент пока опустим)

Скажем выходя из дома я хочу узнать температуру. Нажимаю на "коробочке" кнопку и на дисплей выводиться "ответ скрипта"

В чем на данный момент заключается проблема?

Arduino не получает ответ на команду serial.println("./root/to.sh") от openwrt по UART.

При этом если я цепляю на UART комп. То среди "мусора" лога загрузки, точнее после того как он перестанет сыпать. Команда ./root/to.sh успешно возвращает мне значение, скажем 25.

Уверен что дело в скетче. Выкладывать да же особо нечего.
Bounce использовал для кнопки.
Кстати если по умолчанию содержимое serial кидать на LCD, то на экране я наблюдаю лог загрузки.

И да же если в SSH выполнить ./to.sh > /dev/ttyATH0 то дисплей ардуины высветит заветное "25".

Уже запутался в скетчах, но умудрялся получать что то вроде /bin/ash not found.

Насройка порта в роутере:
stty -F /dev/ttyATH0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts -hupcl

скорость 115200 думаю потому что именно на этой скорости по uart с компа команды выполняются.

Вообщем прошу помощи у ADMINa и stD.
tayanov вне форума   Ответить с цитированием
Старый 28.08.2015, 10:02   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Выполнение sh openwrt по команде arduino через uart

Самого главного не вижу.
Где код ожидания пакета для ардуино и
скрипт ожидания пакета для openwrt
Какой USB мост у ардуино?
Admin вне форума   Ответить с цитированием
Старый 28.08.2015, 10:18   #3
tayanov
Junior Member
 
Регистрация: 23.10.2012
Сообщений: 13
Вес репутации: 0
tayanov is an unknown quantity at this point
По умолчанию Re: Выполнение sh openwrt по команде arduino через uart

Если я праильно понимаю USB мост я не использую. Подключаюсь через rx tx gnd на uart роутера.
В любом случае у меня arduino nano.
Не пойму какой скрипт должен ожидать пакет на openwrt. (ведь кидая команды с компа на все тот же uart в роутере ничто не ждет команд)

А вот с arduino сложнее.

if (bouncer.update()) { //если произошло событие
if (bouncer.read()==0) { //если кнопка нажата

Serial.println("./root/kh.sh");
if (serial.avarible() > 0 )
{
str = Serial.readStringUntil('\n');
}
lcd.clear();
lcd.print(str);
Serial.println(str);

}
}


Конструкция очень примерная. И почему то мне уже кажется что нужно и проще использовать php только как всегда его выполнять не пойму?( при запуске php в цикле)
tayanov вне форума   Ответить с цитированием
Старый 28.08.2015, 12:08   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Выполнение sh openwrt по команде arduino через uart

Цитата:
Не пойму какой скрипт должен ожидать пакет на openwrt. (ведь кидая команды с компа на все тот же uart в роутере ничто не ждет команд)
Тогда каким образом роутер получит сообщение от ардуино?

Цитата:
if (serial.avarible() > 0 )
{
str = Serial.readStringUntil('\n');
}
Не будет работать. В 99% случаев роутер не успеет прислать ответ и в буфере Serial будет пусто

Цитата:
только как всегда его выполнять не пойму?
По крону
Admin вне форума   Ответить с цитированием
Старый 28.08.2015, 21:26   #5
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Выполнение sh openwrt по команде arduino через uart

А если так /root/kh.sh
__________________
istarik.ru
stD вне форума   Ответить с цитированием
Ответ

Метки
arduino, bash, openwrt, serial, uart


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 13:47. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика