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 2011-09-02 12:48:50..

Автоматизація жилого дому - "Розумний дім" (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, 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), додання та видалення пристроїв двох типів: бінарний та десятковий.


file:devMan.png
Рис. 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). Данные об устройствах передаются в соответствии с правами доступа вошедшего пользователя.


file:subCntr.png
Рис. 3. Управление подсистемой.

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


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


Связь контроллера «ZigBee» осуществляется через последовательный исходящий транспорт /sub_Transport/mod_Serial/out_ZegBee.

2.4. Менеджер пользователей

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


file:usersMan.png
Рис. 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).


file:messages.png
Рис. 5. Сообщения.

2.6. Отчёты

В формировании отчёта указывается временной диапазон и выбираются типы сообщений. Предусмотрена генерация сообщений для типов:


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


file:report.png
Рис. 6. Отчёты.

Action source page doesn't exist yet(/Home Page Uk / Using / Smart House / matrials?)

Ссылки

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]