Система розумний будинок на arduino. Розумний будинок на базі системи Ардуїно – чи важко зробити своїми руками

Всім привіт! З вами знову Артем Лужецький та черговий матеріал у напрямку. Щоб зв'язати наші проекти з інтернетом можна використовувати десятки способів, але ми поки що зупинимося на модулі, про який я ще говорив ще в першій статті, ESP 8266. не може працювати з інтернетом. Звичайна плата без додатків та модулів не може передавати інформацію на відстані.

Але за допомогою UART інтерфейсу на Arduino ми можемо отримувати інформацію, обробляти її та надсилати дані назад. За допомогою нього, UNO може працювати з Bluetooth та Wi-fi модулями, які вже дають нашій системі додаткові функції.

Вихід в інтернет

Давайте поговоримо про інтернет детальніше. Я думаю, ви знаєте, що інтернет – це не магія і не просто радіохвилі, а гігантська мережа між тисячами різних пристроїв за допомогою бездротового зв'язку.

Сайти, з якими ми щодня стикаємося, - це інформація, передана нам з сервера. Весь той текст, картинки, анімація - все це зберігається на сервері, поки клієнт, ми не захоче, щоб йому передали цю інформацію.

Ви можете дізнатися, що таке IP, TCP, HTTP, GET – запит в інтернеті, якщо вам надалі буде не зрозуміло.

Але це все не працюватиме без зв'язку нашої плати з сайтами та додатками. Є два рішення, підключиться до іншого сайту (серверу), який оброблятиме інформацію отриману або від самої плати, або від користувача, щоб керувати приладами на відстані або створити свій сервер, де лежатиме особисто наш написаний сайт. Ми все це спробуємо зробити у майбутньому.

Передача даних від Ардуїно

Спочатку ми змусимо нашу Ардуїну передавати дані на окремий сайт, який буде зображати дані, отримані з датчиків Ардуїно. Для цього чудово підійде сайт для інтернет речей – dweet.io

Спробуємо передавати дані зміни температури нашої кімнати.

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

на головній сторінціможна подивитися можливі варіантироботи даного сайту

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

Схема підключення

Розберемо електричну схемупідключення esp 8266. Нам потрібно тільки піни Rx, Tx, Gnd та Vcc. Цей модуль живиться від 3,3 вольт.

І загальну електричну схему, в якій нам знадобиться ардуїно, esp та термістор.

Код проекту

Отже, приступимо нарешті до проекту. Основна частина нашого проекту буде у коді. Для бібліотеки з використання нашого модуля передбачено кілька нових функцій (посилання на бібліотеку можна знайти в першій статті):

  1. ESP8266 wifi(Serial) - Підключаємо esp8266 через Serial з'єднання.
  2. wifi.joinAP(a,b); - Підключення до wifi, де а – це назва точки доступу, а b – пароль до цієї точки доступу.
  3. wifi.createTCP(a,b) - Відкриття TCP з'єднання, де "a" - DNC сайту (www.dweet.io), а "b" - мережевий порт (порт 80).
  4. wifi.send(a,b) - відправляємо дані, де "a" - дані в масиві (рядок з-стилю), а "b" - загальна кількістьнадісланих байтів.
  5. wifi.releaseTCP() - Закриття TCP з'єднання.
#include "ESP8266.h" // для роботи з esp8266 #include // щоб додати більше пінів UART #include // щоб вирахувати логарифм #define SSID "Arduino" // ім'я вашого wi-fi #define PASSWORD "12345678" //пароль вашого wi-fi #define Thermistor_PIN A0 // пін підключення термістора SoftwareSerial mySerial(2, 3); // піни підключення UART ESP8266 wifi (mySerial); // кажемо esp8266, що вона працюватиме через піни UART String name = "MyEyse"; // ваш ключ від сайту dweet.io void setup() ( Serial.begin(9600); // відкриваємо serial з'єднання if (wifi.joinAP(SSID, PASSWORD))) ( // якщо ми підключилися до нашої мережі Serial.println( "https://dweet.io/follow/" + name); // пишемо в моніторі порту адресу сайту) else (Serial.println("Wi-Fi connection error"); // у випадку, якщо ми не підключимося до мережі, нам видадуть помилку ) ) void loop() ( float volt_temp = 1023.0 / analogRead(Thermistor_PIN) - 1.0; (wifi.createTCP("www.dweet.io", 80)) ( // якщо нам вдалося створити TCP з'єднання String data = "GET /dweet/for/" + name + "?"; // створюємо змінну data у вигляді рядка (заповнюємо GET-запит) data += "temperatur_C=" + String(temperatur) + "HTTP/1.1\r\n"; data += "Host: dweet.io\r\n\r"; // закриваємо GET-запит у рядку wifi.send(data.c_str(), data.length()); // відправляємо дані в масиві (рядок з-стилю) та загальна кількість байтів wifi.releaseTCP(); // закриваємо TCP з'єднання ) else ( Serial.println("create TCP error"); // у разі, якщо ми не створили TCP з'єднання, нам видадуть помилку ) delay(1000); // чекаємо на секунду (dweet.io обробляє дані 1 секунду, немає сенсу відправляти дані раніше) )

