ZigBee і Intel Edison: практика автоматизації переговорних кімнат

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


Ми створили інтелектуальну систему бронювання переговорних кімнат (Smart Conference Room System, SCR) для того, щоб допомогти всім бажаючим з цими проблемами впоратися.

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

Система побудована на основі наступних апаратних компонентів:

  • Плата Intel Edison.
  • Плата розширення Arduino.
  • Модуль XBee ZB S2 ZigBee.
  • Android-смартфон.
  • Push-сервер.
  • Датчик освітленості ZigBee.
  • Інфрачервоний датчик присутності ZigBee.
  • Інтелектуальна розетка ZigBee.
  • Сигналізація ZigBee.
ZigBee – це специфікація набору високорівневих комунікаційних протоколів, які використовуються для створення персональних мереж, в основі яких – невеликі малопотужні цифрові передавачі. Протоколи ZigBee базуються на стандарті IEEE 802.15.4 і призначені для використання у вбудованих пристроях, які вимагають низького енергоспоживання і здатні нормально працювати при невисоких швидкостях передачі даних. Мережа, побудована на основі ZigBee, буде дуже економічною в плані споживання енергії. Для того, щоб пройти сертифікацію ZigBee, пристрій повинен працювати від батареї не менше двох років. Типові застосування таких пристроїв – це домашня автоматизація. Наприклад, інтелектуальні датчики присутності, системи освітлення, терморегулятори.

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

Важливий аспект платформи Arduino – це стандартизовані коннектори, які дозволяють підключати до основного блоку з мікроконтролером безліч взаємозамінних модулів розширення, відомих як шилды (shields). Плата Intel Edison також підтримує Arduino. Це робить Edison сумісним з тисячами модулів для Arduino, наприклад, з XBee ZigBee.

XBee – це назва марки сімейства радіомодулів від Digi International, що випускаються в стандартних форм-факторах. XBee ZB підтримує протокол ZigBee PRO для створення мереж з комірчастою топологією.

З програмної точки зору система складається з наступних частин:

  • Серверне ПЗ.
  • Додаток для Android-смартфона.
  • Прошивка для Intel Edison.
Ось як, у найзагальніших рисах, виглядає робота Smart Conference Room System.


Схема роботи SCR

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

Intel Edison з комутаційною платою Arduino – це ядро системи. Так як Edison сумісний з Arduino, пристрої, які можуть працювати з Arduino, підходять і для Edison. Наприклад, це радіомодуль XBee ZB S2, який підключається до Edison з допомогою плати розширення Arduino.


Intel Edison і радіомодуль XBee

В якості Push-сервера ми використовували Windows-планшет Fujitsu STYLISTIC Q702 з процесором Intel Core i5-3427U (частота 1.80 ГГц), оснащений 4 Гб оперативної пам'яті.


Планшет Fujitsu STYLISTIC Q702

