Апаратна мережева інфраструктура для проектування домашньої автоматизації на базі full-arduino

Як вже згадувалося в інше питання , я витрачаю LOT часу на планування системи домашньої автоматизації для мого нового будинку (наразі ще на етапі «ще будується»).

Навіть якщо б це було розпочато лише як проект "управління світлом/перемикачем", все почало ставати все більшим і більшим, і в даний час, крім оригінальних вимог, я вже :

  1. A reed switch including cut-detection wires (fабо a total of 4 wires) installed on every single window (one switch fабо single-windows; two switches fабо dual-doабо windows);
  2. planned the location of a DHT22 sensабо in each room.

In addition to the above, I'm currently evaluating the oppабоtunity to add a single RGB led to have visual-feedback fабо each push-button (something like: GREEN=>LIGHT/OFF; RED=>LIGHT/ON). Mабоe specifically, I'm evaluating the oppабоtunity to replace common/simple pushbuttons with these:

enter image description here

Очевидно, що така зміна сильно вплине на кабелі сильно :

  • оригінальна проста/кнопка вимагає лише двох проводів для кожної кнопки, за допомогою одного проводу, що може бути доступним серед великих кнопок (я буду використовувати "внутрішні підказки", тому один провод буде GND )

  • Кнопки RGB вимагають наявності шести проводів (GND та SIGNAL для кнопки; R, G і B плюс COMMON для світлодіодних); тільки два кабелі можуть бути доступними серед суміжних кнопок (GND і COMMON) .

Додаючи до цього, буде легко встановити настінні шафи для розміщення двох, трьох або навіть чотирьох клавіш, і ви легко зрозумієте, що потрібні кабелі LOTS !

Нижче я додаю приблизну схему того, що планую будувати, з точки зору обладнання:

enter image description here

де ви можете побачити:

  • ROOM 1, with:

    • 2 x reed switch (up to 8 wires);
    • 1 x DHT22 (3 wires);
    • a wall box with two pushbuttons/wLED (up to 12 wires);
    • a wall box with one pushbutton/wLED (up to 6 wires)
  • ROOM 2, with:

    • 1 x reed switch (4 wires);
    • 1 x DHT22 (3 wires)
    • a wall box with two pushbuttons/wLED (up to 12 wires)

Також, що стосується "контролю" всієї системи:

  • два ПОТУЖНІСТЬ, розташовані зовні в кімнатах, де спочатку планував розмістити "контролер" (MEGA2560) разом з необхідними модулями ретрансляції та з'єднані через шину RS-485.

(BTW: насправді, у мене буде три ПОТУЖНІСТЬ, а не тільки ДВА, але це деталі, як і дух цього питання).

Зверніть увагу, що POWER-BOXES (PB1 і PB2) будуть розміщуватися (як і в оригінальному плані) з FAR з деяких кімнат: до 10/15 метрів у найгіршому випадку. Також зауважте, що кожен блок живлення значно перевищує 10/15 метрів від кожного іншого.

До справжнього питання, дозвольте мені додати ще одну пару важливих моментів:

  • Навіть важко, я знаю, що якийсь бездротовий системний і/або бездротовий сегмент може спростити загальну архітектуру, я твердо вірю, що "дротова" система є більш надійною, ніж "бездротова", особливо в довготривалій перспективі. Таким чином, як мені пощастило покласти лоти з "труб" (для правильного розподілу кабелів по всьому будинку), я насправді віддаю перевагу повністю дротовій системі;

  • >
  • Що стосується цього питання, я не зацікавлений сторінкою "програмного забезпечення" системи. Це дійсно аксесуар (знову ж таки, як і для цього самого питання). Мій true_big_problem стосується "апаратної" інфраструктури, яку слід встановити. Ось чому я розміщую це запитання тут.

Після всього цього, ось питання:

Що стосується вашого досвіду та знань:

  1. Чи повинен я дотримуватися початкового плану, маючи RS-485 багатодіапазонну шину, що з'єднує лише MEGA, при цьому кабелі "сигналу", що прямують від кімнатної апаратури (кнопки, тростини, DHT22 тощо) до PIN-кодів MEGA .. ..

або

  1. Я повинен додати інший Arduinos (Micro, здається дійсно хорошими кандидатами) в кожній кімнаті , припинити всі кабелі сигнал-кімнати, що надходять з приміщення, та розмовляти з MEGA через той самий Шина RS-485?

In the first case, I'll have a real simple RS-485 bus with a mess of cables; In the second case I'll have a _longer_and_mабоe_complex_ RS-485 bus, with a much manageable netwабоk cabling/infrastructure.

Я правий? Якими є ПРО та консалтинг із двох сценаріїв? Чи слід досліджувати інші підходи?

Чи є якась документація, яка допоможе мені вибрати правильне рішення?

Заздалегідь дякуємо всім тим, хто витратить (дорогоцінний) час, допомагаючи мені в цьому дуже важкому вирішенні!


До речі: якщо вам потрібна додаткова інформація, будь ласка, не соромтеся запитати.

1
Я б пішов на більше, і, отже, простіші вузли на одному автобусі. Я, ймовірно, додам ще один дріт для живлення теж. Через довгих проводів я б використовував трохи більше значення для напруги, і використовую регулятор на arduino, щоб отримати стабільний 5v.
додано Автор Al., джерело
@Damiano Verzulli Звичайно. Ви, напевно, навіть вписуєтесь у макетику напіврозміри. Ви можете додавати ще більше матеріалу шляхом накладання.
додано Автор Al., джерело
ІМХО, підключення кожної кнопки до центрального блоку (мега) - це справжня трата кабелів, шпильок та грошей. Не кажучи вже про те, що це рішення не є гнучким: якщо ви хочете щось додати в деякому місці, вам потрібно буде потягнути інший дріт. ІМХО - ідеальна настройка (але я просто новачок, тому я можу помилятися) має один мікроконтроллер у кожній коробці: ви можете скористатись arduino micro або простою attiny, якщо коробка дійсно мала. Потім всі ці UC з'єднані через fieldbus (може бути той самий RS485, який проходить через весь будинок, може бути "ширина кімнати" rs485, CAN, I2C, Serial, мережа ланцюгових мереж ...).
додано Автор Tom Collins, джерело
Таким чином, ви можете послідовно спілкуватися з кожною коробкою, кожен блок може спілкуватися з основною мега, і найважливіше, вам просто потрібно пройти кілька кабелів, тому розширення мережі дуже легко. Особисто я б використовувати RS485, так як це легше для використання, ніж CAN, але це досить сильно (насправді, ви можете використовувати серійний протокол через приймачі RS485). Я б уникнути глобального з'єднання через мережу Ethernet як з точки зору безпеки, так і з точки зору продуктивності (безпека тому, що хтось, хто підключиться до вашої мережі, також зможе бачити кожне повідомлення, продуктивність, тому що ви не можете підключити attiny до мережі Ethernet без зусиль)
додано Автор Tom Collins, джерело
@DamianoVerzulli добре, у будь-якому випадку у вас будуть незашифровані повідомлення, що йдуть назад і вперед вашої мережі, але, так, це лише незначна проблема. Найважливіша частина полягає в тому, що для кожного вузла вам знадобиться мережевий щит або приймально-передавач (наприклад, ENC29J60), і їм потрібно буде обробляти важку обробку лише для зв'язку, тоді як за допомогою простішої польової шини (наприклад, rs485) вам все одно буде потрібно трансивер ( що дешевше і менше), але для комунікації вам знадобиться дуже мало обчислень (зазвичай, це серійний, так що периферійна буде працювати з нею самостійно)
додано Автор Tom Collins, джерело
@ frarugi87: дякую за коментар Що стосується "ефірної безпеки", це не повинно бути великою проблемою, оскільки в такому сценарії я буду напевно покладатися на виділений VLAN . У будь-якому випадку, ідея мати повністю розподілену мережу з Arduinos в кожен поле, звучить цікаво. Я повинен перевірити, скільки вузлів можна обробляти за рамки, які я планую використовувати.
додано Автор The G of GIS, джерело
@abrozell: спасибі за коментар Я провів деякий час, перш ніж почав, досліджувати участь Ethernet. Оскільки мережа спочатку виглядала так само, як автобус, і вважаючи, що RS485 був і дешевшим і надійнішим (не потребуючи зовнішнього комутатора), я в даний час орієнтований на RS485. Очевидно, що у мене буде Ethernet, навколо будинку, але він буде використовуватися до основного "шлюзу" (один, або, можливо, два з MEGAs), так що всю інфраструктуру легко доступною для Малина/OrangePI, діючи має веб-сервер/збирач даних та інше. У будь-якому разі, я переоцінюю параметр Ethernet. Дякую.
додано Автор The G of GIS, джерело
@Gerben: Ви думаєте, що я зможу вмістити все (1 х Nano 3.0; 1 х MAX485; до 3 кнопок; кабель) всередині цей wallbox? Чи слід почати планування розробки/придбання спеціальної друкованої плати для зменшення/оптимізації простору? (BTW: дякую за ваш час)
додано Автор The G of GIS, джерело
Я розмістив Ethernet щити та Arduinos в кожній кімнаті. Потім, коли вам потрібен більш потужний Arduino (або навіть Малина Пі), ви просто підключаєте його до існуючої мережі. Це легше підтримувати і розширюватися, коли проходить кілька років. І, звичайно, цілком ймовірно, що ви вже проводите номери з мережевими дротами.
додано Автор Nayt Grochowski, джерело

2 Відповіді

  1. короткі дроти, як правило, кращі, ніж довгі
  2. Я згоден з тим, що підключення краще у вашій ситуації
  3. Можливо, ви відрізняєте дві різні області: датчик/актор до контролера та контролер для зв'язку з контролером
  4. У багатьох випадках ви не можете вибрати датчик/актер зв'язку з контролером, оскільки він надається пристроєм (DHT-22, тростина, кнопка керування тощо). Тому слід тримати ці рядки коротким
  5. RS-485 хороший, але це необхідно? Додано драйвери для кожного пристрою. Може, I2C міг це зробити, щоб. Ви все ще можете використовувати кабелі вита пара.
2
додано
Дякую за коментар Сама перша проблема, з якою зіткнулася, полягала у вирішенні "як" та "з яким протоколом" з'єднуються мої Arduinos. Оскільки: 1) відстань між ними було досить великим (20 метрів і більше); 2) я повинен якнайкраще обробляти "шум", під час передачі; 3) пропускна здатність, необхідна для всієї системи, є відносно низькою; Я опинився на RS-485 в конфігурації multidrop (як описано тут . Ви змогли протестувати I2C при аналогічних умовах?
додано Автор The G of GIS, джерело
Що стосується RS-485, Ніка Гаммона у його
додано Автор The G of GIS, джерело
додано Автор The G of GIS, джерело
Що стосується двох різних мереж: " sensor/actor <=> controller " і " controller <=> controller " це абсолютно розумно, і я насправді досліджую це так як у мене є 3 серіали на кожній MEGA, тож я безумовно маю "вторинну мережеву гілку" від кожної MEGA до "локальних" скриньок. Крім того, програмне забезпечення, яке я в даний час оцінюю/відчуваю, souliss , повинен добре грати з такою архітектурою .
додано Автор The G of GIS, джерело

Ось мої додаткові думки коротко:

  1. 20 метрів, порівняно з відстані до Місяця, досить короткий ;-). Максимальна довжина RS-485, як повідомляється, становить кілометри з малими швидкістю передачі (довжина кабелю google: rs485).

  2. Шум може бути уникнути (апаратне забезпечення) або виправлено програмним забезпеченням (відмовостійкі коди, контрольні суми тощо). Загалом, програмне забезпечення дешевше.

  3. Короткі дроти не означають жодних проводів взагалі. Короткі дроти будуть, наприклад, результат, якщо у вас є контролер по кімнаті і підключіть до неї датчики.

  4. Є також невеликі пакети сумісних мікросхем Arduino (ATTiny84/85). І без RS485 ви заощаджуєте простір контролерів ...

  5. Довжина шини I2C повинна працювати всередині будинку, якщо вона не більша, ніж у Білла Гейтса ... http://www.esacademy.com/ru/library/technical-articles-and-documents/miscellaneous/i2c-bus/frequently-asked-questions/i2c-faq.html

  6. Я не буду використовувати серійний для спілкування. Це не розширюване. Послідовний режим добре для налагодження.

0
додано