Разработка устройств для Интернета вещей

В этом обзоре представлены основные понятия разработки устройств, которые подключаются к типичному решению Интернета вещей Azure. Каждый раздел содержит ссылки на содержимое, которое содержит дополнительные сведения и рекомендации.

На следующей схеме показано высокоуровневое представление компонентов в типичном решении Интернета вещей. В этой статье рассматриваются устройства и шлюз, показанные на схеме.

Схема, на котором показана высокоуровневая архитектура решения Интернета вещей, в которых выделены области подключения устройств.

В Azure IoT разработчик устройства записывает код для запуска на устройствах в решении. Обычно этот код:

  • Устанавливает безопасное подключение к облачной конечной точке.
  • Отправляет данные телеметрии, собранные из подключенных датчиков в облако.
  • Управляет состоянием устройства и синхронизирует это состояние с облаком.
  • Отвечает на команды, отправленные из облака.
  • Включает установку обновлений программного обеспечения из облака.
  • Позволяет устройству работать при отключении от облака.

Типы устройств

Устройства Интернета вещей можно разделить на две широкие категории, микроконтроллеры (MCUS) и микропроцессоры (MPUs):

  • Микроконтроллеры менее дорогие и проще в работе, чем микропроцессоры.
  • MCU содержит множество функций, таких как память, интерфейсы и операции ввода-вывода на микросхеме. MPU обращается к этой функции из компонентов в поддержке микросхем.
  • MCU часто использует ОС в режиме реального времени или работает без операционной системы (без ОС) и предоставляет ответы в режиме реального времени и высоко детерминированные реакции на внешние события. MpUs обычно выполняют ОС общего назначения, например Windows, Linux или macOS, которая предоставляет недетерминированный ответ в режиме реального времени. Обычно нет гарантии того, что задача завершится.

Примеры специализированных аппаратных и операционных систем:

Windows для Интернета вещей — это внедренная версия Windows для MPUs с облачным подключением, которая позволяет создавать безопасные устройства с простой подготовкой и управлением.

Eclipse ThreadX — это операционная система в режиме реального времени для устройств Интернета вещей и пограничных устройств, работающих на основе MCUs. Eclipse ThreadX предназначен для поддержки устройств с высокой степенью ограничения, которые питание от батареи и имеют менее 64 КБ памяти флэш-памяти.

Azure Sphere — это защищенная платформа приложений высокого уровня со встроенными функциями взаимодействия и обеспечения безопасности, предназначенная для устройств, подключенных к Интернету. Она состоит из защищенной, подключенной, кроссоверной MCU, пользовательской высокоуровневой операционной системы под управлением Linux и облачной службы безопасности, которая обеспечивает непрерывную, возобновляемую безопасность.

Базовые функции

Устройство Интернета вещей Azure может использовать следующие примитивы для взаимодействия с облаком:

  • Сообщения из устройства в облако для отправки телеметрии временных рядов в облако. Например, данные температуры, собранные с датчика, подключенного к устройству.
  • Отправка файлов для файлов мультимедиа, таких как захваченные изображения и видео. Периодически подключенные устройства могут отправлять пакеты телеметрии. Устройства могут сжимать передачи для сохранения пропускной способности.
  • Двойники устройств для совместного использования и синхронизации данных состояния с облаком. Например, устройство может использовать двойник устройства, чтобы сообщить о текущем состоянии клапана, который он управляет облаком, и получить нужную целевую температуру из облака.
  • Цифровые двойники для представления устройства в цифровом мире. Например, цифровой двойник может представлять физическое расположение устройства, его возможности и связи с другими устройствами.
  • Прямые методы для получения команд из облака. Прямой метод может иметь параметры и возвращать ответ. Например, облако может вызвать прямой метод, чтобы запросить устройство перезагрузить в течение 30 секунд.
  • Сообщения из облака на устройство для получения односторонних уведомлений из облака. Например, уведомление о готовности обновления к загрузке.

Дополнительные сведения см . в руководстве по обмену данными между устройствами и в руководстве по обмену данными между устройствами.

Пакеты SDK для устройств

Пакеты SDK для устройств предоставляют высокоуровневые абстракции, которые позволяют использовать примитивы без знания базовых протоколов связи. Пакеты SDK для устройств также обрабатывают сведения о создании безопасного подключения к облаку и проверке подлинности устройства.

Для устройств MPU пакеты SDK для устройств устройств доступны на следующих языках:

Для устройств MCU см. следующие сведения:

Примеры и рекомендации

Все пакеты SDK для устройств включают примеры, демонстрирующие использование пакета SDK для подключения к облаку, отправки данных телеметрии и использования других примитивов.

Сайт разработки устройств Интернета вещей содержит руководства и инструкции по реализации кода для различных типов устройств и сценариев.

Дополнительные примеры можно найти в браузере кода.

Дополнительные сведения о реализации автоматического повторного подключения к конечным точкам см. в статье "Управление повторным подключением устройств" для создания устойчивых приложений.

Разработка устройств без пакета SDK для устройств

Хотя рекомендуется использовать один из пакетов SDK для устройств, могут возникнуть сценарии, в которых вы не предпочитаете. В этих сценариях код устройства должен напрямую использовать один из протоколов связи, которые Центр Интернета вещей и поддержку службы подготовки устройств (DPS).

Дополнительные сведения см. в разделе:

Моделирование устройств

IoT Plug and Play позволяет разработчикам решений интегрировать IoT-устройства в решения без необходимости выполнять настройку вручную. В основе самонастраивающийся Интернета вещей — это модель устройства, которая используется устройством для объявления его возможностей в приложении с поддержкой Интернета вещей самонастраивающийся, например IoT Central. Эта модель структурирована как набор элементов, которые определяют:

  • Свойства, которые отражают характеристики состояния устройства или другой сущности, доступные только для чтения или только для записи. Например, серийный номер устройства может быть свойством только для чтения, а целевая температура термостата может быть свойством, доступным для записи.
  • Данные телеметрии, которые отправляются устройством, например поток показаний датчика, сообщения об ошибках или информационные сообщения.
  • Команды описывают функции или операции, которые можно выполнить на устройстве. Например, можно определить команду для перезапуска шлюза или создания снимка дистанционно управляемой камерой.

Вы можете группировать эти элементы в один интерфейс в нескольких моделях, чтобы упростить совместную работу и ускорить разработку.

Модель указывается с помощью языка определения Digital Twins (DTDL).

Использование IoT самонастраивающийся, моделирования и DTDL является необязательным. Примитивы устройств Интернета вещей можно использовать без использования самонастраивающийся Интернета вещей или моделирования. Служба Azure Digital Twins также использует модели DTDL для создания графов двойников на основе цифровых моделей сред, таких как здания или фабрики.

В качестве разработчика устройств при реализации устройства самонастраивающийся устройства Интернета вещей существует набор соглашений. Эти соглашения предоставляют стандартный способ реализации модели устройства в коде с помощью примитивов, доступных в пакетах SDK для устройств.

Дополнительные сведения см. на следующих ресурсах:

Код контейнерного устройства

При использовании контейнеров, таких как в Docker, для запуска кода устройства можно развернуть код на устройствах с помощью возможностей инфраструктуры контейнеров. Контейнеры также позволяют определить среду выполнения для кода со всеми необходимыми версиями библиотеки и пакетов. Контейнеры упрощают развертывание обновлений и управление жизненным циклом устройств Интернета вещей.

Azure IoT Edge запускает код устройства в контейнерах. Azure IoT Edge можно использовать для развертывания модулей кода на устройствах. Дополнительные сведения см. в статье "Разработка собственных модулей IoT Edge".

Совет

Azure IoT Edge включает несколько сценариев. Помимо запуска кода устройства Интернета вещей в контейнерах, вы можете использовать Azure IoT Edge для запуска служб Azure на устройствах и реализации шлюзов полей. Дополнительные сведения см. в статье "Что такое Azure IoT Edge"

Средства разработки

В следующей таблице перечислены некоторые доступные средства разработки Интернета вещей:

Средство Description
Центр Интернета вещей Azure (расширение VS Code) Это расширение VS Code позволяет управлять ресурсами и устройствами Центр Интернета вещей из VS Code.
Обозреватель Интернета вещей Azure Это кроссплатформенное средство позволяет управлять ресурсами и устройствами Центр Интернета вещей из классического приложения.
Расширение Azure IoT для Azure CLI Это расширение CLI включает такие команды, как az iot device simulate, az iot device c2d-messageи az iot hub monitor-events которые помогают протестировать взаимодействие с устройствами.

Следующие шаги

Теперь, когда вы ознакомились с обзором разработки устройств в решениях Интернета вещей Azure, некоторые из предложенных следующих шагов: