Под термином «умный дом» (часто встречается и термин «интеллектуальное здание») подразумевают современные офисные и жилые здания, дома, квартиры с единой автоматизированной системой управления и мониторинга всех систем (освещения, микроклимата, безопасности, коммуникационных систем) и сетей. Основные задачи умного дома – прежде всего повышение безопасности и комфорта его обитателей, а также ресурсосбережение. Термин «интеллектуальное здание» более употребителен, когда речь идет о крупных офисных зданиях или многоквартирных жилых домах. А термин «умный дом» больше подходит к частным домам, квартирам или небольшим офисам.
В последние годы резко возросло число мобильных устройств (смартфонов и планшетов) с высокими техническими характеристиками. Кроме того, высокими темпами развивается мобильный Интернет и глубже в нашу жизнь проникают облачные вычисления. Данные тенденции все больше соответствуют концепции «Интернет вещей». Согласно одному из самых цитируемых определений, под понятием «Интернет вещей» (Internet of Things) подразумевается сеть физических объектов («вещей»), содержащих встроенную технологию, которая позволяет этим объектам измерять параметры собственного состояния или состояния окружающей среды, использовать и передавать эту информацию [1]. Под вещами понимаются персональные компьютеры, мобильные устройства, датчики и управляемые устройства (светильники, жалюзи, системы регулирования микроклимата и т.д.).
Применительно к системам умного дома концепция «Интернета вещей» может быть реализована путем передачи данных с множества используемых в системе датчиков в облако, где они будут обрабатываться и храниться, а также путем передачи команд от пользователя на конечные управляемые устройства. В свою очередь, пользователю будет доступен интерфейс (через браузер или мобильное приложение), предназначенный для мониторинга данных с датчиков, а также для управления устройствами. Таким образом, пользователи получат инструмент удаленного управления и мониторинга своей системы умного дома. Основные преимущества использования облака в системе умного дома следующие:
– в любое время и в любом месте пользователю будет доступна вся информация об обстановке в доме;
– в случае присутствия среди жильцов умного дома людей с ограниченными возможностями через облако можно обеспечить передачу данных с медицинских устройств напрямую лечащему врачу [2];
– сама система умного дома становится более гибкой, намного легче будет интегрировать новые устройства, лишь обеспечив им доступ в Интернет, а не перестраивая всю систему заново;
– через облачный сервер возможно предоставление единого интерфейса управления системами умного дома в случае использования устройств от разных производителей с различными протоколами передачи данных [3].
Данная статья является продолжением работы [3], в которой была затронута тема применения облачных вычислений в системах умного дома и определена общая структура построения подобной системы; в ней описывается разработка уже полноценной архитектуры системы управления умным домом, интегрированной в облако.
Аппаратная архитектура системы управления умным домом, интегрированной в облако
Создание умного дома невозможно без системы управления им (автоматизированной системы управления зданием). При построении системы управления обычно выделяют три уровня автоматизации [4].
1. Уровень управления и мониторинга. На данном уровне обеспечиваются управление и мониторинг всех систем автоматизируемого объекта через специальный графический пользовательский интерфейс, организованный на базе компьютерных средств и специального программного обеспечения.
2. Уровень автоматического управления. Основной компонент данного уровня – контроллер (специализированное устройство, к которому подключаются различные датчики и управляемые устройства). Контроллер предназначен для получения данных с датчиков и для управления исполнительными механизмами (приводы, задвижки, реле) подключенных устройств. Иногда к контроллеру применяется термин «модуль расширения», но только не надо путать его с модулями расширения, предназначенными для подключения к контроллерам с целью увеличения количества портов устройства. Если рассматривать проводные протоколы автоматизации, то количество подключаемого конечного оборудования весьма ограничено. В таком случае для подключения большого количества датчиков и управляемых устройств понадобится множество контроллеров.
3. Уровень конечного оборудования. Данный уровень включает в себя датчики и управляемые устройства. Датчики предназначены для отслеживания различных параметров (температура, освещенность и т.д.). К ним следует отнести и обычные кнопки, используемые для управления исполнительными устройствами (сигнал с них передается через контроллер). Управляемые устройства – это непосредственно устройства, управление которыми осуществляется системой умного дома (например, устройства освещения, отопления, вентиляции и т.д.).
При внедрении функции удаленного управления системой умного дома через облако автором предлагается добавить один новый уровень (облачный сервер) и разделить уровень управления и мониторинга на два (на домашний сервер и устройства управления). На рисунке 1 представлена предлагаемая аппаратная схема системы управления умным домом, интегрированной в облако.
Таким образом, получим следующие уровни автоматизации:
– удаленное управление и мониторинг через мобильные и стационарные устройства;
– обеспечение удаленного управления (облачный уровень); основной компонент – облачный сервер;
– внутреннее управление, мониторинг и связь с облаком; основной компонент – домашний сервер;
– автоматическое управление;
– конечное оборудование.
Рассмотрим подробнее компоненты добавленных уровней автоматизации.
Устройства управления могут быть мобильными и стационарными.
Мобильные устройства – смартфоны или планшеты на мобильных операционных системах Android, iOS или Windows Phone. С мобильных устройств возможны передача команд на облачный сервер, а также получение оттуда информации о состоянии датчиков. Отправка и получение данных могут осуществляться либо через нативное приложение, либо через браузер при заходе на сайт, предоставляющий услуги облачного сервиса. Кроме того, при нахождении пользователя непосредственно в автоматизированном доме можно организовать взаимодействие мобильных устройств по домашнему Wi-Fi или через Blutooth.
Стационарные устройства – персональные компьютеры, ноутбуки. Работа с системой умного дома возможна либо через облачный сервис, либо по локальной сети через домашний сервер.
Облачный сервер предназначен для хранения данных о состоянии датчиков и устройств в БД. Он выступает также в качестве посредника между удаленными устройствами управления и домашним сервером. Данная функция осуществляется путем передачи команд, например, с мобильных устройств в облако, где они обрабатываются и передаются дальше на домашний сервер.
Домашний сервер предназначен для получения команд от облачного сервера и их дальнейшей передачи на контроллеры, а также передачи в обратном порядке данных с датчиков, поступающих на контроллер. Через домашний сервер также обеспечивается управление системой умного дома по локальной сети как с самого домашнего сервера или другого домашнего компьютера, так и с мобильных устройств по Wi-Fi и Bluetooth. В роли домашнего сервера можно использовать обычный персональный компьютер или тонкий клиент.
Существует и вариант отказа от домашнего сервера. Большинство производителей устройств автоматизации, использующихся в системах умного дома, выпускают широкий спектр устройств, среди которых есть контроллеры, способные напрямую получать доступ к сети Интернет. В этом случае облачный сервер может напрямую взаимодействовать с управляющими контроллерами. Что касается управления такими контроллерами непосредственно из дома, то в данном случае осуществлять взаимодействие с ними можно по локальной сети.
Программная архитектура системы управления умным домом, интегрированной в облако
На основе представленной выше аппаратной составляющей архитектуры системы управления умным домом, интегрированной в облако, рассмотрим программную составляющую. Она включает следующие уровни.
1. Серверная часть облака: веб-сервер, БД, скрипты для обработки и передачи данных.
2. Клиентская часть облака, предоставляющая графический пользовательский интерфейс управления и мониторинга. Строится на трех основных технологиях создания веб-приложений: HTML, CSS и JavaScript. На рисунке 2 приведен пример веб-интерфейса для управления и мониторинга системы умного дома.
3. Серверное домашнее приложение. Комплектация аналогична серверной части облака.
4. Клиентское домашнее приложение. Комплектация аналогична клиентской части облака.
5. Мобильное приложение.
6. Программа для контроллера.
В целях эффективной работы предлагаемой системы управления умным домом необходимо обеспечить надежное взаимодействие между облаком и домашним сервером, а также между удаленными устройствами управления и облаком.
Для обеспечения взаимодействия в сети Интернет различных приложений и узлов существует технология веб-служб (веб-сервисов). В основном применяются два способа реализации веб-служб: протокол SOAP и архитектурный стиль REST. SOAP представляет собой протокол обмена структурированными сообщениями в формате XML в распределенной вычислительной среде [5]. REST является архитектурным стилем, при котором взаимодействие компонентов распределенного приложения в сети Интернет осуществляется посредством HTTP-запросов (в основном GET или POST) [6]. Для обозначения веб-сервисов, реализуемых с использованием HTTP и принципов REST, применяется термин «веб-сервис RESTful» [7]. Стиль REST по сравнению с протоколом SOAP обладает целым рядом преимуществ, главные из которых следующие.
· Кэширование. Для запроса данных в REST-архитектуре используются GET-запросы. В этом случае ресурсы, возвращаемые в ответ на запрос GET, можно кэшировать множеством разных способов, что увеличивает скорость и масштабируемость [6].
· Функциональная совместимость. Для некоторых языков и сред до сих пор нет инструментальных средств SOAP. Для REST требуется только доступность библиотеки HTTP для большинства операций [6]. Встраивание REST-сервисов в Интернет-сервис – относительно простой процесс по сравнению с усилиями, необходимыми для развертывания инфраструктуры и кода с целью поддержания SOAP-коммуникаций [8].
· Время обработки запросов в архитектуре REST гораздо меньше, чем при обработке сообщений, передаваемых через SOAP, соответственно при передаче больших объемов данных возрастает энергоэффективность системы умного дома [9].
Как уже было сказано, REST-архитектура – это осуществление HTTP-запросов. Два основных HTTP-запроса – это GET и POST.
Метод GET предназначен для получения ресурса с указанным URL. Получив запрос GET, сервер должен прочитать указанный ресурс и включить код ресурса в состав ответа клиенту. URL ресурса может указывать на исполняемый код программы, который при соблюдении определенных условий должен быть запущен на сервере. В этом случае клиенту возвращаются данные, сгенерированные в процессе выполнения кода [10].
Метод POST предназначен для передачи данных на сервер [10].
В данном случае запрос GET будет использоваться для запроса данных о состоянии устройств, входящих в систему умного дома. В свою очередь, передача управляющих команд будет осуществляться посредством POST-запроса.
Для передачи данных через HTTP-запросы и получения ответа необходим легкий и удобный формат обмена данными. Как правило, передача данных в веб-службах осуществляется в одном из текстовых форматов: XML и JSON. В [11] проведено сравнительное исследование этих двух форматов. Установлено, что передача данных в формате JSON осуществляется намного быстрее, чем в формате XML. Кроме того, данные, представленные в формате JSON, гораздо легче обрабатывать. Также в большинстве современных языков программирования присутствует поддержка этого формата. JSON-текст представляется в одной из двух структур: объект – неупорядоченный набор пар ключ/значение, массив – упорядоченная коллекция значений [12].
Приведем пример сообщения в формате JSON, которое передает команду для отключения светильника: {"id": "1_1_1", "value": "off"}. В этом примере данные передаются как объект, в роли которого выступает светильник. Параметр id означает уникальный номер устройства в системе, а value – значение, в которое нужно установить устройство. Для передачи команд сразу для нескольких устройств следует использовать массив, например [{"id": " 1_1_1", "value": "off"}, {"id": "1_1_2", "value": "off"}]. В первых фигурных скобках указаны параметры первого устройства, во вторых – второго. Массивы удобно использовать для получения данных с множества датчиков. Например, данные с температурных датчиков в формате JSON: [{"id": "1_1_4","value": "24.7"}, {"id": "1_2_3", "value": "25.2"}, {"id": "1_3_2", "value": "24.1"}].
Таким образом, для организации взаимодействия облачного и домашнего серверов и мобильных устройств управления будем использовать RESTful веб-сервис, где запросы и передача данных будут осуществляться в формате JSON через HTTP-запросы.
Алгоритм выполнения функции удаленного управления
После определения способа организации передачи команд в системе управления умным домом сформируем базовый алгоритм удаленного управления.
1. Установление соединения с облачным сервисом с мобильного или веб-приложения.
2. Авторизация пользователя на облачном сервисе. Открытие сессии.
3. Проверка подключения системы управления умным домом к облачному сервису.
4. Загрузка графического пользовательского интерфейса для управления умным домом.
5. Отправка запроса на облачный сервер о состоянии систем умного дома (получение данных с датчиков и передача информации о состоянии управляемых устройств). Запрос о состоянии систем осуществляется в течение всей сессии. В зависимости от типов отслеживаемых параметров устанавливается разное время для разных систем. Например, данные с температурных датчиков можно запрашивать раз в 30 минут, а данные о состоянии светильников – раз в несколько секунд.
6. Отправка команды для управления устройствами, входящими в систему умного дома. Получение ответа о выполнении команды.
7. Протоколирование событий на облачном сервере при каждом запросе.
8. Закрытие сессии.
В заключение следует отметить, что в данной работе была предложена архитектура системы управления умным домом, интегрированной в облачную среду. Интеграция умного дома в облако призвана обеспечить удаленное управление всеми системами дома. Были рассмотрены аппаратная и программная составляющие предлагаемой архитектуры. На основе описанной в статье архитектуры возможно построение гибкой системы управления умным домом, поддерживающей различные протоколы автоматизации зданий.
Поскольку подключение каких-либо устройств к Интернету – это всегда высокий уровень опасности, необходимо разработать надежные методы обеспечения защиты передачи данных для систем умного дома, интегрируемых в облако. Рассмотрение этого вопроса автор планирует в дальнейших исследованиях.
Литература
1. Найдич А. «Интернет вещей» – реальность или перспектива? URL: http://compress.ru/article.aspx?id=24290 (дата обращения: 13.10.2014).
2. Baoan Li, Jianjun Yu. Research and application on the smart home based on component technologies and Internet of Things. Procedia Engineering, 2011, vol. 15, pp. 2087–2092.
3. Николаев П.Л. Применение облачных технологий в системах умного дома // Молодой ученый. 2014. № 13. С. 37–39.
4. Практика применения систем автоматизации и диспетчеризации в гостиничных комплексах. URL: http://www.stroimhotel.ru/files/pdf/metodology/metod/11.pdf (дата обращения: 20.10.2014).
5. SOAP. Версия 1.2. Часть 0: учебник для начинающих. URL: http://www.w3.org/2002/07/soap-translation/russian/part0. html (дата обращения: 24.10.2014).
6. Фландерс Дж. Введение в службы RESTful с использованием WCF. URL: http://msdn.microsoft.com/ru-ru/magazine/ dd315413.aspx (дата обращения: 24.10.2014).
7. И М.Х., Дун Ф.В. Создаем Web-сервисы RESTful при помощи Spring 3. URL: http://www.ibm.com/developerworks/ru/ library/wa-spring3webserv/index.html (дата обращения: 24.10.2014).
8. Маквитти Л. REST как альтернатива SOAP. URL: http://www.ccc.ru/magazine/depot/07_01/read.html?0502.htm (дата обращения: 24.10.2014).
9. Yazar D., Dunkels A. Efficient Application Integration in IP-based Sensor Networks. In First ACM Workshop On Embedded Sensing Systems For Energy-Efficiency In Buildings (BuildSys), Berkeley, California, 2009. URL: http://dunkels.com/adam/ yazar09efficient.pdf (дата обращения: 25.10.2014).
10. Интеграция и взаимодействие в сети Веб. URL: http://www.intuit.ru/studies/courses/485/341/lecture/8211 (дата обращения: 25.10.2014).
11. Nurseitov N., Paulson M., Reynolds R., Izurieta C. Comparison of JSON and XML Data Interchange Formats: A Case Study. 22nd Intern. Conf. on Computer Applications in Industry and Engineering 2009 (CAINE-2009), 2009, pp. 157–162.
12. Введение в JSON. URL: json.org/json-ru.html (дата обращения: 25.10.2014).