你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

IoT Central 设备连接指南

IoT Central 应用程序使你可以在设备的整个生命周期内监视和管理几十万台设备。 本指南适用于要执行以下操作的设备开发人员:实现代码以在连接到 IoT Central 的设备上运行。

设备使用以下基元与 IoT Central 应用程序进行交互:

  • “遥测”是设备发送给 IoT Central 的数据。 例如,来自内载传感器的温度值流。
  • “属性”是设备报告给 IoT Central 的状态值。 例如,设备的当前固件版本。 你还可以拥有 IoT Central 可以在设备上更新的可写属性,例如目标温度。
  • “命令”由 IoT Central 进行调用以控制设备的行为。 例如,IoT Central 应用程序可能会调用命令来重启设备。

设备类型

以下部分介绍了可连接到 IoT Central 应用程序的设备的主要类型:

IoT 设备

IoT 设备是可直接连接到 IoT Central 的独立设备。 IoT 设备通常会将遥测从其内载或联网的传感器发送到 IoT Central 应用程序。 并且还可以报告属性值、接收可写属性值以及响应命令。

IoT Edge 设备

IoT Edge 设备直接连接到 IoT Central。 IoT Edge设备可以发送自己的遥测,报告其属性,并响应可写的属性更新和命令。 IoT Edge 模块可在本地处理 IoT Edge 设备上的数据。 IoT Edge 设备还可以充当其他设备(称为下游设备)的中介。 使用 IoT edge 设备的场景包括:

  • 在将遥测发送到 IoT Central 之前,对其进行聚合或筛选。 此方法有助于降低向 IoT Central 发送数据的成本。
  • 使无法直接连接到 IoT Central 的设备能够通过 IoT Central 设备连接。 例如,下游设备可能使用蓝牙连接到 IoT Edge 设备,后者随后通过 Internet 连接到 IoT Central。
  • 本地控制下游设备,避免与通过 Internet 连接到 IoT Central 相关的延迟。

IoT Central 仅会看到 IoT Edge 设备,而不会看到连接到 IoT Edge 设备的下游设备。

若要了解详细信息,请参阅将 Azure IoT Edge 设备添加到 Azure IoT Central 应用程序

网关

网关设备管理连接到 IoT Central 应用程序的一个或多个下游设备。 网关设备在将发送自下游设备的遥测数据转发到 IoT Central 应用程序之前,可以先对其进行处理。 IoT 设备和 IoT Edge 设备均可用作网关。 若要了解详细信息,请参阅在 Azure IoT Central 应用程序中定义新的 IoT 网关设备类型如何通过 IoT Edge 透明网关连接设备

设备连接方式

将设备连接到 IoT Central 时,它将经历以下几个阶段:已注册、已预配和已连接

注册设备

向 IoT Central 注册设备时,需告知 IoT Central 你要连接到应用程序的设备的 ID。 (可选)在此阶段,你可以将设备分配给设备模板,向应用程序声明设备功能。

提示

设备 ID 中可以包含字母、数字和 - 字符。

在 IoT Central 应用程序中注册设备的方法有以下三种:

  • 当设备第一次尝试连接时,自动注册设备。 该方案可让 OEM 大规模制造出可在不事先注册的情况下实现连接的设备。 有关详细信息,请参阅自动注册设备

  • 从 CSV 文件批量添加设备。 若要了解详细信息,请参阅导入设备

  • 使用 IoT Central 应用程序中的“设备”页面单独注册设备。 有关详细信息,请参阅添加设备

    或者,可以要求操作员在设备开始发送数据之前对其进行批准。

    提示

    在“权限”>“设备连接组”页上,“自动批准”选项控制操作员是否必须手动批准设备,然后才能开始发送数据。

只需在 IoT Central 应用程序中注册一次设备。

预配设备

当设备首次尝试连接到 IoT Central 应用程序时,它通过连接到设备预配服务 (DPS) 来启动此过程。 DPS 检查设备的凭据,如果凭据有效,则为设备预配 IoT Central 的内部 IoT 中心之一的连接字符串。 DPS 使用 IoT Central 应用程序中的组注册配置,为你管理此预配过程。

提示

设备还会发送 ID 范围值,告知 DPS 此设备将连接到的 IoT Central 应用程序。 可以在 IoT Central 应用程序的“权限”>“设备连接组”页面上查找“ID 范围”

通常,设备应缓存它从 DPS 接收的连接字符串,但如果当前连接失败,应准备好检索新的连接详细信息。 有关详细信息,请参阅处理连接失败

使用 DPS:

  • 可让 IoT Central 大规模加入和连接设备。
  • 可让你离线生成设备凭据并配置设备,而无需通过 IoT Central UI 注册设备。
  • 可让你使用自己的设备 ID 在 IoT Central 中注册设备。 使用自己的设备 ID 可以简化与现有后端办公系统的集成。
  • 可以通过一致的单一方式将设备连接到 IoT Central。

对设备进行身份验证和连接

设备使用其凭据和从 DPS 接收到的连接字符串连接到 IoT Central 应用程序,并其进行身份验证。 设备还应发送用于标识所分配的设备模板的模型 ID

IoT Central 支持两种类型的设备凭据:

  • 共享访问签名
  • X.509 证书

有关详细信息,请参阅设备身份验证概念

在设备与 Azure IoT Central 之间交换的所有数据都经过加密。 如果设备已连接到任何面向设备的 IoT 中心终结点,则 IoT 中心会对从该设备发出的所有请求进行身份验证。 为了避免通过网络交换凭据,设备使用签名的令牌进行身份验证。 有关详细信息,请参阅控制对 IoT 中心的访问

连接模式

设备开发人员通常使用其中一个设备 SDK 来实现连接到 IoT Central 应用程序的设备。 某些场景下(例如,对于无法连接到 Internet 的设备)还需要网关。

解决方案设计必须考虑到所需的设备连接模式。 这些模式分为两大类。 这两个类别都包括将遥测数据发送到 IoT Central 应用程序的设备:

持久性连接

持久性连接要求解决方案具有命令和控制功能。 在命令和控制场景下,IoT Central 应用程序将命令发送到设备,以近乎实时地控制其行为。 持久性连接会保持与云的网络连接,每当发生中断时都会重新连接。 使用 MQTT 或 AMQP 协议可以实现与 IoT Central 的持久性设备连接。

以下选项支持设备的持久性连接:

  • 使用 IoT 设备 SDK 连接设备并发送遥测数据:

    设备 SDK 同时启用 MQTT 和 AMQP 协议,以创建与 IoT Central 的持久性连接。

  • 通过本地网络将设备连接到 IoT Edge 设备,后者将遥测数据转发到 IoT Central:

    IoT Edge 设备可以与 IoT Central 建立持久性连接。 对于无法连接到 Internet 或需要网络隔离的设备,请使用 IoT Edge 设备作为本地网关。 网关将设备遥测数据转发到 IoT Central。 此选项允许对连接到 IoT Edge 设备的下游设备启用命令和控制。

    若要了解详细信息,请参阅将 Azure IoT Edge 设备连接到 Azure IoT Central 应用程序

  • 使用 IoT Central 设备网桥连接使用自定义协议的设备:

    一些设备使用的是 IoT Central 目前不支持的协议或编码,例如 LWM2M 或 COAP。 IoT Central 设备网桥充当将遥测数据转发到 IoT Central 的转换器。

    若要了解详细信息,请参阅 Azure IoT Central 设备网桥GitHub 存储库。

临时连接

临时连接是让设备可以向 IoT Central 应用程序发送遥测数据的一个短暂连接。 设备发送遥测数据后,会丢弃连接。 当设备有更多要发送的遥测数据时,会重新连接。 临时连接不适用于命令和控制方案。

以下选项支持设备的临时连接:

  • 使用 HTTP 连接设备并发送遥测数据:

    IoT Central 支持使用 HTTP API 发送遥测数据的设备客户端。 若要了解详细信息,请参阅发送设备事件 API 文档。

    注意

    使用 HTTP API 发送遥测数据之前,先使用 DPS 预配设备并将其注册到 IoT Central。

  • 在无状态模式下使用 IoT Central 设备网桥连接设备:

    将 IoT Central 设备网桥部署为 Azure 函数。 该函数将传入的遥测数据作为 HTTP 请求接受,并将其转发到 IoT Central。 IoT Central 设备网桥与 DPS 集成,为你自动处理设备预配。

    若要了解详细信息,请参阅 Azure IoT Central 设备网桥 GitHub 存储库。

  • 在无状态模式下使用 IoT Central 设备网桥连接外部云:

    使用 Azure IoT Central 设备网桥将消息从其他 IoT 云(例如 SigFox、Particle 和 The Things Network)转发到 IoT Central。

    若要了解详细信息,请参阅 Azure IoT Central 设备网桥 GitHub 存储库。

流入时的数据转换和自定义计算

一些场景需要使用外部系统或存储中的数据来扩充设备遥测数据。 在遥测数据到达 IoT Central 之前进行扩充,可以允许某些功能(如仪表板和规则)使用扩充的数据。

一些场景需要在遥测数据到达 IoT Central 之前对其进行转换。 例如,转换旧格式的遥测数据。

在 IoT Central 引入遥测数据之前,可使用以下选项进行自定义转换或计算:

  • 使用 IoT Edge:

    在 IoT Edge 中使用自定义模块进行自定义转换和计算。 当设备使用 Azure IoT 设备 SDK 时,使用 IoT Edge。

  • 使用 IoT Central 设备网桥:

    使用 IoT Central 设备网桥适配器进行自定义转换和计算。

有关详细信息,请参阅转换 IoT Central 的数据

后续步骤

如果你是设备开发人员并想深入了解某种代码,建议执行的下一步骤是创建客户端应用程序并将其连接到 Azure IoT Central 应用程序

若要详细了解设备实现,请参阅 IoT Central 的设备实现和最佳做法

若要详细了解如何使用 IoT Central,建议的后续步骤是尝试使用快速入门,从创建 Azure IoT Central 应用程序开始。