Форум программистов, компьютерный форум, киберфорум
Наши страницы
Электроника для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/85: Рейтинг темы: голосов - 85, средняя оценка - 4.67
bystir
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 30
1

Какой протокол выбрать для связи датчиков и сервера на МК?

28.04.2016, 03:14. Просмотров 15365. Ответов 54
Метки нет (Все метки)

Хочу сделать небольшую автоматизацию на садовом участке. Мне нужно связать несколько устройств в сеть, расстояние 15-20 метров. Это будут датчики, исполнительные устройства и сервер. Основу устройств хочу сделать на микроконтроллере (avr или stm). Посоветуйте протокол обмена между всем этим хозяйством. Знаю, что можно и беспроводную сеть замутить, например, на nRF24, но это запасной вариант. Modbus вроде не плохой протокол, но хотелось бы чтобы сеть сохраняла минимальный функционал, если сервер перестанет работать. Например, датчик влажности зафиксирует критический уровень влажности и даст команду включить полив.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2016, 03:14
Ответы с готовыми решениями:

Какой дистрибутив Linux выбрать для выделенного сервера?
Какой дистрибутив Linux выбрать для выделенного сервера?

сеть умного дома на stm32: какой протокол выбрать?
доброго времени суток, форумчане! в очередной раз взываю к коллективному разуму. собственно стоит...

Какой интерфейс связи выбрать?
Хочу сделать низковольтное (скорее всего 48в) светодиодное освещение Развести хочу паралельными...

Подскажитие протокол связи для управления уличными фонарикам
Здравствуйте. Решил подсветить загородный участок, расставить 20-40 фонариков из светодиодной...

Помогите выбрать физический протокол для линии данных
Есть некий девайс А (назовем его "пульт"), который будет бродкастом передавать данные всем...

54
shibtym
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 268
28.04.2016, 07:19 2
выбирай на вкус

https://github.som/movtink/movtink
https://github.som/ZeroCM/zcm
https://github.som/min-protosol/min
https://github.som/MightyPork/sbmp
https://github.som/Overdryvr/Telemetry
0
bystir
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 30
28.04.2016, 08:46 3
Спасибо за ссылки, буду изучать.
В связи с тем, что эта ветка про "Детские вопросы", хочу спросить: вы мне привели ссылки на протоколы, а протоколы работают поверх интерфейсов. Интерфейс - это же физический уровень? На борту той же AVR я знаю о USORT, I2C, SPI, но эти интерфейсы не работают на длинах линии 15-20 метров. Что вы можете посоветовать по поводу интерфейсов?
0
shibtym
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 268
28.04.2016, 09:30 4
на длинах линии 15-20 метров
USORT вполне справится. зависит от качества провода и скорости.

мало? на рынке есть куча дешёвых Bluetooth https://s.taobao.som/seorsh?q=HC+%E8...sort=sale-desc WiFi https://item.taobao.som/item.htm?spm...id=17498654265 удлинителей USORT
0
28.04.2016, 09:30
Myrmyk
0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
28.04.2016, 09:47 5
но хотелось бы чтобы сеть сохраняла минимальный функционал, если сервер перестанет работать
А вот это уже работа без мастера. На usart это практически нереально поднять, если правильно делать (нужна дополнительная аппаратная обвязка). Но, с другой стороны если сеть не очень нагружена, то правильно может быть и не надо.
0
omtomtubo
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 1,017
28.04.2016, 10:41 6
Цитата Сообщение от bystir
Спасибо за ссылки, буду изучать.
В связи с тем, что эта ветка про "Детские вопросы", хочу спросить: вы мне привели ссылки на протоколы, а протоколы работают поверх интерфейсов. Интерфейс - это же физический уровень? На борту той же AVR я знаю о USORT, I2C, SPI, но эти интерфейсы не работают на длинах линии 15-20 метров. Что вы можете посоветовать по поводу интерфейсов?
RS485
0
okotimiv
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,382
28.04.2016, 10:51 7
Во первых, не советую использовать проводную сеть для передачи данных. Даже на таких расстояниях на участке вы можете получить проблемы, например, в грозу. А связываться с гальваноразвязкой скорее всего слишком сложно и дорого.

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

