Підключення до MegaD-328 датчиків руху
Охоронна та пожежна сигналізації – найважливіші елементи системи Розумного Дому. Досі для охорони будинку я використав незалежний блок CCU6225. Це стандартна за своїм функціоналом GSM-сигналізація, яка старанно та справно служила мені багато років. На жаль, у подібних рішень є один істотний недолік. Такі модулі мають дуже слабкі можливості для інтеграції у єдину систему. Все, що я зміг вичавити з цієї чорної коробочки, - це поточний режим роботи (Спостереження або Охорона). Налаштування сигналізації можливе лише за допомогою спеціалізованого програмного забезпечення для Windows, що підключається до COM-порту. Налаштування "зашиваються" в модуль жорстко і робота сигналізації не може враховувати якісь зовнішні параметри. Але найгірше те, що система Розумного Дому не має жодної можливості оперативно отримувати дані з датчиків, підключених до блоку сигналізації. Такий стан речей мене не влаштовував.
У моєму поданні будь-який датчик, будь то температурний сенсор, датчик тиску або вологості, охоронний або пожежний сповіщувач, повинен передавати всю інформацію в єдину систему, яка в залежності від різних зовнішніх і внутрішніх факторів отримуватиме, зберігатиме, оброблятиме цю інформацію та прийматиме рішення згідно закладеним алгоритмам.
Простий приклад. У випадку, якщо система Розумного Будинку знаходиться в режимі "Охорона", сигнал з датчика руху буде тривожною подією і генеруватиме включення сирени, дзвінок на мобільник і випуск отруйних газів. У випадку, якщо система перебуває в режимі "Спостереження", у темний час доби вона може за сигналом датчика руху автоматично вмикати світло, а потім і вимикати за відсутності в зоні роботи сповіщувача активності.
У цьому матеріалі йтиметься про підключення до системи Розумного Будинку охоронних ІЧ-повідомників. У мене вдома використовуються найпростіші інфрачервоні сповіщувачі пасивного типу Pyronix Colt XS. Чому ці? А тому що ці датчики найдешевші, що я знайшов пару років тому в місцевому кіоску, що торгує охоронними системами. Здається, тоді вони коштували близько 150 рублів за штуку. Можна використовувати будь-які інші датчики такого типу. Для інтеграції в єдину систему я використовував стандартний комплект MegaD-328 Kit, що складається з інтерфейсного модуля MegaD-328 та виконавчого MegaD-7I7O. Важливо помітити, що жодних змін у конструкції чи інших доопрацювань модуля чи датчика не потрібні!

Підключаючи найпростіші інфрачервоні сповіщувачі до комплекту MegaD-328 Kit, ми отримуємо відразу кілька переваг. По-перше, всі датчики у нас знаходять інтерфейс Ethernet і протокол HTTP, які дозволяють налаштовувати будь-які програмні алгоритми роботи. По-друге, MegaD-328 може або повідомляти про активний стан датчика на сервер, забезпечуючи цим інтеграцію датчика в єдину систему, або працювати з ним самостійно, так як в модулі реалізована підтримка сценаріїв (поле Action). Наприклад, MegaD-328 може увімкнути сирену або виконати інші дії. По-третє, оскільки у неактивному стані сповіщувач нормально-замкнуто, ми можемо як візуально (по світлодіодах на вхідних портах), так і програмно визначати працездатність підключених до модуля датчиків.

Підключення ІЧ-повідомлювача дуже просте. Знявши верхню кришку, ми можемо виявити клему: + --- плюс 12В - --- мінус 12В N --- до правої клеми входу MegaD-7I7O C --- до лівої клемі входу MegaD-7I7O
Живлення датчика (12В) найпростіше взяти з того ж блоку живлення, до якого підключеноMegaD-328 Kit. У моєму випадку це DR-60-12 на DIN-рейку.


Тепер залишилися дрібниці - написати найпростішу програму. Але для цього необхідно зробити деякі зміни в єдиній БД та інтерфейсі. По-перше, необхідно створити віртуальний ключ, який визначатиме режим роботи системи: Охорона/Спостереження.

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

