OpenSCADAWiki: Home Page Uk/Using/ Smart House ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of HomePageUk/Using/SmartHouse from 2017-06-28 08:34:46..

Автоматизація жилого дому - "Розумний дім" (HouseSpirit)

Назва: "Розумний дім" (HouseSpirit)
Розпочато: 28 03(березень) 2011р
Завершено: 12 06(червень) 2011р
Розташування: м.Ханти-Мансійськ, Росія
Учасники: Олег Сидашов, Роман Савоченко
Опис: Реалізація проекту автоматизації жилого дому — "Розумний дім" (HouseSpirit).


Contents

Вступ

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


Система призначена для вирішення наступних завдань:


Цілями створення системи є:

1. Об'єкт автоматизації

Площа об'єкту автоматизації ≈ 300 м2. Температура повітря у приміщеннях, призначених для встановлення серверу, давачів та виконавчих механізмів: від 10 до 25 градусів за Цельсієм. Температура повітря за приміщенями, де встановлюються давачі та виконавчі механізми: від - 30 до 30 °С.


Рівні забруднення, вологості, освітлення, шуму та іонізуючого випромінювання відповідають санітарно-епідеміологічним вимогам до жилих споруд та приміщень (САНПІН 2.1.2.1002-00).


На об'єкті присутнє електромагнітне випромінювання, індуковане побутовими пристроями, а також засобами електроно-обчислювальної техніки (Bluetooth, Wi-Fi, GSM).


Система “Розумний дім. Сервер керування” являє собою програмно-апаратний модуль, який є основним керуючим центром об'єкту автоматизації. Сервер приймає та обробляє сигнали від різних давачів, формує та передає сигнали керування виконавчим пристроям, здійснює зв'язок з користувачем через мережу GSM. Керування системою користувачем здійснюється через веб-інтерфейс.


Система “Розумний дім. Сервер керування” включає наступні підсистеми:

  1. Підсистема контролю доступу.
  2. Підсистема контролю освітленням.
  3. Підсистема контролю мікрокліматом.
  4. Підсистема контролю водопровідною мережею.
  5. Підсистема контролю побутовою та мультимедійною електротехнікою.
  6. Підсистема обробки інформації, яка надходить з давачів.
  7. Підсистема забезпечення інтерактивної взаємодії з користувачем через Web-інтерфейс та через мережу GSM.
  8. Підсистема авторизації.
  9. Підсистема формування звітів.
  10. Підсистема конфігурації забезпечує механізми додання, витяг та редагування інформації у використаній базі даних, для роботи підсистем 1-8.

Структурна схема системи домової автоматики приведено на рис.1.


Структурна схема системи домової автоматики. (201 Kb)
Рис. 1. Структурна схема системи домової автоматики.

Для керування різним обладнанням жилого дому було розроблено концентратор та побудовано бездротову мережу ZigBee з пристроїв керування обладнанням. Загальний контроль обладнанням, а також надання користувацького Web-інтерфейсу та інші засоби повідомлення відбуваються сервером домової автоматики. Концентратор мережі ZigBee при цьому підключається до серверу за посередництвом інтерфейсу RS-232 та протоколу ModBus/RTU. Порушення у області контролю автоматики надсилаються користувачу у вигляді SMS-повідомлень через підключений GSM-модем.


Контролер бездротового зв'язку має наступні технічні характеристики:


GSM-модуль має наступні технічні характеристиками (Siemens TC65):


Апаратна частина серверу:


У якості програмного оточення, для виконання функції автоматизації жилих приміщень — "Розумний дім" використано відкриту SCADA систему OpenSCADA, у оточені якої розроблено користувацький Web-інтерфейс "Розумний дім", а також реалізовано опитування та контроль пристроїв за посередництвом ZigBee концентратору.

2. Система автоматизації

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


У особі інтегрованих інтерфейсів OpenSCADA містить:


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


Для надання можливості вільного формування користувацьких Web — інтерфейсів, безпосередньо у оточенні OpenSCADA, передбачено модуль "UI.WebUser". В цілому OpenSCADA містить всі основні функції типового Web-серверу, а саме:


Відповідно, для побудови довільного користувацького інтерфейсу контролю достатньо мати інстальовану систему OpenSCADA з модулями: Transport.Sockets?, Transport.SSL (RU), Protocol.HTTP та UI.WebUser.

2.1. Структура та розташування файлів

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


Статична частина представляє з себе набір шаблонних HTML-файлів, з мітками розташування динаміки, та ресурсні файли: CSS, JavaScript та зображення. В цілому, статична частина представлена файлами, які описані у таблиці нижче:


Файл Опис
HTML-шаблони (HouseSpirit/Web/*)
main.html Головний шаблон користувацького інтерфейсу. Містить загальний інтерфейс користувача з міткою розташування вмісту сторінок «
auth.html Шаблон інтерфейсу авторизації з міткою розташування вмісту « Створено для використання модулем протоколу HTTP (/sub_Protocol/mod_HTTP).
access.html Шаблон контролю доступу.
temperature.html Шаблон керування мікрокліматом.
light.html Шаблон керування освітленням.
water.html Шаблон керування водопровідною підсистемою.
tech.html Шаблон керування електронною та побутовою технікою.
friend.html Шаблон керування користувацькими пристроями.
user.html Шаблон диспетчеру користувачів.
devices.html Шаблон диспетчеру пристроїв.
loginError.html Сторінка повідомлення помилки аутентифікації або її відсутності.
mess.html Шаблон повідомлень активних аварійних випадків.
report.html Шаблон формування звітів про порушення, дії та системні повідомлення.
welcome.html Сторінка привітання, яку зображається по замовченню у полі контенту.
Ресурси (HouseSpirit/Web/res/*)
stylesheet.css Каскадні таблиці стилів користувацького інтерфейсу цілком.
main.js JavaScript код головного шаблону, для лічильнику часу та сеансу.
devMon.js JavaScript код реалізації динамічного AJAX інтерфейсу моніторингу пристроїв підсистем.
access.png, accesson.png Зображення підсистеми контролю доступу.
temperature.png, temperatureon.png Зображення підсистеми керування мікрокліматом.
light.png, lighton.png Зображення підсистеми керування освітленням.
water.png, wateron.png Зображення керування водопровідною підсистемою.
tech.png, techon.png Зображення підсистеми управління електронною та побутовою технікою.
friend.png, friendon.png Зображення підсистеми керування користувацькими пристроями.
user.png, useron.png Зображення диспетчера користувачів.
devices.png, deviceson.png Зображення диспетчеру пристроїв.
report.png, reporton.png Зображення формування звітів про порушення, дії та системні повідомлення.
help.png, helpon.png Зображення сторінки допомоги.
HouseSpirit.ico Іконка Web-інтерфейсу.
hd_l.png, hd_r.png Ліва та права частина заголовку.
select_l.png, select_r.png Зображення фону обраного елементу меню ліворуч та праворуч.
space_l.png, space_r.png Зображення вільного пункту меню ліворуч та праворуч.
status_l.png, status_r.png status_edge.png Зображення рядку статусу.
Файли звітів (HouseSpirit/Web/reports/*)
rep_{user}.html Останній звіт користувача user.

Динамічну частину реалізовано скриптами OpenSCADA на внутрішній мові JavaLikeCalc, які описано у таблиці нижче:

Адреса скрипту Опис
Скрипт Web-сайту (/sub_UI/mod_WebUser/)
up_hs

Головний скрипт Web-сайту, який виконує безпосередній прийом, первинну обробку та формування остаточної відповіді, а саме:

  • Обслуговування запитів до сторінок-шаблонів:
    • читання файлу обраної сторінки-шаблону, якщо обрання мало місце;
    • читання та розбір файлу головного шаблону інтерфейсу (main.html);
    • розташування поточного часу сервера у атрибуті "value" елементу дерева головного шаблону з ідентифікатором "time_vl";
    • розташування початкового значення лічильника активного сеансу у атрибут "value", елементу дерева головного шаблона з ідентифікатором "ses_vl";
    • перевірка загального доступу автентифікованого користувача до тих або інших частин інтерфейсу та приховання елементів до яких немає доступу на перегляд;
    • обробка обраного пункту меню сторінки:
      • підсвічування елементу меню активної сторінки;
      • пошук та виклик скрипту динаміки (/sub_DAQ/mod_JavaLikeCalc/lib_web/*) однойменно, або з аргументу "script URL", обраної сторінки.
    • читання файлу сторінки привітання (welcome.html), у випадку відсутності обрання сторінки з меню;
    • встановлення значень поточної сторінки та користувача у рядку статусу;
    • розташування контексту сторінки у головний шаблон інтерфейсу.
  • Обслуговування запитів до файлів ресурсів та звітів:
    • Обробка розширень файлів ресурсу та формування атрибуту типу (Content-Type), передаваного контенту.
  • Генерація відповідей з помилкою у випадку відсутності сторінок-шаблонів або файлів ресурсів.
Бібліотека скриптів шаблонів-сторінок та системних процесів (/sub_DAQ/mod_JavaLikeCalc/lib_web/*)
user Скрипт сторінки-шаблону «Диспетчер користувачів» реалізує функцію формування форми керування користувачами у залежності від прав користувача який увійшов.
devices Скрипт сторінки-шаблону «Диспетчер пристроїв» реалізує функцію формування форми керування пристроями та генерацією порушень за ними для двох типів пристроїв: десятковий та динамічний.
devMon Скрипт формування інтерфейсу моніторингу у формі керування пристроями, які сконфігуровано у «Диспетчері пристроїв». Цей скрипт використовується всіма підсистемами моніторингу пристроїв.
alarms Скрипт задачі періодичної перевірки значень змінних пристроїв на предмет сконфігурованих аварійних ситуацій. Крім безпосереднього формування порушень цей скрипт здійснює розсилання SMS-сповіщень з повідомленням по телефонам користувачів, встановлених для повідомлення з посередництвом SMS.
mess Скрипт сторінки-шаблону «Порушення» реалізує функцію формування переліку активних порушень.
report Скрипт сторінки-шаблону «Звіти» реалізує функцію формування таблиці-звіту з подіями по системі та різним підсистемам за визначений період часу. Звіт одночасно генерується на екрані і у файлі, який можна, за посиланням, завантажити окремо.

В цілому алгоритм обробки запитів до сторінок наступний (на прикладі http://localhost:10002/WebUser/temperature?script=devMon):

2.2. Менеджер пристроїв

Менеджер пристроїв доступний тільки суперкористувачу та формує форму редагування (рис.2), додання та видалення пристроїв двох типів: бінарний та десятковий.



Рис. 2. Менеджер пристроїв.

Створювані пристрої безпосередньо розташовуються у переліку атрибутів параметру конкретно взятої підсистеми контролеру «ZigBee» модуля джерела даних ModBus (/sub_DAQ/mod_ModBus/cntr_ZegBee/). Формат запису атрибута має вигляд:


Крім безпосередньо давачів здійснюється конфігурація та формування порушень у вигляді тексту процедури. Програма формування розташовується у атрибут «var», параметру контролера порушень /sub_DAQ/mod_JavaLikeCalc/cntr_alarms/prm_rules. Атрибут «var» містить XML дерево вигляду:

<ALARMS>
  <it id = "temperature.cond1">
    if(x&lt;10) err = &quot;Низька температура: &quot;+x+&quot; &lt; 10&quot;;
  </it>
</ALARMS>


У Відповідності з цим XML-деревом здійснюється формування порушень та надсилання SMS-повідомлення підписаним користувачам у задачі контролеру /sub_DAQ/mod_JavaLikeCalc/cntr_alarms, яка виконується з періодом 1 хвилина.


SMS-повідомлення надсилаються через послідовний транспорт /sub_Transport/mod_Serial/out_GSM та за посередництвом користувацького SMS-протоколу (/sub_Protocol/mod_UserProtocol/up_SMS).


Передбачено також функцію відкладеної видачі керуючої дії. Для цього користувач встановлює потрібний час, у вигляді: {Min}:{Sec}. Обробка відкладеного керування здійснюється у контролері /sub_DAQ/mod_JavaLikeCalc/cntr_timers за посередництвом встановлення атрибуту «var», параметру «rules»; запитами у вигляді XML дерева:

<TIMERS>
  <timer id="temperature.tGhost1" tm="60" user="root">20</timer>
  <timer id="temperature.cond1" tm="10" user="root">0</timer>
</TIMERS>

2.3. Підсистеми

Всі підсистеми візуалізації обслуговуються скриптом /sub_DAQ/mod_JavaLikeCalc/lib_web/devMon. В цьому скрипті здійснюється обробка запитів від скрипту динамічної візуалізації Web-браузера та передача йому даних про пристрої підсистеми, потрібні для візуалізації (рис.3). Дані про пристрої передаються у відповідності з правами доступу користувача який увійшов.



Рис. 3. Керування підсистемою.

Конфігурація давачів читається з параметру, відповідного до підсистеми, контролера «ZigBee» (/sub_DAQ/mod_ModBus/cntr_ZegBee). Значення читаються та записуються у атрибути давачів цих параметрів або через контролер відкладеного керування.


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


Зв'язок контролеру «ZigBee» здійснюється через послідовний вихідний транспорт /sub_Transport/mod_Serial/out_ZegBee.

2.4. Менеджер користувачів

Менеджер користувачів (рис.4) призначено для створення, видалення та редагування облікових записів звичайних користувачів.



Рис. 4. Менеджер користувачів.

Користувачі умовно поділяються на адміністраторів та простих користувачів. Ідентифікація користувача як адміністратора, у системі OpenSCADA, здійснюється включенням його до групи «WebRoot» (/sub_Security/grp_WebRoot). Звичайний користувач включається до групи «Web» (/sub_Security/grp_Web).


У системі OpenSCADA у кожного користувача (/sub_Security/usr_test1/) є текстове поле опису, яке, у даному випадку, слугує для збереження його спеціалізованих параметрів у вигляді:

TEL: +380679859815
SMS: true
Report: false
sub_access: --
sub_friend: --
sub_light: --
sub_tech: --
sub_temperature: rw
sub_water: --


У випадку із адміністратором записи прав доступу до підсистем відсутні, але присутні загальносистемні параметри на зразок часу життя сеансу (/sub_Protocol/mod_HTTP).

2.5. Повідомлення

Перелік повідомлень формується, виходячи з переліку активних порушень за їх категоріями «ALARM:House:*» у вигляді таблиці з часом, категорією, рівнем та повідомленням порушення (рис.5).



Рис. 5. Повідомлення.

2.6. Звіти

У формуванні звіту визначається діапазон часу та обираються типи повідомлень. Передбачена генерація повідомлень для типів:


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



Рис. 6. Звіти.

Посилання

Referring pages: HomePageUk/Using/SmartHouse


 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]