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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.11.2012, 19:05   #1
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312
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
По умолчанию

То что я хочу сделать, я попытался описать вот здесь: http://cyber-place.ru/showpost.php?p=2311&postcount=5

Как же без сервера, без него никак нельзя! )))))
stD вне форума   Ответить с цитированием
Старый 30.11.2012, 23:39   #2
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от mebitek Посмотреть сообщение
То что я хочу сделать, я попытался описать вот здесь: http://cyber-place.ru/showpost.php?p=2311&postcount=5
это я уже читал

Цитата:
Как же без сервера, без него никак нельзя! )))))
Я имел ввиду лишнее звено ардуино-мастер! а не web сервер.

Просто когда вы пишите "хотелки" вы должны четко представлять, последовательность обмена информацией.

В модбас инициатором соединения всегда выступает МАСТЕР для протокола modbus RTU (или КЛИЕНТ для протокола modbus TCP/IP). В данном случае мы рассматриваем протокол modbus rtu из чего следует:
все ардуины в сети будут помощниками (slave) которые, слушают, ожидают соединения от мастера. Они (slave) отвечают только в том случае если идет обращение непосредственно к ним (к нему) т.е. когда ID запроса от мастера соответствует ID slave. После этого происходит обмен информацией между мастером и помощником, либо чтение регистров (пременных), либо запись в зависимости от функции протокола модбас.

Я еще раз обращаю ваше внимание на то, что для понимания процесса обмена нужно прочитать хотя бы основы протокола modbus rtu. Можно не вникать в дебри самого протокола, но основное вы должны понять.

Почему я вам задаю вопрос зачем нужна ардуина-мастер, да потому что я не вижу и не понимаю её сущность.

Вот на мой взгляд приблизительный алгоритм работы:

У вас в сети modbus-rtu подключено (соединено) несколько ардуин-slave (2x проводная линия, витая пара с эл. интерфесом RS-485). Допустим их 3шт с ID=1, ID=2, ID=3.
Каждая из ардуин в цикле слушает и отвечает только на свой ID.
Причем в выше приведенном примере (пост №4) используются:
1. 10 регистров (переменных)
2. работают только функции 3 и 10 (что вполне хватает для нужд умного дома)

Каждая из этих ардуин-slave может выполнять различные функции, например:
- анализируя аналоговые входа измерять температуру и записывать эти значения в какой либо регистр модбас, который в последствии будет считываться мастером.
- изменять цифровые входа (для вкл. реле или тиристоров) считывая значения др. регистров, которые в свою очередь будут изменяться опять же мастером.
и т.д. (все зависит от назначения конкретной ардуины)

Мастером в этой сети служит роутер (mr3020)
- на роутере установлен WEB сервер.
- на роутере установлена программа modbus-мастер (бинарный файл).

В этом звене нужно обеспечить обмен между запросами от клиента (браузера) web-сервера и модбас-мастером.

Здесь я предполагаю несколько путей:
1. modbus-мастер может работать как CGI приложение.
Клиент-браузер периодически (через функции POST, GET) прередает CGI программе запрашиваемые или изменяемые параметры (переменные регистры) в свою очередь CGI приложение modbus-master связывается с соответствующим modbus-slave и получает или изменяет соответствующие регистры и возвращает результаты WEB клиенту.

2. modbus-мастер работает как демон (в фоне).
Он в цикле с определенной периодичностью опрашивает помщников (slave) и записывает состояние их регистров в файл данных, затем считывеет этот же файл и записывает снова в регистры slave.

При обращении к Web серверу вызывается программа (php скрипт) которая считывает этот файл данных интерпретирует и передает эти данные на web страницу клиента. При изменении каких то параметров происходит обратный процесс, php программа перезаписывает файл данных.

Ну как то так
andr128 вне форума   Ответить с цитированием
Старый 01.12.2012, 17:48   #3
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312
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
По умолчанию

Всё верно, просто я хочу поставить мегаардуину на случай выхода из строя сервера (завис например) , тогда "умный дом" всё равно будет работоспособен, в меге будут хранится те же данные что и на сервере. На сервере я планирую всё помещать в БД. В свою очередь, если зависнет мега, то после ресета она возьмёт данные из БД на сервере. Мега и сервер как бы дублируют друг друга.

