Розумний будинок своїми руками, схема інформаційного обміну
Розумний будинок своїми руками, схема інформаційного обміну
При створенні будь-яких технічних пристроїв людина завжди що-небудь запозичив у природи. Так літак схожий на птаха, машина на повзає жука, а підводний човен на величезного кита. Всі процеси, що відбуваються навколо нас, протікають одночасно, часто без видимої зв'язку. Але логіка природи така, що змінюючи роботу будь-якого процесу, навіть дуже незначно, змінюються мільйони внутрішніх параметрів, створюється величезна кількість залежностей, ми таким чином впливаємо на процеси йдуть паралельно і часто зовсім кардинально міняємо події наступні. У відомого американського письменника-фантаста Рея Бредбері є оповідання, в якому мандрівник у часі всього лише випадково розчавив метелика в минулому, а повернувшись у свій час, опинився зовсім в іншому світі.
У попередній статті, я розповів про загальні принципи, на яких має будуватися система автоматизації будинку. Зараз же, перш ніж приступити до розгляду кожного модуля, блоку, елемента системи окремо, хотілося б поділитися думками щодо загальносистемного інформаційного обміну. З моєї точки зору система Розумного Дому ентузіаста (а ми говоримо насамперед про «своїх руках") повинна будується в ідеології багатозадачності, багатопоточності, множинності працюють паралельно процесів. Мікроклімат в будинку, комфорт, безпека і економічність ― це ті природні процеси, які йдуть одноразово, але в той же час взаємозалежне. Логічним було б і управляти цими процесами відразу, за допомогою різних програмних блоків, пов'язаних між собою інформаційними зв'язками.
Розумний будинок ― конструктор

Як я вже говорив, з моєї точки зору немає необхідності винаходити "велосипед" і робити все "з нуля" самостійно. Навряд чи вийде краще, ніж у тих, хто займається цим роками. Тому якщо якась та завдання або хоча б елемент у реалізації Розумного Дому вже вирішена, потрібно постаратися використовувати чужий досвід. Так ми знаходимо, що функція відеоспостереження вже вирішена за допомогою програми ZoneMinder, функція візуалізації, представлення даних, інтерфейсу вирішена за допомогою Apache і всіляких фреймворків і CMS, функція координації, а також планування завдань ― за допомогою вбудованих сервісів операційної системи, а функція для управління датчиками, виконавчими механізмами та іншими пристроями Розумного Дому за допомогою owfs, якщо мова йде про 1-wire, або іншими бібліотеками, програмами та рішеннями, якщо мова йде про X-10, Modbus та інших стандартах.
Наше завдання полягає у двох речах:
1. зібрати в єдине ціле і зв'язати між собою в єдину систему різні програмні блоки;
2. розробити високорівневу логіку роботи всієї системи (що, коли і навіщо включати і за якими алгоритмами)
В якості операційної системи я застосовую Linux. Ця ОС дуже вдало вписується в ідеологію своєрідного конструктора, середовища, в якому абсолютно різні процеси можуть бути пов'язані між собою десятками різних способів. Безумовно, будь-яка сучасна ОС, у тому числі Windows підходить для вирішення цього завдання, але в Unix-подібних системах набагато легше при необхідності проникнути крізь візуальний десктоп, вглиб, до системних процесам. У Unix ми знайдемо більше способів для сполучення різних програм між собою. Саме в Unix з'явилися і розвиваються Інтернет-рішення, які я використовую ― це їх рідна середу. Але, тим не менш, все це також прекрасно працює в Microsoft Windows, хоча і з певними складнощами.
Телевізор з доступом в Інтернет

Ітак, моя система автоматизації Розумного Дому побудована на Інтернет-рішеннях, а саме на таких програмних блоках як Web-сервер, реляційна база даних, скриптові мови програмування, на таких протоколах як TCP-IP, HTTP, на таких стандартах як HTML, CSS. І вибір цей далеко не випадковий. Інтернет-технології міцно увійшли в наше життя і це проникнення триває. Вже дуже багато побутові прилади та обладнання мають підтримку зазначених протоколів і стандартів. Таким чином, вже зараз можна вибирати для дому те обладнання, яке управляється через Інтернет-технології, а в майбутньому такі пристрої буде, думаю, превалювати. Ми вже маємо на сьогоднішній день не тільки побутові медіа-плеєри з підтримкою TCP, SMB, Ethernet, а й холодильники, мікрохвильові печі і навіть пральні машини. Нехай Вас не лякає той факт, що іноді до приладу потрібно підвести кабель UTP Cat 5. Все більше пристроїв підтримують Wi-Fi та інші радіо-технології. Стандарти Інтернет давно вже показали свою перспективність, гнучкість, надійність і головне ― довговічність. Скриптові мови програмування, такі як PHP, Perl, Python активно розвиваються, прості у використанні, підтримуються всіма платформами, мають величезну кількість бібліотек, баз знань і рішень.
Кабель UTP, RJ-45

Программіровать інтерфейс між системою і людиною тим більше потрібно саме на Інтернет-рішеннях, так як це дозволить контролювати і змінювати роботу систем Розумного Дому не тільки з локальної мережі будинку, але і через Інтернет або навіть мобільний телефон. Більшість сучасних мобільних телефонів мають вбудовані Web-браузери. Навіть побутові телевізори вже почали виробляти з можливістю доступу в Мережу і браузером Інтернет. Сидячи на домашньому дивані, не включаючи комп'ютер можна буде і подивитися камери спостереження і відкрити дистанційно двері сусідові. І все це без будь-яких складних апаратних конвертерів, мультиплексорів, перехідників. Та й сам Web-інтерфейс не потрібно переробляти під конкретні пристрої. Сучасні засоби CSS + HTML дозволяють робити так звані "гумові" Інтерфейси, які самі адаптуються до розміру і дозволу екрану. Сучасні фреймворки і бібліотеки самі визначають які стандарти підтримує клієнтське ПЗ, а які ні і використовують потрібні компоненти.

Важливою відмінною рисою такого підходячи є той факт, що для супроводу такої системи або її розширення можливо залучати сторонніх фахівців, що займаються у сфері Інтернет-технологій, Web-програмістів та адміністраторів. Справа в тому, що скриптові мови, такі як PHP або Perl НЕ компілюються і не кодуються. Написані для Розумного Дому програми завжди існують у вигляді вихідних кодів, що дозволяє вносити в них будь-які корективи. До речі, ця особливість також цікава і з точки зору віддаленої корекції коду програми. Наприклад, будучи у від'їзді, я зміг віддалено за допомогою SSH зайти на свій сервер через Інтернет і виправити помічену помилку в регулюванні опалення, пов'язану з помилкою в управлінні 3-х ходовим змішувачем.
У моїй системі всі пристрої, будь то датчики або виконавчі механізми існують як би самі по собі, а програми управління самі по собі. Причому програми управління безпосередньо між собою також ніяк не пов'язані. Існує програма для опитування датчиків і запису їх значень в базу даних. Існує програма для управління виконавчими механізмами і запису їх поточних значень в базу даних. Існують, нарешті самі програми управління, які використовують інформацію в базі даних (значення, свідчення, стану) для того, щоб відпрацювати певні алгоритми і викликають функції для управління виконавчими механізмами. Схематично цей процес можна представити у вигляді такої схеми.

Центром системи є СУБД. У моєму випадку використовується MySQL, але можна використовувати будь-які системи управління базами даних, такі, наприклад, як Oracle або Microsoft SQL. MySQL дуже невелика і функціональна система, зручна для зберігання не дуже великої кількості даних. Однак у цій СУБД немає багатьох можливостей, доступних в Oracle. Останній набагато більш адаптований для роботи з великою кількістю користувачів і величезними масивами даних. Втім, для роботи систем Розумного Дому досить простою і зручною СУБД MySQL.
У СУБД зберігається вся поточна інформація про елементи системи, стан ключів, значення датчиків, а також історія значень. У ній також зберігаються конфігураційні дані модулів управління, такі як необхідна температура в приміщенні, кількість і параметри контурів опалення, адреси датчиків. Крім того, в базу записуються логи роботи програми, їх розрахункові значення. Так, значенням температури в приміщенні може скористатися будь-який програмний модуль. Будь програмний модуль може (якщо це необхідно для роботи його власного алгоритму) "подивитися" в якому стані знаходиться сусідній програмний модуль, як він реагує на якісь зміни. Це важливо, наприклад, для паралельної роботи системи опалення та кондиціонування. Ці системи можуть працювати окремо, але будучи запущеними разом, вони повинні координувати свою роботу. Якщо користувач включив режим інтенсивного провітрювання будинку, в результаті чого температура в будинку почала різко падати, система опалення повинна розуміти що відбувається і не відповідати на це різким підняттям температури в радіаторах, щоб уникнути розгойдування системи після вимкнення активної вентиляції і не допустити перевитрати газу.

Але зберігання всіх даних в централізованій СУБД зручно не тільки з точки зору обміну інформації між керуючими модулями, але і з точки зору моніторингу роботи системи через вже згаданий Веб-інтерфейс. Це свого роду такий же клієнт СУБД, як і модулі управління. Веб-інтерфейс через СУБД має можливість переглядати, аналізувати поточні дані, а також керувати роботою окремих програм, але не безпосередньо, а опосередковано. Іншими словами, модулі працюють на базі тих даних, які є в СУБД і існує можливість, як за допомогою Веб-інтерфейсу, так і за допомогою інших модулів і програм управляти алгоритмами роботи. Очевидно, що це вельми гнучкий і зручний механізм побудови такого роду систем. Клієнт-сервер.
Така ідеологія і підхід до вирішення проблеми автоматизації будинку дуже зручний з точки зору розширення системи або її зміни, коли всі блоки працюють паралельно, пов'язані між собою, але в теж час незалежні один від одного. У нас завжди є можливість завершити роботу будь-якого блоку без якого-небудь істотного впливу на роботу інших систем. Єдиним критично-важливим елементом у цій схемі є сама СУБД, без якої вся подальша робота неможлива. Але насправді потенційно "ризиковані" елементи цієї схеми все-таки самописние скрипти управління, а такий надійний і стабільний продукт як MySQL.
Статьи pp-budpostach.com.ua Все о бане
Статьи по пеноблоку,пенобетону,пенобетонным блокам
Статьи pp-budpostach.com.ua Статьи по бетону
Статьи pp-budpostach.com.ua Все о крышах ( виды, материал, как лутше выбрать)
Статьи по газобетону ( газоблоку ), газобетонных блоков, газосиликатнных блоков
Новости, статьи, слухи, факты, разное и по чу-чуть
Статьи по кирпичу ( рядовому, лицевому,облицовочному,клинкерному, шамотному, силикатному,)
- Сучасний заміський будинокНе останнє місце при будівництві заміського будинку займає обробка як внутрішня, так і зовнішня. Зовнішнє оздоблення виконує не тільки захисну функцію, але і не менш важливу естетичну. Потрібно будувати так, щоб високоякісна зовнішня обробка і стильн
- Будинок з мансардою - практично і красиво?Будівництво будинку з мансардою має безліч переваг, в першу чергу - це економія кошти при порівняно невеликій втраті корисної площі. Мансардний поверх обійдеться трохи дешевше повноцінного, так як зверху немає плит ж / б, але вартість 1 м.кв. обштука