Підсумковий результат

Якщо код ви записали правильно, з правильним паролем та ім'ям від вашого wifi, який справно працює, то монітор порту буде відправлено посилання, яке необхідно вставити в адресний рядок браузера. Зображення має виглядати так

А тепер ви можете підключити ардуїно до джерела живлення та прибрати провід підключення ардуїно – комп'ютер. І дізнаватись температуру у вашому будинку, перебуваючи на іншому кінці міста. Все залежить лише від вашої фантазії.

Наступного разу спробуємо розібрати ще один проект, який допоможе розкрити всі можливості інтернет модуля. Надалі спробуємо створити свій сервер та сайт, а також поговоримо про з'єднання із соцмережами. Збільшити можливості зробити ваш будинок розумним. Успіхів!

Життя без інтернету, побутової техніки, смартфонів уявити складно. Багато багатих людей до цього списку додали б ще й систему «Розумний дім». У статті розберемо, що це як її встановити і як користуватися.

Що це за система?

Як уже стало зрозуміло, систему «Розумний дім» придбати зможе не кожен. Але якщо мати необхідні навички, можна створити її самостійно через спеціальний додаток. Відповідно, далі поговоримо про систему «Розумний дім» і спробуємо створити її для свого житлового приміщення.

Що за фактом є дана система? Це набір датчиків та контролерів. Вони існують різних видівтому можуть реагувати як на рухи, так і на теплову енергію. Такі пристрої здатні контролювати роботу вдома: комунікації, систему безпеки тощо. Існують і «розумніші» споруди, які можуть самостійно включати опалення, запускати різні процеси тощо. Кожна людина хоче прийти додому, де на неї чекатиме гаряча ванна, розігріта вечеря. «Розумний» будинок – саме найкраще рішеннядля тих, хто мешкає один. Якщо немає коштів на таку систему, її можна зробити самостійно.

Як працюють датчики?

Датчики здатні зчитувати інформацію та дані, потім їх обробляти та передавати відповідну команду. Вони здатні реагувати на температуру, різкі рухи та звук.

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

Перед тим як почати працювати з системою у власному будинку, потрібно створити проект, який дозволить правильно розподілити датчики та всі можливі контролери. Важливо відзначити, що для цього потрібно мати навички в галузі програмування та електроніки. Якщо такі відсутні, слід віддавати перевагу пристрої простого плану, тобто створені для споживача-новачка. Саме такими є системи Ардуїно. Виробник постачає абсолютно прості в установці та експлуатації пристосування.

Чому «Ардуїно»?

Це питання цілком логічне і зрозуміле. Вище вже писалося про те, що компанія випускає прості для розуміння системи, але це не єдина причина, через яку слід вибрати Arduino. Набори для «Розумного дому» придбати можна в магазині або замовити на сайті. Установку провести дозволяється самостійно, але ніхто не відмовить у наданні кваліфікованого майстра. Він виконає всі роботи без помилок і не нехтуватиме гарним оформленням(Наприклад, сховає дроти, а не «вивалить» їх на загальний розгляд). Але більша частинаклієнтів все ж таки вирішує проводити всі роботи самостійно. Чому? Це набагато простіше та дешевше. Всі фірми, які випускають подібні проекти, чудово накручують ціну і на словах завищують якість багатьох моделей. Компанія, що описується, таким не займається. Відгуки в Інтернеті це підтверджують на 100%.

Вартість за комплектуючі та встановлення системи Arduino (проекти «Розумного дому» дуже популярні) набагато дешевше, ніж у інших виробників. Навіть сама компанія пропонує всю установку проводити самостійно, тому що у разі поломки власник повинен розбиратися у схемах та проекті в цілому. Також, знаючи доскональну систему, можна з легкістю і легко підлаштувати її під себе.

На платформі Arduino є купа бібліотек з тому знайти собі підходящу програму не важко.

Набори

