Azure IoT

Интеграция модулей Telit в Azure IoT Hub
Практическая реализация

№ 4’2017
PDF версия
Облачный сервис Microsoft Azure предлагает Центр Интернета вещей (Azure IoT Hub) для управления устройствами, собирающими данные о физическом мире, включая окружающую среду, различного рода процессы (в том числе технологические) и самого человека. В статье на практическом примере рассматриваются возможности совместной работы модулей сотовой связи Telit со службой Azure IoT Hub.

Компания Telit производит модули передачи данных, предназначенные, с одной стороны, для интеграции с устройствами Интернета вещей (Internet of Things, IoT), а с другой -для взаимодействия с облачными сервисами IoT. Рассмотрим возможности совместной работы модулей сотовой связи Telit (в частности, UE866-EU) с облачным сервисом Microsoft Azure -Центром Интернета вещей (Azure IoT Hub) на практическом примере.

Создание «Центра «Интернета вещей»

Рис. 1. Создание «Центра «Интернета вещей»

Сервис Microsoft Azure IoT Hub позволяет получать данные практически с любого количества различных устройств, реализующих на практике принципы IoT, в реальном времени и отправлять команды на устройства, а также управлять устройствами.

Для начала работы с Azure IoT Hub необходимо иметь учетную запись Microsoft. Получение такой учетной записи тривиально и выходит за рамки данной статьи. После этого необходимо зайти на портал Microsoft Azure [1] и создать собственный Центр Интернета вещей (рис. 1).

В нашем примере он будет называться RuCenter, соответственно, имя узла будет RuCenter.azure-devices.net (оно потребуется чуть позже, при привязке устройства). Далее необходимо создать само устройство в Центре, для этого проще всего воспользоваться Обозревателем устройств (рис. 2).

Создание устройства в «Центре «Интернета вещей»

Рис. 2. Создание устройства в «Центре «Интернета вещей»

При желании Microsoft предлагает использовать вместо веб-интерфейса приложение Device Explorer, выполняющее аналогичные функции. Назовем наше устройство my_first_device. После создания устройства система автоматически создаст два симметричных ключа общего доступа, которые также потребуются для привязки устройства. После этого Центр уже готов к передаче сообщений в устройство и приему сообщений из устройства в IoT Hub. Для контроля переданных и принятых сообщений может использоваться несколько различных методов. Самым простым является использование уже упомянутого приложения Device Explorer, где можно непосредственно увидеть сами сообщения. Для того чтобы Device Explorer привязался к созданному ранее Центру Интернета вещей, необходимо его сконфигурировать. Для этого на вкладке Configuration необходимо ввести строку подключения к Azure IoT Hub, полученную из веб-интерфейса (рис. 3). На этом первичное конфигурирование IoT Hub заканчивается, и можно переходить к собственно устройству.

Конфигурирование Device Explorer

Рис. 3. Конфигурирование Device Explorer

Отладочная плата Telit UE866-EU + SE868V3 bundle

Рис. 4. Отладочная плата Telit UE866-EU + SE868V3 bundle

В качестве устройства будем использовать модуль UMTS/HSPA Telit UE866-EU [2]. Этот самый малогабаритный в мире модуль UMTS/HSPA с возможностью работы как в 3G-, так и в 2G-сетях уже рассматривался нами ранее [3]. Российский дистрибьютор Telit выпускает оригинальную отладочную плату Telit UE866-EU + SE868V3 bundle [4] (рис. 4), позволяющую испытать большинство функций UE866-EU без использования дополнительного оборудования (базовой платы, блока питания и пр.).

Существенным преимуществом модулей передачи данных Telit является то, что все они содержат в составе прошивки протокол MQTT [5] -один из протоколов IoT, который поддерживается также и Azure IoT Hub. Кроме того, во все модули сотовой связи Telit, включая UE866-EU, имплементирован протокол SSL/TLS, требующийся для обеспечения безопасности передаваемых данных. Основываясь на этих наработках, специалисты Telit разработали приложение AppZone [6], работающее непосредственно с Azure IoT Hub и управляемое со стороны модуля UE866-EU AT-командами. AT-команды UE866 для работы с Azure IoT Hub приведены в таблице.

Таблица.  AT-команды UE866-EU для работы с Azure IoT Hub

#AIHCFG — конфигурирование клиента «Центра «Интернета вещей»

AT#AIHCFG=<iothub_name>,
<iothub_suffix>,<device_id>,
<device_shared_key>

Параметры: <iothub_name> — имя узла IoT Hub (первая часть).
В нашем случае полное имя узла RuCenter.azure-devices.net, поэтому первая часть будет RuCenter.

<iothub_suffix> — вторая часть имени узла. В примере выше будет azure-devices.net.

<device_id> — имя устройства. Ранее было создано устройство my_first_device.

<device_shared_key> — первичный (или вторичный) симметричный ключ общего доступа.

AT#AIHCFG?

По команде возвращается текущее состояние конфигурации в формате:

#AIHCFG: <iothub_name>,<iothub_suffix>, <device_id>,<device_shared_key>

AT#AIHCFG=?

Возвращается диапазон допустимых значений параметров.

#AIHCONN — установить/разорвать соединение с Azure IoT Hub

AT#AIHCONN=<op>

<op> — операция: «0» — разорвать соединение, «1» — установить соединение. Примечание 1: перед выполнением команды должно быть произведено конфигурирование командой AT#AIHCFG.

Примечание 2: PDP-контент должен быть активным перед выполнением команды. Он может быть активирован командой AT#SGACT=1,1 (предварительно нужно сконфигурировать контент командой AT+CGDCONT).

После установления соединения модуль формирует сообщение #AIH: CONNECTED.

После разрыва соединения модуль формирует сообщение #AIH: DISCONNECTED.

AT#AIHCONN?

По команде возвращается текущее состояние соединения в формате: #AIHCONN: <status>,

где <status>:

«0» — неправильный PDP-контент;

«1» — соединение неактивно;

«2» — попытка соединения;

«3» — соединение установлено;

«4» — готовность к соединению.

AT#AIHCONN=?

Возвращается диапазон допустимых значений параметров.

#AIHSND — отправить данные в Azure IoT Hub

AT#AIHSND=<data_len>

Команда отправляет данные в «Центр «Интернета вещей», соединение с которым было установлено ранее.

<data_len> — длина сообщения в байтах, допустимый диапазон 1–1500. Модуль отвечает приглашением > и ожидает приема данных. По достижении заданной длины сообщение автоматически отправляется.

AT#AIHSND=?

Возвращается диапазон допустимых значений параметров.

#AIHVER — версия приложения AppZone

AT#AIHVER

По команде возвращается версия приложения, записанная в модуль.

AT#AIHVER?

Идентично AT#AIHVER.

В качестве примера отправим тестовое сообщение из UE866-EU в Azure IoT Hub. Ниже приведен лог AT-команд модуля, необходимый для инициализации соединения с Центром и передачи сообщения от устройства:

AT+CGDCONT=1,”IP”,”INTERNET” // параметры PDP-контента, необходимые для активации пакетного соединения

OK

AT#SGACT=1,1 // активация пакетного соединения

#SGACT: 100.82.125.252 // IP-адрес, выданный оператором

AT#AIHCFG=”RuCenter”,”azure-devices.net”,”my_first_device”,”sZKk/1pio2CU2qL4fegdT2WoOnpmnVwERi7y13hYZWo=”,2 // конфигурирование устройства

OK

at#aihconn=1 // установка соединения с Центром Интернета вещей

OK

#AIH: CONNECTED // соединение установлено

at#aihsnd=6 // отправка сообщения длиной 6 байт

> test77 // тело сообщения

OK

Полученное в IoT Hub сообщение отображается во вкладке Data приложения Device Explorer (рис. 5). Как видим, сообщение доставлено в том же виде, что было отправлено из устройства.

Сообщения, принятые из устройства

Рис. 5. Сообщения, принятые из устройства

Сообщения из Azure IoT Hub, отправленные на устройство, отображаются в виде URC (Unsolicited Result Code):

#AIH:<messageId>,<correlationId>,<userDefinedContentType>,<userDefinedContentEncoding > [,PROPS,<key1>,<value1> [,<key2>,<value2>] [,DATA,<user_message>]
Передача сообщения в устройство

Рис. 6. Передача сообщения в устройство

Все поля URC идентичны свойствам сообщения, которые можно увидеть в приложении Device Explorer (рис. 6). В нашем примере на устройство приходит строка:

#AIH: 67b73dec-22f4-422b-800d-36a4ddf5d3d3,<null>,<null>,<null>,DATA,Hello, World!

Как и в случае передачи из устройства в IoT Hub, сообщение передано без искажений.

Таким образом, Telit реализовал в своих модулях простой и удобный интерфейс взаимодействия с Azure IoT Hub. Реализация рассчитана на модули сотовой связи с поддержкой AppZone, но легко может быть портирована и на другие модули передачи данных -Bluetooth, Wi-Fi, LoRa и другие, поскольку поддержка MQTT и SSL имеется во всех модулях Telit. Это еще раз подтверждает лидерство Telit как производителя модулей для Интернета вещей.

Литература
  1. https://portal.azure.com
  2. http://www.telit.com/wp-content/uploads/2017/09/Telit_UE866_Datasheet_AG.pdf
  3. Рудневский А. Новая концепция унификации Telit: гнездовая система в семействе xE866 // Беспроводные технологии. 2016. № 2.
  4. http://atoma.spb.ru/catalog/4118/otladochnaja-plata-telit-ue866-eu-se868v3-bundle
  5. http://i-o-t.ru/protokol-mqtt/
  6. Рудневский А. AppZone от Telit: практическое создание приложений // Беспроводные технологии. 2016. № 1.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *