Нужно подключить к Arduino датчики на определенном расстоянии, какой кабель использовать и какова максимальная длина?

Собираю систему умного дома. В качестве контроолеров - ESP8266/Arduino. Есть необходимость некоторые датчики разнести от контроллера.
Например:
Реле (шина обычная, управление пином 3,3В/5В требуемая длина выноса -2-10м)
Модуль диммирования света (шина обычная, управление пином 3,3В/5В требуемая длина выноса
- 2-10м )
Датчик температуры (шина I2C требуемая длина выноса - 2-5 м).
Какие максимальные длины используемых кабелей и какой конкретно кабель лучше использовать.
Пробовал i2c термодатчик BME280 посадить на обычный телефонный 4-х жильный кабель - в тестах полет нормальный на 10 метрах. Но как оно себя поведет в боевых условиях ...
С остальными реле/pwm буду стараться силовые кабеля вести максимально близко к контроллеру, но все же придется немного их выносить .
  • Вопрос задан
  • 7941 просмотр
Пригласить эксперта
Ответы на вопрос 5
Stalker_RED
@Stalker_RED
i2c разрабатывался как шина для использования внутри устройства.
Ограничения по длине в спецификации не прописаны, но есть ограничение по паразитной емкости. При 170pF падает скорость, при 400pF - все.
На практике, некоторые модули могут работать и с большей емкостью, но это лотерея и эксперименты.

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

1-Wire поддерживает гораздо больше длину, 500 метров - не предел.
https://www.maximintegrated.com/en/app-notes/index...

Или старый добрый RS485
Ответ написан
lisenok425
@lisenok425
Начинающий Ардуинщик.
У меня куча датчиков разведено сигнальным проводом расстояние от 5м до 15, 4 месяца полет нормальный, был глюк только с DTH терялся периодически но мне кажется это из-за того что их было два сейчас один стоит все работает..
Ответ написан
Комментировать
Papayaved
@Papayaved
FPGA, MCU
Для шины I2C есть микросхемы шинных драйверов и гальванической развязки
Например
www.ti.com/lit/ds/symlink/p82b715.pdf - на расстояние больше 50 м

или быстрый дифферинциальный драйвер
https://www.nxp.com/docs/en/data-sheet/PCA9615.pdf - частота и данные идут отдельными витыми парами

Вот обзор всех методов организации сети I2C на большие расстояния
https://www.nxp.com/docs/en/application-note/AN103...

Надежнее всего оптическая развязка, развязанные земли и сигнал дифферинциальный (светодиод загорается от тока)
Ответ написан
Fox_Alex
@Fox_Alex
Инженер электронщик
Если делать все "по-взрослому", то надо к каждому устройству (или группе, если они рядом) приставлять свой мелкий контроллер и собирать все это на шину типа RS-485 или CAN.
А так витая пара в помощь, по ней можно и питание и сигналы передавать. Про I2C есть большие сомнения, а вот управление реле и прочие медленные сигналы вполне пройдут.
Ответ написан
@Ajex Автор вопроса
Пока рабочее решение тянуть везде экранированную витую 8 жил пару cat 5e.
ДляI2C датчиков буду стараться не допускать длины больше пары метров . Будут выделываться, заменю их на 1-Wire или сразу добавлю на каждый хвост по одному такому термодатчику . Точнее показания будут. Еще 4 контакта останется на какой-то пожарный датчик дыма/пламени, детектор движения.
На каждую розетку от узлового контроллера буду тянуть ту же витуху. В коробках выключателей будут реле для включения/отключения света и датчик движения. Питание к датчикам (реле/PIR) по тому же кабелю. Не хватит хвостов, заменю реле на 1wir-овские. Просто пока у себя в продаже адекватных не нашел.
Топологию сделал такую, что у меня будет 3 центра управления (ESPшки по Wifi) в узловых комнатах, но с протянутой к каждому модулю той же резервной витухой . Т.е. в случае, если я захочу избавиться от Wifi, просто подключу каждый узел через Ethernet. Это имхо, лучше , чем долбаться с полудуплексным RS485 , который еще готовить грамотно нужно уметь. Как вариант, вместо Ethernet-а пущу одну пару от узла в центр по дуплексному RS-232, и еще останется 3 пары для разных забав.
Т.е. у меня получится иерархическая структура. С несколькими центрами, от которых уже будет разводка на реле и датчики.
Плюс в разрыв каждой линии света вставляю модуль диммирования и той же витухой завожу управление на отдельный контроллер, который будет стоять в щитке.
Таким образом получится управление отоплением (на нормально открытых электроклапанах и датчиках температуры в каждой комнате) , управление светом (автовключение в зависимости от освещенности на улице, автовыключение, и , возможно, включение голосом) . Ну и управление диммированием потолочных светильников. Как бонус пожарные датчики и детекторы движения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы