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

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

Результаты опроса: Если роутер прошит и настроен под Arduino, Вы купили бы его
Да 53 31.36%
Нет 24 14.20%
Куплю и сам настрою 92 54.44%
Голосовавшие: 169. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.04.2015, 07:29   #961
mr_smit
Member
 
Регистрация: 30.12.2014
Адрес: Самара
Сообщений: 45
Вес репутации: 0
mr_smit is an unknown quantity at this point
По умолчанию Re: Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020

Датчики будут подключены к роутеру через USB-COM на FT232(+MAX485). По той же витой паре на датчики идет питание от трансформатора 9 вольт. В каждом модуле преобразователь 9->5 вольт и микроконтроллер ATMega8.

Надо чтобы опрос датчиков происходил как отдельный процесс. Полученные переменные сохранялись "куда то". И потом при подключении клиента к web серверу ему передавалась html страница с переменными из "куда то".

Т.е. я открыл на телефоне страницу. Выключил свет в комнате. Жена открыла на своем телефоне страницу, там показано что свет выключен. Она включила свет в комнате. Но при этом у меня на телефоне отобразилось что свет включился. Обратная связь у меня от выключателей есть. Т.е. я опрашиваю их по кругу, получая их состояние (по 5 разным адресам). Но при этом 2,3,4... web клиента должны получать от сервера эти же переменные. Т.е. опрос датчиков сам по себе. А сервак полученные в результате опроса данные должен отдавать "сколь угодному" количеству клиентов. При этом если с клиента пришла команда вкл/выкл. Процедура опроса останавливается. Указанному датчику отсылается команда вкл/вкл, получается ответ и если всё ОК опять по кругу опрашиваем статус датчиков.

На php, при подключении клиента, php скрипт запускается "от имени" этого клиента. И идут запросы непосредственно в COM порт. Если при этом подключится второй клиент, как я понимаю, от его "имени" запустится такой же php скрипт который будет слать в COM порт запросы. В итоге на линии получится каша. Я это так понимаю. Возможно не прав.

P.S. В 11-м посте этой темы примерно то что я хочу получить.http://cyber-place.ru/showpost.php?p=1367&postcount=11. Но опять же что будет на RS485 линии при подключении, например, 3-х клиентов, допустим, просто для мониторинга состояния.

Вот нарисовал что хочу:
Миниатюры
Нажмите на изображение для увеличения
Название: Схема.JPG
Просмотров: 315
Размер:	58.4 Кб
ID:	2380   Нажмите на изображение для увеличения
Название: подключение.jpg
Просмотров: 278
Размер:	18.9 Кб
ID:	2381  

Последний раз редактировалось mr_smit; 02.04.2015 в 10:32.
mr_smit вне форума   Ответить с цитированием
Старый 02.04.2015, 19:41   #962
lvovitch
Senior Member
 
Регистрация: 14.04.2010
Сообщений: 239
Вес репутации: 0
lvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond repute
По умолчанию Re: Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020

Цитата:
Сообщение от mr_smit Посмотреть сообщение

На php, при подключении клиента, php скрипт запускается "от имени" этого клиента. И идут запросы непосредственно в COM порт. Если при этом подключится второй клиент, как я понимаю, от его "имени" запустится такой же php скрипт который будет слать в COM порт запросы. В итоге на линии получится каша. Я это так понимаю. Возможно не прав.
Можно сделать демона который будет опрашивать состояние датчиков и писать в базу/файл, а клиенты будут просто "смотреть" этот файл.

у меня сделано без РС485, просто все подключено к ардуине и есть демон, который отслеживает состояние всех устройств и пишет в базу. Вроди работает все корректно.
lvovitch вне форума   Ответить с цитированием
Старый 02.04.2015, 21:18   #963
mr_smit
Member
 
Регистрация: 30.12.2014
Адрес: Самара
Сообщений: 45
Вес репутации: 0
mr_smit is an unknown quantity at this point
По умолчанию Re: Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020