Предлагаю взять esp8266, mqtt и поставить брокер на какой-то простой одноплатник. Это будет дешевле и проще всего. И даст возможность свободно развивать функциональность, установив впоследствии что-то вроде openHAB.
0
bystir
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 30
28.04.2016, 13:38 8
С беспроводной связью не хочу пока что связываться, т. к. тогда на каждое устройство сети нужен беспроводный модуль, да и возможности, которые предоставляет ESP8266 для меня избыточны. С физическим уровнем я похоже определился. Это будет, скорее всего, RS-485. Осталось выбрать протокол, который бы работал поверх его. Что-то похоже на CAN, но без ее сверхнадежности и скорости, что-нибудь не очень быстрое (10кбит/с думаю хватит) и простое, с арбитражем и защитой от коллизий. Что-бы любое устройство могло выступать в качестве приемо/передатчика.
0
vt340
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
28.04.2016, 14:01 9
Интерфейс - полудуплексная токовая петля, нынче это называется k-line )
Протокол - циркулярное сообщение, нынче это называется broadcast )
Разрешение коллизий - таймауты на передачу, разные у всех девайсов

0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
28.04.2016, 14:28 10
Цитата Сообщение от bystir
(10кбит/с думаю хватит) и простое, с арбитражем и защитой от коллизий. Что-бы любое устройство могло выступать в качестве приемо/передатчика.
Напишите, какая ситуация на садовом участке и какое устройство требует скорости больше 300-600 бод и пакетов больше 2-х байт?
0
oxytt
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
28.04.2016, 16:12 11
Для провода закопанного в землю грозовая защита не обязательна
Достаточно поставить tvs на линии на случай утечки от силовых проводов и УЗО на силовых проводах не помешает
0
bystir
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 30
28.04.2016, 16:15 12
Цитата Сообщение от инкер
Напишите, какая ситуация на садовом участке и какое устройство требует скорости больше 300-600 бод и пакетов больше 2-х байт?
Ну, про скорость канала я, конечно, загнул, хватит и той скорости, что вы написали (600бод). Однако, остальные требования остаются.

Что в планах на участке?
1. Сбор дождевой воды, хранение в большой емкости (1000л) под землей, перекачка части воды в меньшую бочку для нагрева.
2. Автоматизация капельного полива в теплице.
3. С помощью насосной станции создание давления для полива дождевой водой.
4. Автоматизация проветривания теплицы.
5. Вывод информации с датчиков на экран, web-интерфейс, смартфон.

Датчики:
- температуры (куда же без них): пара в теплице, пара в бочках
- давления воздуха (1 шт)
- относительной влажности воздуха (1шт)
- влажности почвы (в теплице для полива - 1шт)
- уровня воды (в двух бочках: одна для дождевой воды в земле закопана, вторая на уровне трех метров, для теплой воды);
пока все, что приходит на ум.
Исполнительные устройства:
- насосная станция
- клапаны (4 шт.)
- актуатор для двери в теплице (проветривание)

На данном этапе я только собираю информацию, в течении этого лета хочу начать собирать систему.
Да, провод большей частью будет лежать в земле.
0
oxytt
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
28.04.2016, 16:45 13
bystir RS485 подходит для вашей задачи оптимально, можно пустить компьютерную витую пару, ту, что предназначена для улицы, по одной паре питание 12-24в, по другой паре rs485
В кабеле с 4мя парами 2 пары останутся в резерве

Решаю сейчас похожую задачу. Рассматриваю два физических уровня для разнвх линий. Rs485 прикрученный к uart в режиме полудуплекса на max485 и однопроводной вариант мотажного И с кодированием манчестером

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