Последний раз редактировалось stD; 01.12.2012 в 17:56.
stD вне форума   Ответить с цитированием
Старый 02.12.2012, 08:58   #4
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от mebitek Посмотреть сообщение
Всё верно, просто я хочу поставить мегаардуину на случай выхода из строя сервера (завис например) , тогда "умный дом" всё равно будет работоспособен
Как это? Управлять же вы им уже не сможете.
Вся система будет оторвана от внешнего мира.
Цитата:
, в меге будут хранится те же данные что и на сервере.
А где вы хотите хранить эти данные? Если в ОЗУ тогда при сбое питания они тоже исчезнут.
Цитата:
На сервере я планирую всё помещать в БД. В свою очередь, если зависнет мега, то после ресета она возьмёт данные из БД на сервере. Мега и сервер как бы дублируют друг друга.
У них совершенно разные возможности. Они в принципе не могут дублировать друг-друга.

Я понимаю в этой роли роутер, но никак ни мегу. На роутер можно повесить кучу нужных приложений. Например тоже оповещение по СМС в случае каких-то аварийных ситуаций. А что может мега?

Да все может сбоить, виснуть и прочее.. Но мы же не военную технику делаем, где требуется 100-300% резервирование.
andr128 вне форума   Ответить с цитированием
Старый 02.12.2012, 13:33   #5
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312
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
По умолчанию

Цитата:
По поводу питания я не понял, а зачем 5в. В ардуино уже есть свой стабилизатор.
У меня слейв-устройства самодельные. Готовые ардуины дорого получится, по 700р. , а самоделка 130р.


Цитата:
Как это? Управлять же вы им уже не сможете.
Вся система будет оторвана от внешнего мира.
От внешнего да, но сам "умный дом" будет работать и не погрузится во мрак. Ведь свет то через него работает! Опять же можно сделать так, чтоб Мега посылала запрос на сервер с какой-то периодичностью, и в случае неполучения нужного ответа от сервера, перегружала его (релюшку на ресет приладить). В свою очередь сервер не получив запроса от Меги поймёт что она зависла и её нужно перегрузить (здесь всё просто, достаточно разорвать и востановить usb-соединение, Мега перезагрузится).

Цитата:
А где вы хотите хранить эти данные? Если в ОЗУ тогда при сбое питания они тоже исчезнут.
Можно в EEPROM сохранять через каждые 20 минут (к примеру) хватит примерно на четыре года. Это будет хоть что-то на случай если и мега зависнет и сервер навернётся.

Цитата:
У них совершенно разные возможности. Они в принципе не могут дублировать друг-друга.
Достаточно на сервере в обычном текстовом файле хранить значения переменных.

Цитата:
Я понимаю в этой роли роутер, но никак ни мегу. На роутер можно повесить кучу нужных приложений. Например тоже оповещение по СМС в случае каких-то аварийных ситуаций. А что может мега?
Если повиснет роутер, то никакие приложения и оповещения по СМС уже не помогут. В этом случае (как я уже писал) нужно отдельное GSM-устройство, которое сможет обресетить роутер по команде с сотового телефона.

Что касается роутера, то боюсь тяжеловато ему будет всё на себе тащить, ведь ещё будут: Сам по себе интернет на три компа, Apache, ещё какие-то приложения, веб-камеры и у меня ещё в загашнике валяется видео-камера и плата захвата.
И как я уже писал, хочу чтоб в прихожей был стационарный монитор с тачем.
........................................ ........................................ .....................................
Я не спорю, в какой-то степени Мега лишнее звено, но это только на первый взгляд.
С точки зрения техники, каждое лишнее звено снижает надёжность, но я рассматриваю её как дублирующие устройство.
И потом, мы же здесь придумываем как сделать, так сказать делимся идеями

Последний раз редактировалось stD; 02.12.2012 в 13:37.
stD вне форума   Ответить с цитированием
Старый 16.12.2012, 18:08   #6
Kuhelbekker
Junior Member
 
Регистрация: 07.12.2012
Сообщений: 11
Вес репутации: 0
Kuhelbekker is an unknown quantity at this point
По умолчанию

ModBus не очень подходит для умного дома, вот для управления конвейером подходит. Дело в том что slave не может послать сообщение мастеру если мастер его не спросит.
Другими словами, если у нас есть выключатель или датчик движения то он не может выдать сообщение в сеть без запроса мастера, еще было бы удобно слать широковещательные сообщения, от того же датчика движения когда система в режиме охраны, чтобы сразу отсылалось смс включалась сигнализация и открывались клапаны с усыпляющим газом =)
Постоянно опрашивать все устройства и датчики в непрерывном цикле это не правильно.

Последний раз редактировалось Kuhelbekker; 16.12.2012 в 18:10.
Kuhelbekker вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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