![]() |
|
Результаты опроса: Если роутер прошит и настроен под Arduino, Вы купили бы его | |||
Да |
![]() ![]() ![]() ![]() |
53 | 31.36% |
Нет |
![]() ![]() ![]() ![]() |
24 | 14.20% |
Куплю и сам настрою |
![]() ![]() ![]() ![]() |
92 | 54.44% |
Голосовавшие: 169. Вы ещё не голосовали в этом опросе |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#961 |
Member
Регистрация: 30.12.2014
Адрес: Самара
Сообщений: 45
Вес репутации: 0 ![]() |
![]()
Датчики будут подключены к роутеру через 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-х клиентов, допустим, просто для мониторинга состояния. Вот нарисовал что хочу: Последний раз редактировалось mr_smit; 02.04.2015 в 10:32. |
![]() |
![]() |
![]() |
#962 | |
Senior Member
Регистрация: 14.04.2010
Сообщений: 239
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
у меня сделано без РС485, просто все подключено к ардуине и есть демон, который отслеживает состояние всех устройств и пишет в базу. Вроди работает все корректно. |
|
![]() |
![]() |
![]() |
#963 |
Member
Регистрация: 30.12.2014
Адрес: Самара
Сообщений: 45
Вес репутации: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#964 |
Senior Member
Регистрация: 14.04.2010
Сообщений: 239
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#965 | ||||
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
... Просто в данный момент, Ваши вопросы порождают другие вопросы) Вот например: Цитата:
Зачем сохранять данные? Если хотите хранить их (например показания датчиков температуры с последующим построением графиков), то лучше в базу (но можно и в файл записывать). Если нет, то зачем их сохранять, можно просто запрашивать состояние. Например: Цитата:
... Иными словами: Цитата:
То есть: 1. Вы запрашиваете у роутера страничку (например с телефона). 2. Сервер отправляет html-страницу на телефон. 3. Страница, через ajax-запрос (ajax нужен чтоб не перегружать страницу) делает запрос к php-скрипту расположенному на роутере. 4. Php-скрипт опрашивает датчики и отправляет их значения Вам обратно на телефон. 5. Профит. Последний раз редактировалось stD; 03.04.2015 в 04:57. |
||||
![]() |
![]() |
![]() |
#966 | |
Member
Регистрация: 30.12.2014
Адрес: Самара
Сообщений: 45
Вес репутации: 0 ![]() |
![]() Цитата:
Либо вы меня не понимаете, либо я вас. У lvovitch одно устройство, которое можно опросить 1 раз и успокоиться. У меня же много. И я не понимаю как можно показывать данные (суммарные данные со всех устройств) каждому клиету не имея прослойки в виде какого либо промежуточного сборщика данных. Открыли страницу на компьютере. Надо, например, отобразить состояние 3 модулей. В каждом модуле 4 параметра. PHP делает запрос по 1 адресу (1 модуль) - получает ответ - отображает. Дальше PHP делает запрос по 2 адресу (2 модуль) - получает ответ - отображает. По 3 адресу (3 модуль) - отображает. И всё по кругу. Первый, второй, третий,первый второй, третий. Не закрывая страницы на компьютере, открываем страницу на телефоне. При этом PHP начинает посылать запрос первому модулю, потом второму, потом третьему. При этом с компьютера тоже идут запросы. Не успел 1-й датчик ответить первому клиенту, тут уже летит запрос 2-му датчику от второго клиента. Я не понимаю как это всё будет работать если все "клиенты" будут хаотично посылать запросы датчикам. На линии RS485 черте что будет твориться. Я наверное не понимаю как php работает, но действие выполняется на сервере по нашему запросу. Т.е. опять же страница должна быть инициатором действия. А страниц открыто много. И все хаотично будут требовать этого действия. Везде народ подключает одну ардуйну и с ней работает. Мне же надо опрашивать много "ардуйн" по заданным адресам. И в web отдавать суммарные показания. Я уже весь гугл перерыл. Нет ничего подобного. Не надо за меня писАть. Я просто никак сути не пойму. Дальше бы уж сам. |
|
![]() |
![]() |
![]() |
#967 |
Senior Member
Регистрация: 14.04.2010
Сообщений: 239
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Ну так я ведь написал, что лучше всего использовать демона.
Тоесть на роутере есть два скрипта. Один из них работает с шиной, другой с клиентами. Между ними связь - оперативка. Демон каждую секунду (либо можно придумать более хитрый способ) спрашивает датчки: - 1-й - сколько градусов? - 25 - 2-й - сколько градусов? - 14 ... дальше создаем в tmp файл. вида: d1=25 d2=14 Все, на этом миссия демона закончена. Клиентский скрипт обращается к файлу в tmp, считывает его и показывает клиенту. В этом случая клиентов может быть много и на шине не будет хаоса. |
![]() |
![]() |
![]() |
#968 |
Member
Регистрация: 30.12.2014
Адрес: Самара
Сообщений: 45
Вес репутации: 0 ![]() |
![]()
Вот об этом и разговор. А в чем этого демона писать? Какой софт?
|
![]() |
![]() |
![]() |
#969 |
Senior Member
Регистрация: 14.04.2010
Сообщений: 239
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
ставьте cyber-wrt
оттуда проще поставить пхп, крон и т.д. на каком языке писать демона - Вам решать. Можно на том же пхп. Можно на shell. Суть от этого не изменится. И вешайте его в автозагрузку. |
![]() |
![]() |
![]() |
#970 |
Member
Регистрация: 30.12.2014
Адрес: Самара
Сообщений: 45
Вес репутации: 0 ![]() |
![]()
php установлен и работает. А что такое крон и shell я не знаю. Думал можно как в windows просто приложение написать и всё. Ладно, буду думать.
|
![]() |
![]() |
![]() |
Здесь присутствуют: 29 (пользователей: 0 , гостей: 29) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|