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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.12.2015, 14:59   #1
Pol_butcher
Junior Member
 
Регистрация: 16.12.2015
Сообщений: 3
Вес репутации: 0
Pol_butcher is an unknown quantity at this point
По умолчанию Моё начало! OpenWRT + Arduino

Добрый день, собираю систему умного дома на базе OpenWRT и Arduino.
Частный дом с электроотоплением и желанием его мониторить удаленно.
Что сделано:
Сбор статистики с датчика DHT22 в БД sqlite
Отправка смс с показаниями датчика в 8, 12,18,22 часов.
Отображение текущей информации и архива на сайте. Также VPN для удаленного доступа за серым IP.
Вся логика лежит на Shell и cron. Shell отправляет запрос в нужное время и получает данные с ардуины. Все хорошо, но хочу повесить датчики дыми и движения чтоб ставить дом под охрану таблеткой тоуч мемори.
Как сделать так чтобы не пинать ардуину шелом, а ардуина бы слала раз в 10с - 1 минута в UART данные примерно такого вида D1 27 D2 18 D3 1 D4 22, а Openwrt постоянно слушала его и на основании этих данных что-то делала.
Команда read заканчивает прием после \n
CAT постоянно слушает ttyUSB.
Прошу совета или ссылки где это реализовано. Желательно без особых костылей.
Pol_butcher вне форума   Ответить с цитированием
Старый 16.12.2015, 19:18   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,486
Вес репутации: 9686
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: Моё начало! OpenWRT + Arduino

Нужно с OpenWrt с требуемой периодичностью посылать запрос на ардуину и получать ответ
Пример скетча можно подсмотреть у WiFi робота
Admin вне форума   Ответить с цитированием
Старый 17.12.2015, 06:10   #3
Pol_butcher
Junior Member
 
Регистрация: 16.12.2015
Сообщений: 3
Вес репутации: 0
Pol_butcher is an unknown quantity at this point
По умолчанию Re: Моё начало! OpenWRT + Arduino

Датчик движения который у меня есть размыкает контакты на несколько секунд. Может 1 сек если объект прошел быстро через зону датчика.
Неужели нужно каждую секунду запускать Shell кроном чтобы опрашивать ардуину.
Я хотел сделать что-то типо такого: при загрузке роутера запускается shell, который командой read слушает ttyUSB0, если ардуина послала какой то символ(допустим A - alarm), команда read прекращает работу, данные по аварии передаются на gnokii - приходим смс. И надо как то обратно поставить команду на прослушку порта.

Может я не правильно мыслю и нужно от этот вариант вообще выкинуть из головы?
Pol_butcher вне форума   Ответить с цитированием
Старый 17.12.2015, 10:59   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,486
Вес репутации: 9686
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: Моё начало! OpenWRT + Arduino

Слушать тоже можно.
В "Light Control" так реализовано
То есть даже оба варианта, он и слушает и запрос отправляет когда нужно
Admin вне форума   Ответить с цитированием
Старый 17.12.2015, 14:51   #5
Pol_butcher
Junior Member
 
Регистрация: 16.12.2015
Сообщений: 3
Вес репутации: 0
Pol_butcher is an unknown quantity at this point
По умолчанию Re: Моё начало! OpenWRT + Arduino

Нашел что хотел - бесконечный скрипт. Вроде и кушает не много.
Получилось так:
Цитата:
#!/bin/sh
while true
do
read ard < /dev/ttyUSB0
if [ "$ard" == "alarm" ]
then
echo "Alarm!!!Dvigenie v dome." | gnokii --sendsms '+7ХХХХХХХХХ'
fi
sleep 2
done
exit 0
Теперь можно отслеживать данные которые идут с ардуины, shellom их проверять и запускать что нужно и когда нужно.

Последний раз редактировалось Pol_butcher; 17.12.2015 в 14:59.
Pol_butcher вне форума   Ответить с цитированием
Старый 17.12.2015, 16:41   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,486
Вес репутации: 9686
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: Моё начало! OpenWRT + Arduino

Как бы давно известная функция, но она кривая
Работает крайне не стабильно
Admin вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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


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


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