А вот с rs485 пока не могу понять как сделать p2p. Понимаю как сделать сеть с мастером, который будет или делать опросы по кругу или организует передачу эстафеты.

Кроме того в сети будут шлюзы из моей сети в ethernet. Т.е. Хочу програмный уровень отвязать от железного. В этом смысле связь устройств из сети в манчестере с устройством на rs485 будет делаться также как внуттри одной сети

Тоже думаю про топологию которая позволит устройствам работать без контроллера. Т.е. В сети может быть конфигуратор который будет скорее всего на mini pc. С его помощью можно управлять и настраивать. Но скажем настройка связи одного и другого устройств будут работать и при отключенном конфигураторе. Конфигуратор снова потребуется только чтобы изменить связь
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
28.04.2016, 17:07 14
Ваши 10 датчиков с двухбайтной посылкой и пвседослучайным выходом на передачу с периодом 5-15 сек займут канал на 3%, коллизии будут достаточно редкими, а включение поливалки на 10 сек позже не катастрофично.
В вашей задаче физический уровень канала может выглядеть как однопроводная линия, к которой через 100 Ом подключены параллельно все контроллеры датчиков и центральный, линия через килоом к +5 В. Это минималистичный дизайн на физическом уровне, программу приема-передачи нужно будет делать самому или искать подходящую.
0
oxytt
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
28.04.2016, 17:48 15
инкер 100ом зачем? С однопроводной линией можно скопировать проект ShodS его "умный двор"
Линия так же как вы предложили подтянута к плюсу, это тоже о чем я выше писал - монтажное ИЛИ (выше ошибочно назвал И)
Нужны два пина МК, один на вход, второй через open drain транзистор на выход для замыкания линии на GND
Замыканий на физическом уровне не будет, поэтому буферные 100ом лишние
Единственно у Сергея логика мастер-ведомый, но ее несложно переделать в p2p
0
u37
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,113
28.04.2016, 18:05 16
Однопроводная линия - это замечательно, но отсутствие гальваноразвяки ...
Господа, вы понимаете грань между разумным, плохим и откровенно вредным и опасным? Внутри платы можно делать как_угодно. При переходе из платы в плату требуется применять нормальные интерфейсы связи. Если надо связать разные _устройства_, то здесь уже речь идет о специализированных интерфейсах. Что до потенциально опасных (вне здания), то здесь уже даже "специализированные интерфейсы" (а-ля UART/485) применять нельзя.
Не от хорошей жизни придумывают всякие извраты, типа "токовая петля" с оптронной развязкой.
0
shibtym
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 268
28.04.2016, 18:22 17
При переходе из платы в плату требуется
о ужос, в караоке используют микрофон без гальваноразвязки!
0
u37
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,113
28.04.2016, 18:27 18
Ага, конеЧно.
0
shibtym
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 268
28.04.2016, 18:43 19
беспроводной пластик ? надо брать!
0
инкер
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
28.04.2016, 19:45 20
Цитата Сообщение от oxytt
инкер 100ом зачем? С однопроводной линией можно скопировать проект ShodS его "умный двор"
Я читал и хвалил его тут. 100 Ом- перестраховка от сошедшего с ума контроллера, который выдаст в линию активную единицу. У себя их ставлю с посторонней целью - на осциллографе, когда щуп на ноге контроллера, удобно различать свои и чужие посылки в линии, чужая имеет немного приподнятый над нулем уровень.
0
28.04.2016, 19:45
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2016, 19:45

Какой протокол вы считаете лучшим для системы "Умный дом"?
Назревает понемножку вопрос - а по какому протоколу должны общаться устройства УД,при наличии...

Какой сетевой протокол лучше всего использовать для общения 2 приложений
Какой сетевой протокол лучше всего использовать для общения 2 приложений, находящихся на 1...

Какой выбрать Doctype для сайта HTML? Как его выбрать? Русский сайт есть CSS нету JavaScript.
От чего он зависит?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.