Цитата:
Сообщение от lvovitch Посмотреть сообщение
Можно сделать демона
Поподробнее. Как его написать? В чем?
mr_smit вне форума   Ответить с цитированием
Старый 02.04.2015, 22:29   #964
lvovitch
Senior Member
 
Регистрация: 14.04.2010
Сообщений: 239
Вес репутации: 0
lvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond repute
По умолчанию Re: Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020

Цитата:
Сообщение от mr_smit Посмотреть сообщение
Поподробнее. Как его написать? В чем?
у меня на php сделан. Но можно и на sh.
Пишете опрос порта каждую секунду и складируете в файл.
По мне пхп проще, но без доп. памяти его не установить на наши роутеры, соответственно нужен и хаб будет.
lvovitch вне форума   Ответить с цитированием
Старый 03.04.2015, 04:28   #965
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: Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020

Цитата:
Вот нарисовал что хочу:
Задача у Вас в общем-то тривиальная и примеров на форуме полно. Но, вряд ли кто-то согласится всё писать за Вас, поэтому могу посоветовать, потратить пару недель на изучение основ php, html и аякс (это языки для детей), тогда многое станет очевидным.
...
Просто в данный момент, Ваши вопросы порождают другие вопросы)
Вот например:
Цитата:
Полученные переменные сохранялись "куда то".
На это, в свою очередь, возникает второй вопрос:
Зачем сохранять данные?
Если хотите хранить их (например показания датчиков температуры с последующим построением графиков), то лучше в базу (но можно и в файл записывать).
Если нет, то зачем их сохранять, можно просто запрашивать состояние.

Например:
Цитата:
Жена открыла на своем телефоне страницу, там показано что свет выключен. Она включила свет в комнате. Но при этом у меня на телефоне отобразилось что свет включился.
Для этого достаточно, чтоб Ваша страничка, раз в сек. запрашивала состояние у датчиков, а не лезла "куда-то".
...
Иными словами:
Цитата:
Написал на Delphi приложение для опроса датчиков через COM порт.
Всё, что сейчас делает делфи на компе, должна делать связка из сервер + php + html + ajax на роутере.

То есть:
1. Вы запрашиваете у роутера страничку (например с телефона).
2. Сервер отправляет html-страницу на телефон.
3. Страница, через ajax-запрос (ajax нужен чтоб не перегружать страницу) делает запрос к php-скрипту расположенному на роутере.
4. Php-скрипт опрашивает датчики и отправляет их значения Вам обратно на телефон.
5. Профит.

Последний раз редактировалось stD; 03.04.2015 в 04:57.
stD вне форума   Ответить с цитированием
Старый 03.04.2015, 09:11   #966
mr_smit
Member
 
Регистрация: 30.12.2014
Адрес: Самара
Сообщений: 45
Вес репутации: 0
mr_smit is an unknown quantity at this point
По умолчанию Re: Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020

Цитата:
Сообщение от mebitek Посмотреть сообщение
Для этого достаточно, чтоб Ваша страничка, раз в сек. запрашивала состояние у датчиков, а не лезла "куда-то".
А если на 5 телефонах открыт интерфейс "умного дома"? Все 5 страниц будут опрашивать все датчики? На RS485 будет каша.

Либо вы меня не понимаете, либо я вас. У lvovitch одно устройство, которое можно опросить 1 раз и успокоиться. У меня же много. И я не понимаю как можно показывать данные (суммарные данные со всех устройств) каждому клиету не имея прослойки в виде какого либо промежуточного сборщика данных.

Открыли страницу на компьютере. Надо, например, отобразить состояние 3 модулей. В каждом модуле 4 параметра. PHP делает запрос по 1 адресу (1 модуль) - получает ответ - отображает. Дальше PHP делает запрос по 2 адресу (2 модуль) - получает ответ - отображает. По 3 адресу (3 модуль) - отображает. И всё по кругу. Первый, второй, третий,первый второй, третий.

Не закрывая страницы на компьютере, открываем страницу на телефоне. При этом PHP начинает посылать запрос первому модулю, потом второму, потом третьему. При этом с компьютера тоже идут запросы. Не успел 1-й датчик ответить первому клиенту, тут уже летит запрос 2-му датчику от второго клиента. Я не понимаю как это всё будет работать если все "клиенты" будут хаотично посылать запросы датчикам. На линии RS485 черте что будет твориться.

Я наверное не понимаю как php работает, но действие выполняется на сервере по нашему запросу. Т.е. опять же страница должна быть инициатором действия. А страниц открыто много. И все хаотично будут требовать этого действия.

Цитата:
Сообщение от mebitek Посмотреть сообщение
и примеров на форуме полно
Везде народ подключает одну ардуйну и с ней работает. Мне же надо опрашивать много "ардуйн" по заданным адресам. И в web отдавать суммарные показания. Я уже весь гугл перерыл. Нет ничего подобного.

Цитата:
Сообщение от mebitek Посмотреть сообщение
Но, вряд ли кто-то согласится всё писать за Вас
Не надо за меня писАть. Я просто никак сути не пойму. Дальше бы уж сам.
mr_smit вне форума   Ответить с цитированием
Старый 03.04.2015, 11:27   #967
lvovitch
Senior Member
 
Регистрация: 14.04.2010
Сообщений: 239
Вес репутации: 0
lvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond repute
По умолчанию Re: Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020

Ну так я ведь написал, что лучше всего использовать демона.

Тоесть на роутере есть два скрипта. Один из них работает с шиной, другой с клиентами. Между ними связь - оперативка.

Демон каждую секунду (либо можно придумать более хитрый способ) спрашивает датчки:
- 1-й - сколько градусов?
- 25
- 2-й - сколько градусов?
- 14
...
дальше создаем в tmp файл. вида:
d1=25
d2=14

Все, на этом миссия демона закончена.

Клиентский скрипт обращается к файлу в tmp, считывает его и показывает клиенту. В этом случая клиентов может быть много и на шине не будет хаоса.
lvovitch вне форума   Ответить с цитированием
Старый 03.04.2015, 12:14   #968
mr_smit
Member
 
Регистрация: 30.12.2014
Адрес: Самара
Сообщений: 45
Вес репутации: 0
mr_smit is an unknown quantity at this point
По умолчанию Re: Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020

Цитата:
Сообщение от lvovitch Посмотреть сообщение
Ну так я ведь написал, что лучше всего использовать демона.
...

Клиентский скрипт обращается к файлу в tmp, считывает его и показывает клиенту. В этом случая клиентов может быть много и на шине не будет хаоса.
Вот об этом и разговор. А в чем этого демона писать? Какой софт?
mr_smit вне форума   Ответить с цитированием
Старый 03.04.2015, 12:59   #969
lvovitch
Senior Member
 
Регистрация: 14.04.2010
Сообщений: 239
Вес репутации: 0
lvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond repute
По умолчанию Re: Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020

ставьте cyber-wrt
оттуда проще поставить пхп, крон и т.д.
на каком языке писать демона - Вам решать. Можно на том же пхп. Можно на shell. Суть от этого не изменится. И вешайте его в автозагрузку.
lvovitch вне форума   Ответить с цитированием
Старый 03.04.2015, 16:18   #970
mr_smit
Member
 
Регистрация: 30.12.2014
Адрес: Самара
Сообщений: 45
Вес репутации: 0
mr_smit is an unknown quantity at this point
По умолчанию Re: Ставим OpenWrt на миниатюрный WiFi роутер TP-LINK TL-MR3020

php установлен и работает. А что такое крон и shell я не знаю. Думал можно как в windows просто приложение написать и всё. Ладно, буду думать.
mr_smit вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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