програма. Тут все просто. Фрагмент коду mod_megad.php (повна версія скрипту, а також система керування ab-cms доступна у вихідниках демо-інтерфейсу)
Дзвінок на мобільник генерується у мене командою file_get_contents("http://192.168.0.251/alarm2.php"); Вся справа в тому, що Asterisk у мене встановлений на другому сервері. Зміст скрипту alarm.php та принцип його роботи я описував ось у цій статті.
Таким чином, той самий найпростіший ІЧ-датчик став таким собі багатофункціональним приладом обліку. За допомогою того самого сповіщувача можна включати або вимикати світло, детектувати наявність людей у приміщенні або їх активність (у системах економії енергоресурсів), визначати факт проникнення в будинок, будувати аналітику по найбільш популярним зонам і приміщенням будинку, щоб, можливо, навіть передбачати дії мешканців. Цей напрямок, безумовно, дуже цікавий. Я постараюся й надалі публікувати свої напрацювання на цю тему.
2014-01-07 04:13:20 Олександр Цікава ідея з отруйними газами та грабіжниками:) MegaD-328 точно не заглючить..; ну а якщодатчик заглючить, і контакти розімкнуться в той час, коли домочадці вдома?
Але ідея хороша, особливо у непобутових, можливо, складських приміщеннях. Все одно потрібні запасні "парашути". Не думали над можливими варіантами додаткових перевірок? Зрештою, це стосується не тільки цього прикладу з "газами". А що, коли йде полив у теплиці; ти заводиш туди друга, похвалитися системою відключення, назад отримуєш струмінь води в обличчя від спринклера, в обмін на надії одразу ж вимкнути полив. Або ще щось, що потребує перевірки.
Хоча якась тут перевірка, хіба що дублювання за допомогою додаткового датчика, від іншого MegaD.
2014-01-07 21:41:09 Олександр Андрій, питання за кодом. У коді вгорі приклад обробки спрацьовування датчика:
/ Сповіщувач на сходах if ($_GET['pt'] == "4" ) .. І далі йде обробка відповідно до двох режимів сигналізації. Підкажіть, як тут вважати показання лічильника спрацьовувань?
2014-01-08 15:33:58Andrey_B З отруйними газами - це, звичайно ж, жарт. Щодо дод. перевірок, все залежить від конкретних вимог. У переважній більшості побутових випадків космічна надійність та 3-х кратне дублювання зайве. Перегорання лампочки в побуті - абсолютно звичайне явище, нікому ж не спадає на думку закладати обов'язкове дублювання на подібний випадок. Що стосується датчиків, то контроль їх працездатності може виконуватися автоматично. Наприклад, датчик руху у неактивному стані тримає високий логічний рівень. Таким чином, якщо вхід тривалий час розімкнути - це говорить про несправність датчика.
2014-01-08 15:43:58Andrey_B Олександр, наприклад, так: $cnt = preg_replace("/w*//", "",strip_tags(file_get_contents("http://192.168.0.14/sec/?pt=4&cmd=get"))); У змінній $cnt у вас буде значення лічильника.
2014-01-08 18:02:50 Максим Доброго дня, Андрію. Придбав цей пристрій поки що в експериментальних цілях. Поки що все дуже подобається, але без Вашої допомоги не обійтися. Підкажіть, як правильно зробити відключення світла через 5 хвилин, що вмикається по датчику руху. Я подумав через sleep, але не переконуюсь що це правильне рішення. Заздалегідь дякую.
2014-01-11 21:20:39Andrey_B Максим, я роблю так. У мене в БД є спеціальна табличка, яка має наступну структуру (поля): 1. Дата та час спрацьовування датчика 2. Ідентифікатор датчика руху 3. Пов'язані з датчиком руху зони освітлення Алгоритм наступний При спрацьовуванні датчика включається світло, після цього пишеться в БД дата і час спрацьовування датчика Кожну хвилину запускається скрипт, який перевіряє вказану таблицю в БД і якщо датчик останній раз спрацьовував більш певної кількості часу (поле 1), всі пов'язані з ним зони освітлення відключаються (поле 3). Якщо необхідно, я можу включити цей скрипт в демо-інтерфейс. Але це одне з рішень. Вони можуть бути різні.
2014-01-25 22:55:55 cezium Доброго вечора. Не підкажете. випадково, у чому може бути проблема? Є датчик АСТРА-515А. При включенні однією БП з мегадевайсом викликає збої у роботі. Хоча в інструкції зазначено, що не створює перешкод. Збої виявляються тільки в роботі Ethernet на мегадевайсі - він просто зникає з мережі. При цьому візуально все працює, як і раніше. Вхідні, вихідні порти перемикаються (і датчиком вдичення в тому числі), тобто пристрій не "висить". Збої починаються не відразу після включення, а через деякий час (від секунддо хвилин)
2014-01-26 10:44:22Andrey_B cezium, причина може ховатися в самому блоці живлення. Якщо БП недостатньо потужний, то напруга може "просідати", що викликає збої в роботі Ethernet, оскільки саме ця частина пристрою має найбільше споживання. Спробуйте спочатку підключити інший блок живлення. Який БП використовується у вас зараз?
2014-01-26 15:51:31Andrey_B cezium, ви занадто багато хочете від мікроконтролера з 32Кб флешу та 2Кб оперативної пам'яті ;) Звичайно, в ньому немає реалізації ні NetBIOS, ні DNS. І хоча все це можна додати, практичного сенсу у розрізі домашньої автоматизації не дуже багато. Краще пам'ять зайняти чимось по-справжньому корисним. Але ви, тим не менш, виявили дуже цікаву проблему, пов'язану з NetAction. Перевірю.
2014-01-28 20:19:13 cezium Andrey_B, ні, нічого такого я не хочу :) абсолютно не замислюючись вбив ім'я машини замість IP. Само собою підтримка netbios абсолютно необов'язкова.
2015-02-21 17:11:14 Данило Доброго дня! Підкажіть як підключити до входу датчик із трьома контактами? Якщо я правильно зрозумів, це два харчування. Ось такий наприклад ESYLUX PD C360i/6
2015-02-21 22:26:24Andrey_B Даніл, судячи з опису, цей датчик призначений для роботи в мережі 220В і комутує безпосередньо навантаження 220В. Його не можна використовувати без будь-якої модифікації зі стандартним входом.
2015-02-22 17:54:28 Данило Спасибі, Андрію. Підбиратиму датчик схожий на те, що в статті. Ніяк не можу підібрати модель для скоитого монтажу в стелю. Напевно варто використовувати сам датчик як у статті, а корпус для монтажу підібрати під свої потреби, наприклад, корпус стельового світильника.
2015-11-08 22:20:20 Андрій Андрій, теж здобувсобі серверну шафку. Є бажання всю слаботочку запхати в нього. Та чого гріха таїти, навіть деяке. Ну скажіть, де, і головне якусь взяти рамку з дин-рейкою, щоб закріпити в кріпленнях шафи, наприклад як у вас на фото.
2015-11-08 23:53:35Andrey_B Андрій, ZPAS WZ-PS3U-00-00-011. У нас ними торгує фірма АБН. Ну, не дешево, звісно.
2016-06-06 00:07:13 Олександр Андрію, підкажіть, чи можна підключати датчики руху, типу HC-SR501, де є лише один цифровий висновок, без "NC" і "NR"?
2016-06-06 17:00:39Andrey_B Олександр, я не мав справу з HC-SR501, але думаю підключити його можна.
2016-06-07 01:05:42 Олександр Андрій, він видає 3.3В - цифровий 1 або 0. А ось як правильно підключити і як рахувати?
2016-06-07 17:13:48Andrey_B Олександр, зі стандартним модулем MegaD-7I7O працювати не буде. З модулем MegaD-14-IN працюватиме в режимі (положення джампера) цифрового датчика. Налаштування входу як IN.
2018-01-28 17:22:36 Сергій Доброго дня, так само питання про HC-SR501 з 3.3В TTL логікою. Підключив його до порту на роз'ємі XT2. Порт налаштував тип IN і режим P&R. Отримав інвертування поведінки. Коли від датчика сигналу немає (на нозі низький рівень у районі 1В), MegaD-2561 пише, що стан порту ON. Коли сигнал є (3,3В), то порт перемикається у стан OFF. Відповідно, якщо налаштувати перемикання світла, то за відсутності руху світло горить. При русі - гасне. Звичайно, є як мінімум два виходи: 1) Вихід на світ за замовчуванням зробити ВКЛ. 2) Підключити датчик до АЦП порту. Але мені все ж таки цікаво, чому при високому рівні значення порту OFF, а при низькому ON? Або порти XT2 не передбачають підключення датчиків в такомурежимі?
2018-01-29 11:46:15Andrey_B Сергій, це питання багато разів обговорювалося на форумі. найпростіше приєднати його через узгоджуючий малопотужний транзистор n-p-n. Колектор - до входу 7I7O, емітер - до загального дроту, базу через резистор порядку 10 кОм - до виходу датчика. Всі рівні будуть узгоджені, і логіка роботи буде правильною - при спрацюванні датчика Ще цитата: "У мене використовується з Мегою один такий, я додав дрібний польовий транзистор 2N7000 (затвором на вихід датчика, і резистор 10к з затвора на землю, щоб він закривався). Виток транзистора на вхід Меги, стік на землю. Все ОК вже два роки." І так далі. Там же на форумі багато разів писалося, чому така логіка роботи.
2018-12-20 11:35:30 Аскар Доброго дня. Підкажіть будь ласка, як можна підключити до Megad-2561 датчик руху https:/ua.aliexpress.com/item/J34-Free-Shipping-DC12V -PIR-IR-Pyroelectric-Infrared-Module-Adjust-Relay-Output-Human-Body-Sensor/32400693689.html?spm=a2g0s.9042311.0.0.274233edEmUSMh. Я ось тільки починаю -14-ІN, Megad-14-R. До якого модуля підключати датчик? Харчування куди подавати?
2018-12-20 17:11:15Andrey_B Аскаре, з приводу різних китайських виробів важко щось говорити напевно, не маючи їх під рукою.