интернет вещей Интернет вещей для энтузиастов: метеостанция с визуализацией Интернет вещей развивается сегодня благодаря не только компаниям, предлагающим решения, специально предназначенные для работы в Интернете вещей, но и энтузиастам, которым остро необходимы новые инструменты работы с взаимодействующими «умными» вещами. Ключевые слова: Интернет вещей Keywords: Arduino, Internet of Things, InterSystems Эдуард Лебедюк «У мные» вещи обычно содержат сенсоры для получения данных, исполнительные устройства для влияния на внешнюю среду, модуль связи для передачи данных в центр управления сетью и управляющий микроконтроллер. Еще совсем недавно для создания подобных устройств необходимо было знать основы микроэлектроники, уметь паять и обладать различными навыками работы с «железом», однако с появлением решений наподобие открытой аппаратно-программной платформы Arduino ситуация изменилась. Ориентированные на непрофессиональных разработчиков инструменты построения систем автоматики позволяют снизить порог вхождения в сферу программирования микроконтроллеров. Наличие элементарных средств разработки, простота создания схем без пайки и большой выбор готовых совместимых модулей вызвали пополнение армии энтузиастов, которым по плечу генерировать новые идеи и создавать устройства, способные работать в среде Интернета вещей [1]. Однако разработка устройств на базе Arduino — только часть работы. Нужно еще обеспечить хранение показаний, получаемых от многочисленных сенсоров, сбор статистики и визуализацию данных, поэтому следующим шагом после создания собственно устройства является организация сохранения данных во внешней базе. Для этого можно использовать карты памяти, передачу через Ethernet и Wi-Fi на удаленные носители и т. п., но все это требует либо дополнительного оборудования, либо написания большого объема кода. Минимально необходимая конфигурация — прямая связь через COM-порт, по которому одновременно может осуществляться и питание устройства. Одним из вариантов выбора СУБД, а также сервера приложений может быть InterSystems Cachе´, которая работает с различными типами устройств, получая данные напрямую через COM-порт без какихлибо промежуточных уровней (веб-сервер, файлы и пр.). Это важно, так как большинство устройств Интернета вещей [2], как правило, имеют ограниченный объем памяти для хранения программ. СУБД работает с такими физическими и логическими устройствами, как диски, магнитные ленты, файлы, терминалы, TCP- и COM-порты и т. д., а поставляемый вместе с Cachе´ модуль аналитики BI DeepSee позволяет визуализировать полученные данные. Взаимодействие с СУБД Cachе´ осуществляется средствами языка Cachе´ ObjectScript [3] и выполняется в пять этапов: с помощью команды OPEN регистрируется факт получения текущим процессом доступа к устройству; устройство инициируется как текущее с помощью команды USE; по команде READ данные считываются с устройства, а по команде WRITE передаются на устройство; переключение на другое устройство осуществляется командой USE; работа с устройством завершается по команде CLOSE. На практике этот процесс выглядит так. На Arduino собирается схема для чтения данных из COM-порта, включающая светодиод на указанное число миллисекунд. Для работы с такой схемой требуется простая программа на Cи, принимающая данные по COM-порту и при передаче новой строки интерпретирующая ее как число миллисекунд, на которые включается светодиод. Для подключения этой схемы к СУБД Cachе´ нужно написать метод SendSerial обращения к COM-порту [4]. Затем к Arduinо подключается клавиатура и начинается передача данных, например, для обеспечения дополнительной аутентификации пользователя с помощью делегации авторизации — механизма, позволяющего получать сведения для авторизации пользователя из внешних источников вроде «умных» вещей или би- Сервер «Умная» вещь СУБД Cachе´ База данных телемерии Wi-Fi Ethernet BI Deep See Сеть com порт Ethernet Метеостанция на Arduino Прошивка (Си-код) Датчик освещенности «Умная» вещь Датчики температуры и влажности Рис. 1. Пример подключения метеостанции к Интернету вещей 34 • Открытые системы • 01/2016 • www.osmag.ru интернет вещей ометрического сканера отпечатков пальцев. В [4] приведен пример кода на Cи для подключения к COM-порту и отправки по нему символов, нажатых на клавиатуре, а в СУБД Cachе´ требуется теперь написать соответствующий метод ReceiveOneLine подключения к порту и получения строки. Все эти действия можно считать подготовкой для сбора «умного» устройства, способного работать в среде Интернета вещей. В качестве примера такого устройства можно рассмотреть метеостанцию, собирающую базовую информацию об окружающей среде: температуру, влажность и освещенность. Такие устройства могут применяться в «умных» домах, которым требуется знать температуру за окном для управления различными системами дома. На рис. 1 приведена примерная схема подключения метеостанции к Интернету вещей. Для сборки метеостанции используются фоторезистор (датчик освещенности) и датчик DHT11 для измерения температуры и влажности. На рис. 2 приведена схема подключения этих сенсоров к модулю Arduino. После загрузки кода на Arduino модуль начинает посылать данные на COM-порт в формате H=34.0;T=24.0;LL=605. Где H — влажность (от 0 до 100%); T — температура в градусах Цельсия; LL — освещенность Рис. 3. Пример визуализации данных от метеостанции в условных единицах (от 0 до 1023). Всю эту телеметрию надо загрузить в СУБД Cachе´ — для этого потребуется хранимый класс Arduino.Info, записывающий полученные от метео- Рис. 2. Метеостанция в сборе станции сведения и время их получения. В Arduino.Info можно ства благодаря обработке всех доступных еще добавить метод ReceiveSerial, который сведений. И все же сколь бы «умными» ни в бесконечном цикле принимает данные в были устройства, успех будет возможен формате Arduino и преобразует их в объ- лишь при условии массовости их проникекты класса Arduino.Info. После этого надо новения во все сферы жизни, и тогда козапустить модуль Arduino и выполнить на личество перейдет в качество. терминале метод ReceiveSerial: *** do ##class(Arduino.Info).ReceiveSerial() СУБД InterSystems Cachе´ может служить Для визуализации полученных данных основой для создания развитой инфраможно использовать модуль BI DeepSee из структуры Интернета вещей, позволяя СУБД Cachе´, а также открытые утилиты: обеспечить связь с устройствами различREST API MDX2JSON (предоставление ин- ных типов, что открывает широкие возможформации об объектах DeepSee в формате ности для организации взаимодействия JSON) и DeepSee Web (клиент для визуали- с прикладными устройствами и управзации данных) [5]. При этом разработчику ления ими. Аналитические возможности не обязательно знать SQL или разбираться этой СУБД позволяют в реальном времев тонкостях настройки СУБД — имеется ни визуализировать данные, полученные готовый класс с данными (в нашем при- от устройств. Чем шире будет сеть таких мере это Arduino.Info), свойства которого «умных» устройств, созданных в том чивыбираются в мастере визуализации в ка- сле и энтузиастами, тем больше появится честве мер и измерений OLAP-куба. Затем возможностей для анализа и визуализации на основе OLAP-куба строится сводная различной информации, тем ближе бутаблица — также в визуальном средстве дет индустрия к решению главной задачи с помощью простого «перетаскивания» Интернета вещей — широкой интеграции на строки и столбцы необходимых мер и технологий с повседневной жизнью. измерений куба. На последнем этапе выбирается один из способов визуализации: Литература график, таблица, круговая диаграмма, вре- 1. Михаил Борисов. Доступный мониторинг производственных процессов // Открытые менной ряд и др. Все данные, полученные от метеостан- системы.СУБД. — 2015. — № 3. — С. 13–15. ции, могут быть сведены в одну панель URL: http://www.osp.ru/os/2015/03/13046892 (рис. 3), содержащую графики яркости (дата обращения: 18.03.2016). (хорошо виден рассвет в районе 5:50), тем- 2. Рой Уонт, Бил Шилит, Скотт Дженсон. Механизмы Интернета вещей // Открытые пературы и влажности. Метеостанции — лишь полезная вещь системы.СУБД. — 2015. — № 1. — С. 38–42. для дома, но с привязкой к географиче- URL: http://www.osp.ru/os/2015/01/13045328/ ским координатам такие устройства мо- (дата обращения: 15.03.2016). гут непрерывно передавать информацию 3. URL: http://docs.intersystems.com/ метеорологам, которые получат возмож- cache20152/csp/docbook/DocBook.UI.Page. ность создавать точные прогнозные мо- cls?KEY=GIOD_iodevcomms (дата обращедели. Другой пример — фитнес-трекеры, ния: 18.03.2016). собирающие данные о пройденном рас- 4. URL: https://github.com/intersystemsстоянии, но если добавить к ним датчики ru/ArduinoSnippets/blob/master (дата обпульса, температуры и систематизировать ращения: 18.03.2016). собранные сведения, то персональная ме- 5. URL: https://github.com/intersystems-ru дицина получит инструмент раннего выяв- (дата обращения: 18.03.2016). ления заболеваний. Таким образом, «умные» метеостанции и лампочки — всего Эдуард Лебедюк (lebeduk93@gmail.com) — лишь предвестники изменений, которые инженер-консультант, корпорация обещает Интернет вещей, способный ра- InterSystems, аспирант РЭУ дикально улучшить качество жизни обще- им. Г. В. Плеханова (Москва). www.osmag.ru • 01/2016 • Открытые системы • 35