У продажу є набори «Розумний дім». У них покупець може знайти всі необхідні складові для створення автоматизованих системв власному будинку: материнську та макетну плати, електронні деталі та правила використання. Цей набір навчить людину правильно підключати діоди, включати пристрої з бавовни та керувати девайсами дистанційно.

"Дерзай" створений для дітей віком від 14 років. У комплекті постачається інструкція. За допомогою набору можна створити п'ять готових проектів: секундомір, нічник і так далі.

Arduino Starter Kit - базовий набір, з якого всі власники радять розпочати ознайомлення У ньому поставляється плата Arduino UNO, датчики, екран, резистори та інше. Коштує близько 80 євро.

«Матрьошка» призначена для дітей віком від 10 років. Вона продається у кількох версіях, які між собою відрізняються кількістю та типом деталей, відповідно, за допомогою кожного з них можна здійснити зовсім відмінні один від одного експерименти. Постачається плата Arduino UNO Rev3, зроблена в Італії. За допомогою цього набору можна зробити нічний світильник, міксер, тестер для батарей і таке інше.

«Амперка», як правило, купується для навчальних закладів. Вона виробляється для дітей віком від 12 років. Після закінчення занять діти зможуть створити робота, який рухається прямою лінією. Контролер поставляється моделі Arduino Uno.

Набори "Дерзай" ("Розумний дім") на Arduino на даний момент найбільш популярні.

Платформи

Стандартна платформа – Arduino Uno. "Розумний дім" часто працює на її базі. Вона найпоширеніша, оскільки коштує недорого. Використовуючи її, можна легко управляти мікроконтролерною технікою. Якщо людина не знайома з платами від Arduino, то всі власники радять їй почати знайомство саме з цією.

Arduino Leonardo коштує трохи дешевше за вищеописаний варіант. Справа в тому, що, на відміну від Uno, його можна використовувати як USB-пристрій. Наприклад, завдяки цій платі можна керувати мишею та клавіатурою.

Чому найчастіше створюється «Розумний дім» на Arduino Mega2560? Вона лише трохи зовні відрізняється від Uno, але має більший функціонал. Використовують її найчастіше для роботи одночасно з великою кількістюпристроїв. Відповідно з нею набагато простіше працювати, коли йдетьсяпро масштабні проекти. Загалом якщо планується створення «Розумного дому» , Arduino Mega - найбільш вдалий варіант.

Переваги системи

Компанія «Ардуїно» користується великим попитому людей, які погано розуміються на програмуванні. Усі системи мають зрозумілий інтерфейс. Однак цим переваги не обмежуються.

Виробник передбачив можливість створювати власні програми – вихідний код відкритий. Мова, що використовується, максимально проста в освоєнні. Якщо є потреба, можна переносити програми за допомогою кабелю USB. Набори «Розумного дому» досить цікаві.

Тобто при знанні мови програмування можна придбати лише один варіант програмного забезпечення та підлаштувати його максимально під себе.

Якщо необхідні додаткові утиліти, їх можна скачати безкоштовно з офіційного сайту. Систему дозволяється керувати з комп'ютера та телефону за допомогою програми.

Принципи роботи

Датчики надсилають інформацію на комп'ютер або телефон за допомогою технології бездротової передачі даних. Спеціальна утиліта обробляє дані – виконується команда. Є головний датчик (центральний), який можна або придбати, або зробити самостійно. на платах Arduino(проекти «Розумного будинку розроблені на них») є стандартні роз'єми. Завдяки цьому можна легко підібрати всі комплектуючі.

Що потрібно для збирання?

Якщо з'явилося бажання зібрати проект самостійно, необхідно зібрати деякі пристрої і взяти прилади. Які?

  • Датчики та контролери.
  • Інтернет-модуль.
  • Виту пару (кабель).
  • Перемикач.
  • Резистор.
  • Провід для інтернет-модуля.
  • Реле.

З приладдя знадобляться паяльник, викрутки і таке інше.

Набори від компанії Arduino потрібно купувати у перевірених магазинах. Чому? Всі необхідні прилади потрібні для роботи з електрикою, тому підробки використовувати небезпечно. Усі необхідні утиліти можна завантажити з Інтернету. Тому досить просто створити "Розумний дім" своїми руками на базі Arduino.

Датчики потрібно вибирати, відштовхуючись від своїх переваг: включення чи відключення світла, контроль температури тощо.

Процес встановлення

Звернути увагу потрібно на те, що «Розумний будинок» повинен мати лише лампи світлодіодного типу. Звичайні варіанти не зможуть витримати напруги - або луснуть, або просто перегорять.

