Как правильно организовать опрос нескольких ардуин с web сервера.

ramzes.ru
Offline
Зарегистрирован: 19.11.2014

Добрый день,

В каждой комнате планируеться установить по небольшому блоку на базе ардуино, которые будут измерять температуру в помещении, отображать измерение, управлять сервоприводом отопления, включение - выключение света так же хотелось бы, что бы данные из данного блока записывались в базу на web сервере.

Так вто вопрос.

Как правильно организовать данную схему?

Опрос всех датчиков делат сам web сервер по cron, собирает все данные в некий массив и затем раскладывает в базу или каждый блок сам вызывает файлик с web сервера и записывает только свои значения?

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

что-то как-то сложно вы все объяснили...

 

Araris
Offline
Зарегистрирован: 09.11.2012

Схема 1 - сервер инициирует сеансы связи с подчинёнными, собирает информацию, отдаёт команды.

Схема 2 - подчиненные инициируют сеансы связи с сервером, отдают информацию, принимают команды.

Мне по душе первая схема, она делает невозможной ситуацию, когда два/несколько подчинённых возжелают одновременно пообщаться с сервером. (имею ту же ситуацию - в комнатах Ардуины, одна из них "центральная")

ramzes.ru
Offline
Зарегистрирован: 19.11.2014

Подскажите где посмотреть пример реализации первой схемы?

В качестве сервера хочу использовать raspberry pi b2

Araris
Offline
Зарегистрирован: 09.11.2012

Боюсь, конкретный пример сходу не смогу подсказать, а гуглить за Вас - не обессудьте.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Есть мнение, что Araris и ТС говорят о разных вещах...

Araris
Offline
Зарегистрирован: 09.11.2012

ramzes.ru пишет:

Опрос всех датчиков делает сам web сервер по cron, собирает все данные в некий массив и затем раскладывает в базу или каждый блок сам вызывает файлик с web сервера и записывает только свои значения?

Упс, я что-то не так понял ?

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Araris пишет:

ramzes.ru пишет:

Опрос всех датчиков делает сам web сервер по cron, собирает все данные в некий массив и затем раскладывает в базу или каждый блок сам вызывает файлик с web сервера и записывает только свои значения?

Упс, я что-то не так понял ?

так веб-сервер-же...

Araris
Offline
Зарегистрирован: 09.11.2012

Я сознательно не упоминал это слово, поскольку вёл речь о двух способах/схемах организации обмена информацией. Общий случай, так сказать.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Araris пишет:

Я сознательно не упоминал это слово, поскольку вёл речь о двух способах/схемах организации обмена информацией. Общий случай, так сказать.

Чисто интересуюсь:

Цитата:

Схема 1 - сервер инициирует сеансы связи с подчинёнными, собирает информацию, отдаёт команды.

как к веб-серверу относится?

Araris
Offline
Зарегистрирован: 09.11.2012

Вашу мысль понимаю. Топикстартер написал "Опрос всех датчиков делат сам web сервер по cron", если это называть web-сервером, то как-то относится, ну да, согласен, терминологически не очень корректно звучит. Поэтому я и не упоминал термин web-сервер. В моём тексте лучше тогда заменить "сервер" на "мастер" какой-нибудь, или как Вам угодно.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Araris пишет:

Вашу мысль понимаю. Топикстартер написал "Опрос всех датчиков делат сам web сервер по cron", если это называть web-сервером, то как-то относится, ну да, согласен, терминологически не очень корректно звучит. Поэтому я и не упоминал термин web-сервер. В моём тексте лучше тогда заменить "сервер" на "мастер" какой-нибудь, или как Вам угодно.

Я согласен с вами.

Топикстартер

Gippopotam пишет:

что-то как-то сложно вы все объяснили...

ramzes.ru
Offline
Зарегистрирован: 19.11.2014

Поясню почему web сервер

по cron планируется производить опрос устройств и запись их значений в MySQL  и передача им значений из MySQL

Так же хотелось наблюдать за работай устройств через браузер

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

ramzes.ru пишет:

Поясню почему web сервер

по cron планируется производить опрос устройств и запись их значений в MySQL  и передача им значений из MySQL

Так же хотелось наблюдать за работай устройств через браузер

В таком случае - я за этот вариант:

Цитата:

или каждый блок сам вызывает файлик с web сервера и записывает только свои значения?

inspiritus
Offline
Зарегистрирован: 17.12.2012

Каждый мк с кучей датчиков слушает порт на своем IP

Мастер (согласен с формулировкой уважаемого Araris) с помощью скрипта ( пхп, питон) по крону обращается к мк и получает от мк сгенерированную им упорядоченную структуру данных (csv, xml, json), парсит ее и рассовывает в мискл ( посгрис) .

на Мастере крутится апач, который отдает страницы с информацией из мискла внешним клиентам.

есть промышленная система, которая долго и счастливо живет в такой архитектуре

avgaz
Offline
Зарегистрирован: 23.09.2014

а как будет осущевстлятся связь ардуин с сервером?

ramzes.ru
Offline
Зарегистрирован: 19.11.2014

Хочеться все организовать через http

inspiritus
Offline
Зарегистрирован: 17.12.2012

Осуществляться будет так, как Вы сделаете хоть по upnp сочиняйте

У меня по http, так проще всего.

 

avgaz
Offline
Зарегистрирован: 23.09.2014

Я имею виду по части железа.

inspiritus
Offline
Зарегистрирован: 17.12.2012

W5100 адназначна

avgaz
Offline
Зарегистрирован: 23.09.2014

inspiritus пишет:

W5100 адназначна

Тоесть в каждую комнату ставить W5100 и тянуть из каждой комнаты витую пару к роутеру или свичу если ардуин более 4? что то гемор какой то, тем более что придется опрашивать разные IP что вызовет дополнительные глюки и тормоза

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

avgaz пишет:

inspiritus пишет:

W5100 адназначна

Тоесть в каждую комнату ставить W5100 и тянуть из каждой комнаты витую пару к роутеру или свичу если ардуин более 4? что то гемор какой то, тем более что придется опрашивать разные IP что вызовет дополнительные глюки и тормоза

Нет. Гемор - это пытаться понять, чего вы хотите.

Вы пишите о противоречивых вещах, потом возмущаетесь, что совет вам не нравится.

Хотите, чтобы Ардуино из каждой комнаты сама писала на сервер? Ставьте там по wifi или ethernet модулю.

Хотите другой подход? Ставьте в каждую комнату по радио-транссиверу, а на сервер пусть пишет Ардуино-Мастер, собирая данные по радиоканалу.

Хотите, чтобы вам дали совет, какой способ предпочтительнее - давайте больше конкретной информации.

inspiritus
Offline
Зарегистрирован: 17.12.2012

А при чем тут более 4? Почему не 1, или 3?

"Разные IP.... глюки и тормоза" - странное у Вас понимание сложности :)

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

nrf24l01 на разных каналах в каждой комнате, и сервер котоый будет их опрашивать

ramzes.ru
Offline
Зарегистрирован: 19.11.2014

Хотелось бы организовать как на рисунке

контроллеров будет от 4-6 шт.

Как сделать корректно опрос этих контроллерови и положить их значения в базу?

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

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

ramzes.ru пишет:

Вы ждете готовых примеров?

avgaz
Offline
Зарегистрирован: 23.09.2014

Gippopotam пишет:

Нет. Гемор - это пытаться понять, чего вы хотите.

Вы пишите о противоречивых вещах, потом возмущаетесь, что совет вам не нравится.

Хотите, чтобы Ардуино из каждой комнаты сама писала на сервер? Ставьте там по wifi или ethernet модулю.

Хотите другой подход? Ставьте в каждую комнату по радио-транссиверу, а на сервер пусть пишет Ардуино-Мастер, собирая данные по радиоканалу.

Хотите, чтобы вам дали совет, какой способ предпочтительнее - давайте больше конкретной информации.

Если вы не заметили, то я спросил как автор будет реализовывать, я не задавал не каких вопросов как сделать и тд у меня уже сделано и костыли с W5100 прошол, а вы видимо даже не пытались подумать как это будет собрать более 2х штук по всему дому их.

avgaz
Offline
Зарегистрирован: 23.09.2014

inspiritus пишет:

А при чем тут более 4? Почему не 1, или 3?

"Разные IP.... глюки и тормоза" - странное у Вас понимание сложности :)

Читайте что пишет автор в первом посте, ему нужно соединить несколько комнат может тогда поймете что явно более 1. А вы пробовали опрашивать скажем каждые 5сек скажем 4 IP и писать с них данные в SQL в течении суток? нет ну дак и нестоит тогда!

ramzes.ru
Offline
Зарегистрирован: 19.11.2014

Нет, я прошу помощи подсказать как это более правильно организовать

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

ramzes.ru пишет:

Нет, я прошу помощи подсказать как это более правильно организовать

чем не устраивает пост №23?

avgaz
Offline
Зарегистрирован: 23.09.2014

ramzes.ru пишет:

Хотелось бы организовать как на рисунке

контроллеров будет от 4-6 шт.

Как сделать корректно опрос этих контроллерови и положить их значения в базу?

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

Ну у вас будет несколько контроллеров соотвественно вам нужен будет ещё или свичь или роутер иначе вы несколько 28j60 в малину не воткнете.

Опросить вы можете к примеру через php так

file_get_contents('http://192.168.0.55'); // опрос 28j60 получаем строку данных дальше её раскладываем с помощью explode и substr

и так для каждого контролера

 

 

ramzes.ru
Offline
Зарегистрирован: 19.11.2014

Valera19701 пишет:

ramzes.ru пишет:

Нет, я прошу помощи подсказать как это более правильно организовать

чем не устраивает пост №23?

А двух сторонную связь можно организовывать на этих модулях или на один контроллер надо ставить и приемник и передатчик?

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

можно, но не одновременно, как старая рация, запрос - ответ

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

avgaz пишет:

Gippopotam пишет:

Нет. Гемор - это пытаться понять, чего вы хотите.

Вы пишите о противоречивых вещах, потом возмущаетесь, что совет вам не нравится.

Хотите, чтобы Ардуино из каждой комнаты сама писала на сервер? Ставьте там по wifi или ethernet модулю.

Хотите другой подход? Ставьте в каждую комнату по радио-транссиверу, а на сервер пусть пишет Ардуино-Мастер, собирая данные по радиоканалу.

Хотите, чтобы вам дали совет, какой способ предпочтительнее - давайте больше конкретной информации.

Если вы не заметили, то я спросил как автор будет реализовывать, я не задавал не каких вопросов как сделать и тд у меня уже сделано и костыли с W5100 прошол, а вы видимо даже не пытались подумать как это будет собрать более 2х штук по всему дому их.

Теперь заметил. Прошу прощения. Обращался к ТС. Суть не меняется.