Azure IoT 套件预配置解决方案是可以使用订阅部署到 Azure 的常见 IoT 解决方案模式的实现。 可以使用预配置的解决方案:
- 作为你自己的 IoT 解决方案的起点。
- 了解 IoT 解决方案设计和开发中的常见模式。
每个预配置解决方案都是使用模拟设备生成遥测的完整端到端实现。
可以下载完整的源代码来自定义和扩展解决方案以满足特定的 IoT 要求。
下表显示了解决方案如何映射到特定的 IoT 功能:
| 解决方案 | 数据引入 | 设备标识 | 设备管理 | 命令和控制 | 规则和操作 | 预测分析 |
|---|---|---|---|---|---|---|
| 远程监视 | 是的 | 是的 | 是的 | 是的 | 是的 | - |
| 预测性维护 | 是的 | 是的 | - | 是的 | 是的 | 是的 |
| 连接的工厂 | 是的 | 是的 | 是的 | 是的 | 是的 | - |
- 数据引入:大规模向云引入数据。
- 设备标识:管理唯一的设备标识并控制设备对解决方案的访问。
- 设备管理:管理设备元数据并执行设备重启和固件升级等作。
- 命令和控制:若要使设备执行作,请从云将消息发送到设备。
- 规则和操作,若要处理特定的设备到云的数据,后端解决方案使用规则。
- 预测分析:解决方案后端分析设备到云的数据,以预测何时应执行特定作。 例如,分析飞机引擎遥测数据,以确定引擎维护何时到期。
远程监视预配置解决方案概述
我们已选择在本文中讨论远程监视预配置解决方案,因为它说明了其他解决方案共享的许多常见设计元素。
下图说明了远程监视解决方案的关键元素。 以下部分提供有关这些元素的详细信息。
设备
部署远程监视预配置解决方案时,在模拟冷却设备的解决方案中预先预配了四个模拟设备。 这些模拟设备具有内置的温度和湿度模型,用于发出遥测数据。 这些模拟设备包括:
- 说明通过解决方案的端到端数据流。
- 提供便捷的遥测源。
- 如果你是使用解决方案作为自定义实现的起点的后端开发人员,请提供方法或命令的目标。
解决方案中的模拟设备可以响应以下云到设备通信:
- 方法(直接方法):一种双向通信方法,其中连接设备应立即响应。
- 命令(云到设备消息):一种单向通信方法,设备从持久队列中检索命令。
有关这些不同方法的比较,请参阅 云到设备的通信指南。
当设备首次连接到预配置解决方案中的 IoT 中心时,它会向中心发送设备信息消息。 此消息枚举设备可以响应的方法。 在远程监视预配置解决方案中,模拟设备支持以下方法:
- 启动固件更新:此方法在设备上启动异步任务以执行固件更新。 异步任务使用报告的属性将状态更新传送到解决方案仪表板。
- 重新启动:此方法会导致模拟设备重新启动。
- FactoryReset:此方法在模拟设备上触发恢复出厂设置。
当设备首次连接到预配置解决方案中的 IoT 中心时,它会向中心发送设备信息消息。 此消息枚举设备可以响应的命令。 在远程监视预配置解决方案中,模拟设备支持以下命令:
- Ping 设备:设备响应此命令,并给予确认。 此命令可用于检查设备是否仍然处于活动状态和侦听。
- 启动遥测:指示设备开始发送遥测数据。
- 停止遥测:指示设备停止发送遥测数据。
- 更改设置点温度:控制设备发送的模拟温度遥测值。 此命令可用于测试后端逻辑。
- 诊断遥测:控制设备是否应将外部温度作为遥测发送。
- 更改设备状态:设置设备报告的设备状态元数据属性。 此命令可用于测试后端逻辑。
可以将更多模拟设备添加到发出相同遥测数据并响应相同方法和命令的解决方案。
除了响应命令和方法外,解决方案还使用 设备孪生。 设备使用设备孪生向解决方案后端报告属性值。 解决方案仪表板使用设备孪生来设定设备上的新期望属性值。 例如,在固件更新过程中,模拟设备使用报告属性报告更新的状态。
IoT 中心
在此预配置解决方案中,IoT 中心实例对应于典型 IoT 解决方案体系结构中的云网关。
IoT 中心从单个终结点的设备接收遥测数据。 IoT 中心还维护特定于设备的终结点,其中每个设备都可以检索发送到它的命令。
IoT 中心通过服务端遥测读取终结点提供接收的遥测数据。
借助 IoT 中心的设备管理功能,可以从解决方案门户管理设备属性并计划执行作的作业,例如:
- 重新启动设备
- 更改设备状态
- 固件更新
Azure 流分析
预配置解决方案使用三个 Azure 流分析 (ASA)作业来筛选来自设备的遥测流:
- DeviceInfo 作业 - 将数据输出到事件中心,将与设备注册相关的消息路由至解决方案设备注册表。 此设备注册表是 Azure Cosmos DB 数据库。 当设备首次连接或响应 更改设备状态 命令时,将发送这些消息。
- 遥测作业 - 将所有原始遥测数据发送到 Azure Blob 存储进行冷存储,并计算在解决方案仪表板中显示的遥测聚合。
- 规则作业 - 针对超出任何规则阈值的值筛选遥测流,并将数据输出到事件中心。 当规则触发时,解决方案门户界面将此事件显示成警报历史记录表中的新行。 这些规则还可以根据解决方案门户中规则和动作视图定义的设置触发动作。
在此预配置解决方案中,ASA 作业构成了典型的 IoT 解决方案体系结构中 IoT 解决方案后端的一部分。
事件处理者
在此预配置解决方案中,事件处理程序在典型的 IoT 解决方案体系结构中构成了 IoT 解决方案后端的一部分。
DeviceInfo 和 Rules ASA 作业将其输出发送到事件中心,以便传送到其他后端服务。 该解决方案使用在 WebJob 中运行的 EventProcessorHost 实例从这些事件中心读取消息。 EventProcessorHost 使用:
- 用于更新 Cosmos DB 数据库中设备数据的 DeviceInfo 数据。
- 规则数据用于调用逻辑应用并更新解决方案门户中的警报显示。
设备身份注册表、设备孪生和 Cosmos DB
每个 IoT 中心都包含一个用于存储 设备密钥的设备标识注册表 。 IoT 中心使用此信息对设备进行身份验证 - 设备必须注册并具有有效的密钥,然后才能连接到中心。
设备孪生是由 IoT 中心管理的 JSON 文档。 设备孪生体包含:
- 设备报告的属性发送到中心。 可以在解决方案门户中查看这些属性。
- 要发送到设备的所需属性。 可以在解决方案门户中设置这些属性。
- 仅存在于设备孪生中且不在设备上的标记。 可以使用这些标记筛选解决方案门户中的设备列表。
此解决方案使用设备孪生来管理设备元数据。 该解决方案还使用 Cosmos DB 数据库来存储其他特定于解决方案的设备数据,例如每个设备支持的命令和命令历史记录。
解决方案还必须使设备标识注册表中的信息与 Cosmos DB 数据库的内容保持同步。 EventProcessorHost 使用 DeviceInfo 流分析作业中的数据来管理同步。
解决方案门户
解决方案门户是一个基于 Web 的 UI,作为预配置解决方案的一部分部署到云中。 这使您能够:
- 在仪表板中查看遥测和警报历史记录。
- 预配新设备。
- 管理和监视设备。
- 将命令发送到特定设备。
- 在特定设备上调用方法。
- 管理规则和操作。
- 计划要在一个或多个设备上运行的作业。
在此预配置解决方案中,解决方案门户构成了 IoT 解决方案后端的一部分,以及典型的 IoT 解决方案体系结构中处理和业务连接的一部分。
后续步骤
有关 IoT 解决方案体系结构的详细信息,请参阅 Microsoft Azure IoT 服务:参考体系结构。
现在,你知道预配置解决方案是什么,可以通过部署 远程监视 预配置解决方案开始: 预配置解决方案入门。