Після того, як проект "Розумний дім" на Arduino вже буде готовий, потрібно почати підключати контролери та датчики. Роблять це, не відхиляючись від креслення та схеми, які були створені раніше. Контакти мають бути ізольованими.

Усі роботи можна поетапно у вигляді алгоритму:

  1. Встановлення коду.
  2. Налаштування програми під комп'ютер або телефон.
  3. Переадресація портів.
  4. Тестування датчиків та забезпечення.
  5. Виправлення неполадок, якщо такі виявлені під час перевірки.

Завантажити програмне забезпеченнянайкраще з перевіреного джерела архівом. Після того, як останній буде відкритий і всі утиліти встановлені, слід перезапустити програму або перезавантажити пристрій.

Програмне забезпечення «Розумного дому» на Arduino відображатиме стан датчиків та інформацію з них. Якщо є потреба, завжди можна змінити мережеву адресу, вимкнути сигналізацію.

Робота з роутером

На роутері слід відкрити порт. Що потрібно зробити, щоб виконати цю дію? Відкрити меню конфігурацій, написати мережеву адресу Arduino та активувати порт.

Відразу після цього можна встановити ім'я домену. Тепер нічого не заважає власнику розпочати тестування системи, яка була створена власними руками.

Дистанційне керування

Завдяки серверу компанії можна пов'язати всю техніку між собою. Дозволяється використовувати хмарні сервіси, що дозволяє візуалізувати процеси. Завдяки Інтернету можна повністю керувати своїм будинком. Увімкнути/вимкнути бойлер або опалення можна, перебуваючи на іншому кінці міста.

Є ще один спосіб, який допоможе керувати будинком – СМС-повідомлення. Не завжди буває так, що є інтернет-з'єднання, тому такий спосіб є досить актуальним.

Підсумки

Потрібно звернути увагу на те, що «Розумний будинок» на базі Arduino не може працювати з відкритою мережевою адресою, оскільки інакше його легко зламатиме. Усі будівлі, які працюють на «розумній» системі, можуть допомагати економити електроенергію кожній людині, а також правильно використовувати усі ресурси. Головне, правильно підібрати всі компоненти без будь-яких підробок.

Також важливим є те, що «Ардуїно» має безліч бібліотек, які включають тисячі програмних кодів. Саме тому створити систему «Розумний дім» на Arduino, користуючись лише Інтернетом, буде більш ніж легко.

Якщо коротко описати принцип дії Ардуїно, все дуже просто. Наприклад, при реалізації проекту «Розумний дім» цей пристрій працює наступним чином. По всьому будинку в певних місцях розставлені датчики, які реагують на зовнішню обстановку, та передають інформацію на процесор, який приймає рішення.

Мікропроцесор може бути з'єднаний з комп'ютером, планшетом, ноутбуком або смартфоном. Програми для Ардуін можна легко завантажити в інтернеті. Всі комплектуючі, роз'єми виробники виконують стандартними для будь-яких підключень. Розглянемо докладніше, як можна продати «Розумний дім».

Проектування «Розумного дому»

Техніка з кожним роком дедалі глибше проникає у наше життя. Без електроніки вже неможливо уявити повсякденне життя, оскільки техніка робить його набагато цікавішим та простішим.

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

На практиці не все так красиво та чарівно, як у фантастичних фільмах, де роботи готують ранкові сніданки, стирають білизну та роблять у будинку прибирання. Реальні комп'ютери ще далекі від подібного рівнярозвитку.

Датчики «розумного будинку» лише можуть виконувати такі функції:

  • Автоматичне керування побутовими пристроями. Система сама підключає та відключає чайник, телевізор, мікрохвильову піч та інші пристрої.
  • Забезпечувати пожежну безпеку. Система подає сигнал господареві про виникнення загоряння, наявність диму у приміщенні. У більш складних системахвключається не лише сигналізація, але й автоматично викликається пожежна охороната інші необхідні служби.
  • Контроль погоди. Система контролює та подає сигнал про зміни погодних умовна вулиці. Це допомагає людині правильно планувати свій день.
  • Контроль кліматичних умову приміщенні. Пристрій працює спільно з приладами опалення, вентиляції та іншими кліматичними пристроями. Її принцип дії полягає в автоматичному збільшенні або зменшенні температури, вологості тощо, залежно від налаштування програми.
  • Контролює проникнення на територію житлового приміщення. Система взаємопов'язана з датчиками руху, і здатна автоматично замикати замки дверей, визначати точну кількість людей, що знаходяться в приміщенні.
  • Контроль споживання електричної енергії шляхом автоматичного підключеннята вимкнення приладів освітлення. У більш складних варіантахсистем, здійснюється відключення освітлення як з пульта управління, так і автоматичне повне відключення світла за відсутності господаря будинку.

