Руководство по разработке для устройств для IoT CentralIoT Central device development guide

Эта статья предназначена для разработчиков устройствThis article applies to device developers.

Приложение IoT Central позволяет отслеживать миллионы устройств и управлять ими на протяжении всего жизненного цикла.An IoT Central application lets you monitor and manage millions of devices throughout their life cycle. Это руководство предназначено для разработчиков устройств, которые реализуют код для выполнения на устройствах, подключающихся к IoT Central.This guide is intended for device developers who implement code to run on devices that connect to IoT Central.

Устройства взаимодействуют с приложением IoT Central, используя следующие примитивы:Devices interact with an IoT Central application using the following primitives:

  • Телеметрия. Данные, которые устройство отправляет в IoT Central.Telemetry is data that a device sends to IoT Central. Например, поток значений температуры со встроенного датчика.For example, a stream of temperature values from an onboard sensor.
  • Свойства. Значения состояния, которые устройство сообщает IoT Central.Properties are state values that a device reports to IoT Central. Например, текущая версия встроенного ПО на устройстве.For example, the current firmware version of the device. Можно также использовать записываемые свойства, которые IoT Central может обновлять на устройстве, например требуемое значение температуры.You can also have writable properties that IoT Central can update on the device such as a target temperature.
  • Команды. Вызываются из IoT Central для управления поведением устройства.Commands are called from IoT Central to control the behavior a device. Например, приложение IoT Central может вызвать команду для перезагрузки устройства.For example, your IoT Central application might call a command to reboot a device.

Построитель решений отвечает за настройку панелей мониторинга и представлений в веб-интерфейсе IoT Central для визуализации телеметрии, управления свойствами и вызова команд.A solution builder is responsible for configuring dashboards and views in the IoT Central web UI to visualize telemetry, manage properties, and call commands.

Типы устройствTypes of device

В следующих разделах описываются основные типы устройств, которые можно подключить к приложению IoT Central.The following sections describe the main types of device you can connect to an IoT Central application:

Изолированное устройствоStandalone device

Изолированное устройство подключается напрямую к IoT Central.A standalone device connects directly to IoT Central. Изолированное устройство обычно отправляет приложению IoT Central данные телеметрии со встроенных или подключенных датчиков.A standalone device typically sends telemetry from its onboard or connected sensors to your IoT Central application. Изолированные устройства также могут сообщать значения свойств, принимать значения записываемых свойств и реагировать на команды.Standalone devices can also report property values, receive writable property values, and respond to commands.

Устройство шлюзаGateway device

Устройство шлюза управляет одним или несколькими подчиненными устройствами, которые подключены к приложению IoT Central.A gateway device manages one or more downstream devices that connect to your IoT Central application. Для настройки связей между подчиненными устройствами и устройством шлюза используется IoT Central.You use IoT Central to configure the relationships between the downstream devices and the gateway device. Дополнительные сведения см. в статье Определение нового типа устройства шлюза Интернета вещей в приложении Azure IoT Central.To learn more, see Define a new IoT gateway device type in your Azure IoT Central application.

Пограничное устройствоEdge device

Пограничное устройство подключается напрямую к IoT Central, но при этом действует как посредник для других устройств, которые называются конечными.An edge device connects directly to IoT Central, but acts as an intermediary for other devices known as leaf devices. Пограничное устройство обычно находятся рядом с конечными устройствам, для которых оно выступает в качестве посредника.An edge device is typically located close to the leaf devices for which it's acting as an intermediary. Ниже приведены примеры сценариев, в которых используются пограничные устройства.Scenarios that use edge devices include:

  • Подключение через пограничное устройство для устройств, которые не могут подключаться напрямую к IoT Central.Enable devices that can't connect directly to IoT Central to connect through the edge device. Например, конечное устройство может использовать Bluetooth для подключения к пограничному устройству, которое затем подключается через Интернет к IoT Central.For example, a leaf device might use bluetooth to connect to the edge device, which then connects over the internet to IoT Central.
  • Агрегирование телеметрии перед отправкой в IoT Central.Aggregate telemetry before it's sent to IoT Central. Такой подход может помочь снизить затраты на отправку данных в IoT Central.This approach can help to reduce the costs of sending data to IoT Central.
  • Локальное управление конечными устройствами во избежание задержек, связанных с подключением к IoT Central через Интернет.Control leaf devices locally to avoid the latency associated with connecting to IoT Central over the internet.

Пограничное устройство может также отправлять собственные данные телеметрии, сообщать свои свойства и реагировать на обновления и команды записываемых свойств.An edge device can also send its own telemetry, report its properties, and respond to writable property updates and commands.

IoT Central видит только само пограничное устройство без конечных устройств, которые к нему подключены.IoT Central only sees the edge device, not the leaf devices connected to the edge device.

Дополнительные сведения см. в статье Руководство по добавлению устройства Azure IoT Edge в приложение Azure IoT Central.To learn more, see Add an Azure IoT Edge device to your Azure IoT Central application.

Подключение устройстваConnect a device

Azure IoT Central использует Службу подготовки устройств к добавлению в Центр Интернета вещей (DPS) в Azure для всех регистраций и подключений устройств.Azure IoT Central uses the Azure IoT Hub Device Provisioning service (DPS) to manage all device registration and connection.

DPS позволяет следующее:Using DPS enables:

  • Использовать IoT Central для поддержки адаптации и подключения устройств в большом масштабе.IoT Central to support onboarding and connecting devices at scale.
  • Создавать учетные данные устройства и настраивать устройства в автономном режиме без необходимости их регистрации в пользовательском интерфейсе IoT Central.You to generate device credentials and configure the devices offline without registering the devices through IoT Central UI.
  • Использовать собственные идентификаторы устройств для регистрации устройств в IoT Central.You to use your own device IDs to register devices in IoT Central. Использование собственных идентификаторов устройств упрощает интеграцию с существующими системами операционных отделов организации.Using your own device IDs simplifies integration with existing back-office systems.
  • Использование единой процедуры подключения устройств к IoT Central.A single, consistent way to connect devices to IoT Central.

Дополнительные сведения см. в статьях Подключение к Azure IoT Central и Рекомендации по разработке устройств.To learn more, see Get connected to Azure IoT Central and Best practices.

БезопасностьSecurity

Подключение между устройством и приложением IoT Central защищено с помощью подписанных URL-адресов или стандартных для отрасли сертификатов X.509.The connection between a device and your IoT Central application is secured using either shared access signatures or industry-standard X.509 certificates.

Протоколы связиCommunication protocols

Для подключения к IoT Central устройство может использовать протоколы связи MQTT, AMQP и HTTPS.Communication protocols that a device can use to connect to IoT Central include MQTT, AMQP, and HTTPS. На внутреннем уровне для обеспечения возможности подключения устройств IoT Central использует центр Интернета вещей.Internally, IoT Central uses an IoT hub to enable device connectivity. Дополнительные сведения о поддерживаемых Центром Интернета вещей протоколах связи для подключения устройств, см. в справочнике по выбору протокола связи.For more information about the communication protocols that IoT Hub supports for device connectivity, see Choose a communication protocol.

Реализация поведения устройстваImplement the device

Шаблон устройства IoT Central включает в себя модели, которая определяет поведение, которое должно быть реализовано устройством этого типа.An IoT Central device template includes a model that specifies the behaviors a device of that type should implement. К поведению относятся данные телеметрии, свойства и команды.Behaviors include telemetry, properties, and commands.

Совет

Модель можно экспортировать из IoT Central как JSON-файл Digital Twins Definition Language (DTDL) v2.You can export the model from IoT Central as a Digital Twins Definition Language (DTDL) v2 JSON file.

Каждая модель имеет уникальный идентификатор DTMI, такой как dtmi:com:example:Thermostat;1.Each model has a unique device twin model identifier (DTMI), such as dtmi:com:example:Thermostat;1. Когда устройство подключается к IoT Central, оно отправляет DTMI реализуемой модели.When a device connects to IoT Central, it sends the DTMI of the model it implements. IoT Central можете связать правильный шаблон устройства с устройством.IoT Central can then associate the correct device template with the device.

IoT Plug and Play определяет набор соглашений, которым должно следовать устройство при реализации модели DTDL.IoT Plug and Play defines a set of conventions that a device should follow when it implements a DTDL model.

Пакеты SDK для устройств Azure IoT поддерживают соглашения Plug and Play IoT.The Azure IoT device SDKs include support for the IoT Plug and Play conventions.

Модель устройстваDevice model

Модель устройства определяется с помощью DTDL.A device model is defined using the DTDL. Этот язык позволяет определить следующее.This language lets you define:

  • Данные телеметрии, отправляемые устройством.The telemetry the device sends. Определение включает в себя имя и тип данных телеметрии.The definition includes the name and data type of the telemetry. Например, устройство отправляет данные телеметрии температуры как тип double.For example, a device sends temperature telemetry as a double.
  • Сведения о свойствах, которые устройство передает в IoT Central.The properties the device reports to IoT Central. Определение свойства включает в себя его имя и тип данных.A property definition includes its name and data type. Например, устройство сообщает о состоянии вентиля как логическом значении.For example, a device reports the state of a valve as a Boolean.
  • Свойства, которые устройство может получить из IoT Central.The properties the device can receive from IoT Central. При необходимости можно пометить свойство как доступное для записи.Optionally, you can mark a property as writable. Например, IoT Central отправляет целевую температуру в виде значения типа double на устройство.For example, IoT Central sends a target temperature as a double to a device.
  • Команды, на которые отвечает устройство.The commands a device responds to. Определение включает в себя имя команды, а также имена и типы данных любых параметров.The definition includes the name of the command, and the names and data types of any parameters. Например, устройство реагирует на команду перезагрузки, которая задает количество секунд ожидания перед перезагрузкой.For example, a device responds to a reboot command that specifies how many seconds to wait before rebooting.

Модель DTDL может быть безкомпонентной или многокомпонентной.A DTDL model can be a no-component or a multi-component model:

  • Безкомпонентная модель Это простая модель, в которой не используются внедренные или каскадные компоненты.No-component model: A simple model doesn't use embedded or cascaded components. Все данные телеметрии, свойства и команды определяются по одному компоненту по умолчанию.All the telemetry, properties, and commands are defined a single default component. Пример см. в модели термостата.For an example, see the Thermostat model.
  • Многокомпонентная модель.Multi-component model. Более сложная модель, содержащая два или более компонентов.A more complex model that includes two or more components. Среди этих компонентов — один компонент по умолчанию и один или несколько дополнительных вложенных компонентов.These components include a single default component, and one or more additional nested components. Пример см. в модели контроллера температуры.For an example, see the Temperature Controller model.

Дополнительные сведения см. в статье Руководство по созданию моделей IoT Plug and Play.To learn more, see IoT Plug and Play modeling guide

СоглашенияConventions

Устройство должно следовать соглашениям Plug and Play IoT при обмене данными с IoT Central.A device should follow the IoT Plug and Play conventions when it exchanges data with IoT Central. Эти соглашения включают в себя:The conventions include:

  • отправку DTMI при подключении к IoT Central;Send the DTMI when it connects to IoT Central.
  • отправку правильно отформатированных полезных данных JSON и метаданных в IoT Central;Send correctly formatted JSON payloads and metadata to IoT Central.
  • правильные ответы на перезаписываемые свойства и команды из IoT Central;Correctly respond to writable properties and commands from IoT Central.
  • следование соглашениям об именовании для команд компонентов.Follow the naming conventions for component commands.

Примечание

В настоящее время IoT Central не полностью поддерживает типы данных Массив и Геопространственный DTDL.Currently, IoT Central does not fully support the DTDL Array and Geospatial data types.

Дополнительные сведения о формате сообщений JSON для устройства с IoT Central см. в разделе Полезные данные телеметрии, свойств и команд.To learn more about the format of the JSON messages that a device exchanges with IoT Central, see Telemetry, property, and command payloads.

Дополнительные сведения о соглашениях Plug and Play IoT см. в разделе Соглашения IoT Plug and Play.To learn more about the IoT Plug and Play conventions, see IoT Plug and Play conventions.

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

Чтобы реализовать поведение устройства, используйте один из пакетов SDK для устройств Azure IoT.Use one of the Azure IoT device SDKs to implement the behavior of your device. Код должен выполнять перечисленные ниже действия.The code should:

  • Регистрировать устройство в DPS и использовать сведения из DPS для подключения к внутреннему центру Интернета вещей в приложении IoT Central.Register the device with DPS and use the information from DPS to connect to the internal IoT hub in your IoT Central application.
  • Объявлять DTMI модели, которую реализует устройство.Announce the DTMI of the model the device implements.
  • Отправлять данные телеметрии в формате, указанном моделью устройства.Send telemetry in the format that the device model specifies. IoT Central использует модель в шаблоне устройства, чтобы определить, как применять данные телеметрии для визуализации и анализа.IoT Central uses the model in the device template to determine how to use the telemetry for visualizations and analysis.
  • Синхронизировать значения свойств на устройстве и в IoT Central.Synchronize property values between the device and IoT Central. В модели указываются имена и типы данных свойств, чтобы решение IoT Central могло отображать сведения.The model specifies the property names and data types so that IoT Central can display the information.
  • Реализовать обработчики команд для команд, указанных в модели.Implement command handlers for the commands specified in the model. В модели указываются имена и параметры команд, которые должно использовать устройство.The model specifies the command names and parameters that the device should use.

Дополнительные сведения о роли шаблонов устройств см. в разделе Что такое шаблоны устройств?.For more information about the role of device templates, see What are device templates?.

Пример кода см. в статье о создании и подключении клиентского приложения.For some sample code, see Create and connect a client application.

Языки и пакеты SDKLanguages and SDKs

Дополнительные сведения о поддерживаемых языках и пакетах SDK см. в разделе Пакеты SDK для устройств Центра Интернета вещей Azure.For more information about the supported languages and SDKs, see Understand and use Azure IoT Hub device SDKs.

Дальнейшие действияNext steps

Если вы являетесь разработчиком устройства и хотите ознакомиться с кодом, создайте и подключите клиентское приложение к приложению Azure IoT Central.If you're a device developer and want to dive into some code, the suggested next step is to Create and connect a client application to your Azure IoT Central application.

Если вы хотите узнать больше об использовании IoT Central, рекомендуем далее ознакомиться с циклом кратких руководств. Начните со статьи Создание приложения Azure IoT Central.If you want to learn more about using IoT Central, the suggested next steps are to try the quickstarts, beginning with Create an Azure IoT Central application.