Для того, щоб з нашою системою було зручніше працювати, ми створили для неї мобільний Android-додаток. Його випробування проводилися на смартфоні Lenovo K900. Він оснащений процесором Intel Atom Z2580 (частота 2 ГГц і 2 Гб оперативної пам'яті.


Смартфон Lenovo K900

Роль координатора ZigBee грає радіомодуль XBee ZB S2, виконаний у форм-факторі плати розширення для Arduino і відповідний вимогам протоколу ZigBee. Він керує підключеними до нього ZigBee-датчиками.


Радіомодуль XBee ZB S2

У проекті задіяний датчик освітленості Netvox Z311X. Він відповідає вимогам стандарту ZigBee і відповідає за вимірювання рівня освітленості в приміщенні.


Датчик освітленості

В якості датчика присутності використовується інфрачервоний сенсор Netvox ZB11D. Він так само підтримує роботу по протоколу ZigBee і грає роль кінцевого мережевого пристрою.


Датчик присутності

У системі використовується модуль сигналізації Netvox Z602A. Це пристрій поєднує в собі засоби звукового та світлового оповіщення і застосовується в екстрених ситуаціях. Модуль базується на стандарті ZigBee HA.


Сигналізація

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


Інтелектуальна розетка

Апаратна інфраструктура
Ось як виглядають зв'язку між апаратним забезпеченням, задіяним у проекті.


Схема пристрою системи

Апаратну архітектуру системи можна розбити на наступні чотири частини:

  • Смартфон.
  • Push-сервер.
  • Шлюз на базі Intel Edison.
  • Набір ZigBee-датчиків.
Ці апаратні блоки орієнтовані на три основні функції SCR.

  1. Спостереження за кімнатою і оцінка ситуації. ZigBee-датчики освітленості і присутності, в режимі реального часу, постачають інформацію про ситуацію в кімнаті шлюзу на базі Intel Edison. Для зв'язку датчиків і шлюзу використовується мережі ZigBee. Edison аналізує свідчення, визначає, чи є хто-небудь у кімнаті, а потім відправляє свої висновки push-сервера по Wi-Fi.

  2. Бронювання кімнати та інтелектуальний розклад. Співробітники можуть резервувати переговорні, які, за оцінкою системи, вільні. Робиться це за допомогою Android-смартфона. Якщо доступних переговорних немає, співробітник може вибрати зайняту кімнату і включити режим очікування звільнення переговорної. Як тільки система, зокрема – Intel Edison, вважатиме, що обрана кімната вільна, повідомлення про це надійде на сервер, який відправить повідомлення додатку на смартфоні.

  3. Віддалений доступ і керування. Програми можуть запитувати відомості про стан зарезервованої кімнати по Wi-Fi через push-сервер для того, щоб керувати пристроями в кімнаті, наприклад, включати і вимикати світло, і отримувати в режимі реального часу, відомості з ZigBee-датчиків.
Програмне забезпечення
Як ми вже говорили, багато ресурси організацій, такі, як переговорні кімнати, використовуються не найефективнішим чином. Особливо це відноситься до великим компаніям. Наприклад, співробітник А, з допомогою корпоративного веб-сайту, зарезервував кімнату для нарад з 8.00 до 10.00. Зустріч закінчилася в 9.00, тобто, з цього моменту приміщення вільно, їм цілком може скористатися хтось ще. Припустимо, що в цей же час співробітник, користуючись тим же сайтом, шукає вільну кімнату. Але ту, яку резервував співробітник, вибрати не може, адже в базі даних вона значиться як зайнята, хоча за фактом вільна. Тому працівникові доведеться шукати інший варіант, а звільнена кімната буде пустувати.

На малюнку нижче показана структурна схема програмного рішення.


Архітектура програмного рішення

Push-сервер
В якості push-сервера ми використовували GlassFish 4.0. Ось, як виглядає архітектура сервера.


Архітектура сервера

Системна діаграма сервера показана нижче. Коли Edison, користуючись відомостями з ZigBee-датчиків, визначить, що стан приміщення змінилося з «вільно» на «зайнято» або навпаки, він сповістить про це сервер. Сервер, у свою чергу, змінить відповідний запис у базі даних, а потім, якщо кімната порожня, відправить повідомлення Android-додатком.


Робочий процес Push-сервера

Intel Edison і ZigBee
Arduino інтерфейс між Intel Edison і координатором XBee емулюється у вигляді послідовного порту. Додаток, запущене на Intel Edison, працює як ZigBee-шлюз. З його допомогою ми можемо відправляти команди ZigBee-датчикам і приймати відповіді від них.
Координатор ZigBee, крім того, відповідає за передачу інформації з датчиків push-сервера.


Пристрій стека ZigBee Arduino

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

Класи стека ZigBee
Клас
Функція
XBeeAddress
Базовий клас адреси пристрою ZigBee
XBeeAddress64
64-бітний IEEE-адресу пристрою ZigBee
XBeeAddress16
16-бітний мережевий адресу пристрою ZigBee
Payload
Корисна навантаження командного кадру ZigBee
ExplicitAddressCommand
Командний кадр ZigBee, використовуваний в специфікації домашньої автоматики
ExplicitAddressCommandResponse
Відповідь на команду на явно заданий адресу
XBeeSensor
Базовий клас ZigBee-датчика
XBeeLightSensor
Датчик освітленості ZigBee
XBeeInfraSensor
Датчик присутності ZigBee
XBeeAlarm
Сигналізація ZigBee
Основні функції ArduinoXBee
Головний клас ArduinoXBee – це XBeeCoordinator. Цей клас відповідає за управління ZigBee-датчиками. Його основні завдання полягають у зборі інформації з датчиків і в надсилання їм команд для віддаленого управління їх поведінкою. Ось опис функцій, що застосовуються для роботи з датчиками.

Int getLightValue(XBeeLightSensor lightSensor). Ця функція використовується для отримання інформації з датчика освітленості. На її вхід подається об'єкт датчика освітленості, на виході отримуємо ціле число в діапазоні від 0 до 65535.

bool getInfraValue(XBeeInfraSensor infraSensor). Функція отримує свідчення заданого датчика присутності. При виклику їй передається об'єкт датчика присутності, а вона повертає логічне значення. True, вказує на те, що в кімнаті хтось є, False – на те, що кімната порожня.

void turnOnAlarm(XBeeAlarm alarm) та void turnOffAlarm(XBeeAlarm alarm). Ці функції, відповідно, включають і вимикають сигналізацію. При їх виклик використовується об'єкт, що символізує потрібний пристрій, вони нічого не повертають.

void turnOnSwitch(XBeeSmartPlug plug) та void turnOffSwitch(XBeeSmartPlug plug). Ці функції дозволяють включати і відключати подачу електрики інтелектуальними розетками. При виклику функцій їм передають об'єкт, відповідний розетки, вони не повертають нічого.

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


Системна діаграма роботи з Android-додатком

Користувальницький інтерфейс Android-додатки
Додаток для Android ми назвали «Smart Conference Room System». Користуючись ним, співробітник організації може забронювати переговорну і управляти зарезервованими кімнатами. Ось, як виглядає головний екран програми.


Головний екран програми

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

Використовуючи команду My Scheduling, користувачі можуть бронювати переговорні (синій колір використовується для вказівки на те, що кімната вільна, сірий – на те, що вже заброньована). Якщо кімната не вільна, користувач може включити режим очікування її звільнення.


Бронювання кімнати

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


Управління розкладом

Коли система виявляє, що якась кімната звільнилася, вона розсилає повідомлення всім користувачам, які чекають її звільнення. Ось, як виглядає таке повідомлення.


Повідомлення про звільнення кімнати

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

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

Багато вже зроблено, але ми, проте, все ще стикаємося з деякими складнощами. Це стосується різних аспектів роботи системи. Так, якщо говорити про її внутрішній устрій, про стеку, на якому вона заснована, це обмеження функцій API стека і всього комплексу. Крім того, потрібно поліпшити стабільність роботи системи та інші аспекти її функціонування. Ми плануємо створення наступної версії Smart Conference Room System, яка буде більш функціональною, стабільної і зручною, а значить дозволить краще вирішувати її основне завдання: оптимізацію використання переговорних кімнат в організаціях.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.