Кваліфікованих фахівців, які займаються облаштуванням таких розумних будинків, не так уже й багато. Їхні послуги коштують чималих грошей. Однак цю роботу можна виконати самостійно. Вся система складається з датчиків та контролерів. Наприклад, для контролю температури в кімнаті встановлено датчик, який реагує на зниження температури нижче запрограмованого рівня. У цьому випадку мікропроцесор автоматично вмикає нагрівальні пристрої. Аналогічні датчики мають у своєму розпорядженні по всьому будинку, які виконують різні функції.

Система контролю досить надійна, і рідко виходить із ладу. У неї закладено відкритий програмний код, є можливість з'єднання з комп'ютером. У заводських налаштуваннях у мікропроцесор закладено кілька стандартних програм. Однак, код цих програм можна легко змінювати, і навіть замінювати на свої власні проекти.

Робота системи Ардуїно

Датчики передають інформацію на комп'ютер бездротового зв'язку. Ці дані обробляються за допомогою спеціальної програми. Далі подається команда на виконання певних дій. Центральну плату можна придбати чи зібрати самостійно. Всі рознімання на платі є стандартизованими, що полегшує складання системи.

Необхідні комплектуючі

Для самостійного складання будуть потрібні наступні та комплектуючі:

  • Викрутки.
  • Пасатижі.
  • Резистори.
  • Реле.
  • Датчики.
  • Модуль зв'язку.
  • Ардуїно UNO.

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

Датчики необхідно придбати такі, які відповідатимуть контрольованим параметрам.

Особливості встановлення ардуїно

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

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

  • Інсталяція програмного коду.
  • Налаштування програми для планшета або комп'ютера.
  • Налаштування портів на модулі зв'язку.
  • Перевірка працездатності.
  • Коригування коду програми (за потреби).

Для гаджета, що використовується в інтернеті, завантажують спеціальну програму, яку потім встановлюють. Завантажувати рекомендується з офіційних джерел, щоб уникнути збоїв у роботі програми. Після інсталяції програми комп'ютер або планшет перезавантажують.

Програма повинна показувати інформацію з датчиків, розташованих у різних приміщеннях. У разі потреби налаштування програми можна змінювати.

Налаштування роутера

На модулі зв'язку (роутері) потрібно відкрити порт. Це робиться так:

  • Відкрити властивості роутера.
  • Вказати IP-адресу пристрою.
  • відкрити 80 порт.
  • На нову адресу привласнити доменне ім'я.
  • Здійснити тестування роботи всієї системи.

Для таких проектів недоцільно застосовувати відкритий тип IP-адреси, оскільки таку систему можуть зламати хакери через інтернет, і порушити функціонування системи.

Такі системи «розумних будинків» здатні значно економити електричну енергію. Основним етапом є правильний вибірсертифікованих комплектуючих, інакше немає гарантії якісної роботисистеми. Для ардуїно існує безліч готових програмних кодів. Це дозволяє легко самостійно зібрати таку систему.

Те, що вийшло в результаті, можна назвати, мабуть, найдешевшим рішенням для створення Розумного дому, яке вміє:

  • Керувати освітленням та силовими пристроями (Реле, димери DMX-512 та Modbus RTU)
  • Керувати теплими підлогами(як термодатчики використовуються півтора десятка дешевих DS18B20, розлучених по квартирі)
  • Керувати засувками вентиляції/кондиціонера
  • Керувати саморобною системоюприпливної вентиляції.
  • Багато чого такого, про що я спочатку не замислювався, просто через те, що контролер вийшов абсолютно відкритим, що гнучко конфігурується, і прекрасно доповнює Openhab+Mosquitto+NodeRed.
На вхід контролера підключаються звичайні вимикачі, кнопки, контактні датчики, датчики протікання та ін. які можуть керувати як локальними навантаженнями так і пристроями, підключеними до інших таких же контролерів або до всього, що розуміє протокол MQTT. У мене, наприклад, підключено геркон, встановлений у коробці вхідних дверей. Коли закриваю замок на три обороти – вимикаються світло, тепла підлога, бойлери, AV ресивер. Коли повертаюся – стан цих приладів відновлюється як було до відходу.

Serial CLI під час створення нового контролера треба прописати в NVRAM унікальну MAC адресу. Саме MAC є ключем, яким спочатку завантажується конфігурація з http сервера.

Як керуючий ПЗ я взяв Openhab 2, що має весь потрібний мені функціонал, плюс, мобільний додаток, плюс «Хмара» - роль якого, щоправда, тільки в тому, щоб надавати доступ до домашньої інфраструктури ззовні, не прокидаючи портів на роутері і не володіючи фіксованим IP. Також Openhab має інтеграцію з HomeKit від Apple, що дозволяє керувати пристроями будинку з iPhone, взагалі без встановлення аплікації. (Можливість цікава, але користуюся, переважно, «рідним» додатком).

Трохи скріншотів Openhab



Наявність у проекті квартири великої кількості світлодіодного освітлення, також, вимагало якогось розумного управління.

Подробиці по LED освітленню

Рішення, виявлені на ринку, були або закритими «мовами в собі», або коштували неадекватних грошей, підтримуючи при цьому кілька каналів. Часто, виробники обмежувалися трьома каналами (RGB), хоча варіант RGBW дозволяє використовувати світлодіонні стрічки як основне освітлення, а не просто для кольорового підсвічування.

Подумавши, я замовив на АliExpress пару плат, кожна з яких може керувати 30 каналами LED з номінальним струмомдо 2А на канал.

Для того, щоб збільшити максимальну потужністьодного каналу, я перейшов зі світлодіодних стрічок на 12В на 24В стрічки. При цьому повноцінно висвітлити кімнату близько 16-18 кв. м виявилося можливим за допомогою 4-х ключів. Великі за площею приміщення довелося зонувати - у вітальні підключив незалежно 4 стрічки по 5 м, задіявши при цьому 16 каналів.

Для синхронного керування всією кімнатою довелося придумати тип каналу «група»

Ось як виглядає опис вітальні в конфізі JSON:

"kuh":], "kuhwin":, "kuhline":, "kuhfre":, "kuhwork":,
Перший елемент масиву – тип каналу, другий – параметр каналу, який може бути масивом.

Для елемента типу 7 (група) - аргументом є масив елементів, що входять до групи.
Рекурсія, звісно ж, підтримується.

Для елемента типу 1 (стрічка RGBW) – аргумент – базова DMX адреса каналу.

Зі стандартною бібліотекою EasyDMX плати не запрацювали відразу. Як виявилося, китайський LED контролер не перетравлював 2ms затримку між кадрами DMX (interframe delay). Нескладна модифікація коду бібліотеки (скорочення циклу вдвічі) допомогла.

Деталі кондиціювання

На жаль, не вдалося знайти приводів повітряних заслінокз ШІМ або якимось цифровим входом, тому на тому ж AliExpress були придбані 4 перетворювачі ШІМ стандартний аналоговий сигнал 0..10В.

На жаль, на Aliexpress цих пристроїв вже не бачу, але на e-bay будь ласка

Перетворювачі чудово заробили відразу, довелося лише перепрограмувати таймер ШІМ виходів для того, щоб задати відповідну частоту.

Нижче приклад перепрограмування таймерів 3 і 4 (відповідають за pin 2, 3, 5, 6, 7, 8 Arduino Mega на частоту 4000Гц).

PinMode(iaddr,OUTPUT); //timer 0 for pin 13 and 4 //timer 1 for pin 12 and 11 //timer 2 for pin 10 and 9 //timer 3 for pin 5 and 3 and 2 //timer 4 for pin 8 and 7 and 6 int tval = 7; // 111 in binary - used as an eraser TCCR4B &= ~tval; // налаштувати три біти в TCCR2B to 0 TCCR3B &= ~tval; tval = 2; // Prescaler = 2 ---> PWM frequency is 4000 Hz TCCR4B | = tval; TCCR3B | = tval; analogWrite(iaddr,k=map(Value,0,100,0,255));


Далі, я почав шукати WiFi контролери теплих підлог. Знайшов, в цілому, непоганий пристрій вартістю близько 6 тис руб від Теплолюксу, але він мав деякі істотні для мене недоліки.

Незважаючи на наявність мобільного додатку, протокол управління було закрито. Я провів деякий реверс-інженеринг, який показав, що теоретично протокол можна розшифрувати. Можливо, я б цим і зайнявся, але виявив, що без перевстановлення подразетников цей пристрій не встановлюється в один ряд з вимикачами. Це визначило долю пристрою: продавши його, я реалізував функціонал простого термостатуна своєму контролері, заощадивши майже 30 тис руб на 5-ти теплих підлогах.

Вийшло таке:

  • Все управління - локально на контролері та незалежно від домашньої ІТ інфраструктури
  • Використовуються вимірювання з 1-wire термодатчиками. Якщо датчик довгий часне може бути опитаний - нагрівач вимикається.
  • Через MQTT можна ввімкнути/вимкнути теплу підлогу та задати її температуру. Відповідно, підлоги керовані через інтерфейси та мобільний додаток Openhab
  • Я не став реалізовувати хитрі сценарії та розклади на контролері. За бажанням, це легко реалізується правилами Openhab або Node-Red. Я обмежився лише відключенням пристроїв, коли люди покидають будинок.
Ось приклад конфіга для однієї теплої статі:

"ow":( "2807FFD503000036":("emit":"t_bath1","item":"h_bath1") ), "items":( "h_bath1":, ),
Дані при опитуванні термометра OneWire із зазначеною адресою передаються на шину MQTT в топік t_bath1, а також, всередині контролера, об'єкту h_bath, що має тип №5 (термостат), реле підключено до pin#24 контролера, уставка - 33 градуси (можна коригувати по M )


Входи пристрою

У конфізі для кожного входу можна встановити як передачу команди локальному об'єкту так і видачу команди в MQTT топік. Причому окремо як на умовне «натискання» кнопки так і на «відпускання».

Приклади:

"in":( "41":("emit":"/myhome/in/all","scmd":"HALT","rcmd":"REST"), "38":("item":" spots_en"), "37":("emit":"/myhome/in/light","scmd":"ON","rcmd":"OFF"), "40":("emit":"/ myhome/in/gstall","scmd":"TOGGLE","rcmd":"TOGGLE"), "35":("emit":"/myhome/s_out/water_leak") )
Pin 41: Геркон на замку вхідних дверей - при замиканні - видаємо в топік /myhome/in/all команду HALT, при відмиканні - команду REST.

У мене це призводить до повного «засинання» та «прокидання» вдома. До слова - команди не входять до стандартний набір OpenHab, але вийшли вкрай зручні – HALT – вимикає пристрій, REST – відновлює параметри пристрою до останнього значення (колір, яскравість, температура), але тільки для того пристрою, який було вимкнено командою HALT а не OFF. Це дозволяє не вмикати те, що було вимкнено на момент залишення будинку.

Pin 38: Просто звичайний вимикач світла. При замиканні – видає (за замовчуванням) команду ON, при розмиканні – команду OFF. Ці значення передаються об'єкту spots_en. Зрозуміло, що стан об'єкта можна змінити з мобільного додатка. У цьому випадку, вимикач залишається, наприклад, у включеному положенні, але світло вимкнене.

Для любителів класичних прохідних вимикачів, підійде синтаксис Pin 40: І при включенні і при вимкненні видається команда TOGGLE (теж, до речі, нова, щодо OpenHab), що змінює положення Увімкнути-Вимкнути пристрої (в даному прикладі, лампа управляється не локально, а через MQTT іншим контролером).

Якщо це не перекидний вимикач, а кнопка - досить просто скоригувати «rcmd»:"" - при цьому команда на перемикання видаватиметься тільки при натисканні.


А, та й майже забув описати DMX-IN - вхід, заради якого, можна сказати, я і починав цю розробку.

На ринку багато вдалих з дизайнерської точки зору і, в цілому, ергономічних DMX контролерів світлодіодних стрічок.

Один із таких (сенсорну панель) я і купив на самому початку для експериментів із DMX. Все добре, але архітектура DMX не передбачає жодного управління з більш ніж одного місця. Існує один Майстер, який постійно транслює у шину яскравості каналів. Але в цьому проекті дана проблемавирішено. Контролер LightHub відстежує зміни DMX каналів на вході, підключеному до сенсорної панелі. Якщо вони змінюються - транслює зміни на вихід (з мапінгом на налаштовані пристрої, в тому числі, на групи світлодіодних стрічок).

Поки що нічого не змінюється - пристрої нормально керуються віддалено. Варто сенсорної панелі змінити значення яскравості каналів – ці зміни транслюються на DMX виходи.

Як не дивно, цей милиця вийшов цілком ергономічним. Хоча, як показав досвід, ми все рідше використовуємо сенсорну панель та все частіше смартфони для керування пристроями.

Висновок

На жаль, в одній статті неможливо описати всі нюанси, закладені на розробку.
Наприклад, зовсім за кадром залишилася тема підключення Modbus пристроїв, їх пулінг та синхронізація локального стану пристрою із системою Розумного Дому, інтеграція з простою припливною установкою. Ну і, можливо, порівняння з існуючими системамиблизьких класів, такими, як MegaD-328, AMS і, навіть, WirenBoard. Можливо, якщо буде зацікавленість – продовжу.

Також поки за кадром те, що з використанням NodeRed вдалося проінтегрувати систему з Telegram. Поки що працює для отримання оповіщень, але можна створити повноцінний Bot.

Щодо проекту LightHub - за всієї дешевизни, контролери виявилися цілком робочим рішенням. Чесно кажучи, я сам не вірив, що на основі Arduino можна створити стабільну систему, але, на мою думку, це вдалося.

Звичайно, треба багато ще доробити: повністю піти від хардкода (залишилося зовсім трохи), трохи і місцями почистити і рефакторити код, ретельно документувати проект, розвести друковану плату (зараз інтерфейсні Шилди спаяні просто на основі макетних плат і містять три MAX-485 - (DMX-IN, DMX-OUT, Modbus) та 1-Wire міст) - і це стане, по суті, дуже бюджетним готовим рішенням.

Warning: Нагадую, що проект поки що на рівні макетних плат. Відкриваючи наступний спойлер, ви можете завдати шкоди своїм естетичним почуттям.

Небагато картинок


Перший контролер, керуючий LED (60 каналів DMX-512), Modbus (димери, приплив), заслінки ветиляції;


Це DMX-512 декодер, який зручно розміщувати там, де світлодіодні стрічкиприходять до трансформаторів. У мене - під фальшстелею в коморі.

А це другий контролер, що обслуговує 1-wire, вимикачі/датчики і релейний модуль. (Сам релейний модуль розмістився прямо в розпаювальній коробці, де йому і місце разом з трьома фазами. Сусідство 380В і слаботочки я викоренив скрізь, де можливо після однієї невдалої події)

Зрозуміло, що треба розширювати функціонал. Як мінімум, у напрямку бездротових датчиків/пристроїв. (Хоча, наприклад, ZWave і так зараз можна використовувати через стандартні біндинги Openhab).

Можливість підключення, наприклад, бюджетного NooLight, мабуть, непогана ідея. Можливо, подумаю над міграцією на ESP-8266 для розширення RAM, хоча догляд на WiFi з проводового підключення до LAN мені не подобається з точки зору надійності. Та й ESP не має таку багату переферію як Arduino Mega. Ще планую зробити облік електроенергії через датчики струму та підключення Rotary Encoder на вхід.

Також, корисно було б зробити конфігурування та запуск контролера більше User Friendly (візуальні конфігуратори та ін.). При цьому свідомо не хочеться перетворювати контролер на вебсервер з файлами/картинками, AJAX тощо. На мій погляд, це вже має бути прерогативою сервера. Хоча б на основі Raspberry.

Але оскільки проект абсолютно опенсорний - можливі різні варіанти, приєднуйтесь.
Також, з нетерпінням чекаю на ваші відгуки.

UPDATE:

Після публікації статті, об'єднавши зусилля разом із одним із мешканців Хабра та намалювавши принципову схему LighthHub Shield, розпочали розведення друкованої плати, з урахуванням всього осмисленого досвіду та коментарів
  • Плата буде сумісна як з Arduino Mega (5v), так і з Arduino DUE (ARM 3,3В)
  • Вбудований інтерфейс Ethernet на базі Wiznet5500
  • 8 опторазв'язаних дискретних входів, 8 дискретних входів/виходів із захистом за напругою/струмом
  • 8 аналогових входів із захистом за напругою/струмом. Надалі, припускаю використовувати аналогові входи для контролю споживаної потужності (датчики струму) та для того, щоб підключати зовнішні потенціометри (димери)
  • 8 ШИМ виходів, 4 з них з потужними вихідними ключами (до 500 мА/50В) + 4 дискретні потужні виходи. Дозволять локально підключити до контролера, наприклад, кілька пускачів або навіть не дуже довгу RGBW LED стрічку.
  • Роз'єм формату UEXT , який дозволить, згодом, підключити до контролера сумісну переферію - наприклад, додаткові радіомодулі, для з'єднання з бездротовими пристроями.
  • Інші входи/виходи будуть виведені без захисту на роз'єми RJ45 для підключення локальних пристроїв(Релейні плати, ЦАП та ін)
  • 1-wire
  • dmx-512
  • dmx
  • Node-Red
  • modbus
  • iot
Додати теги