设备到云(Device-to-Cloud, D2C)通讯
分类: Azure物联网 ◆ 标签: #Azure #IoT Hub ◆ 发布于: 2023-06-12 21:26:19

Azure IoT Hub
提供三个方案用于设备向云发送信息:
- 设备到云的消息(Device-to-Cloud Message, D2C Message): 用于基于时间系列的遥测数据和警报
- 孪生设备属性上报(Device Twin's reported Properties): 用户上报设备的状态信息,例如设备资源可用容量,设备情况,长时间运行的某些应用的状态(配置和软件更新)等等。
- 文件上传:针对定期上报一些媒体文件或者批量遥测数据, 或者重启后重新上报积压的数据,或者压缩数据定期上传等等场景。
可以使用下表来对比三种方案:
要素 | 设备到云的消息(Device-to-cloud messages) | 孪生设备属性上报(Device twin's reported properties) | 文件上传(File uploads) |
---|---|---|---|
应用场景 | 遥测数据,包括基于时间线的数据或者警报,例如:256-KB的传感器每5分钟上传一次数据。 | 可用功能或者资源,设备工况等等。例如当前设备的链接模式是移动网络还是wifi,同步长时间运行的工作流,例如配置或者软件更新等等。 | 媒体文件,或者大量压缩数据批量上载 |
存储和检索 | 遥测数据默认被IoT Hub存储,最多保留7天,只能按顺序读取。 | 存储在IoT Hub的孪生设备(Device Twin)中, 使用IoT Hub 查询语言操作读取 | 存储在用户定义的Azure Storage Account中。 |
数据大小 | 消息最大256KB | 上报属性最大32KB | 由Azure Blob Storage决定最大文件大小。 |
发生频率 | 高. 详细信息参考Azure IoT Hub 限制。 | 中等。 详细信息参考Azure IoT Hub 限制。 | 低。 |
协议 | 支持所有的协议。 | 支持MQTT 和AMQP 协议。 | 支持所有的协议,但是要求设备支持HTTPS 协议。 |
有时候设备应用可能同时需要将数据作为遥测数据发给IoT Hub还需要将它作为孪生设备属性保存,针对这种场景可以考虑:
- 设备发送设备到云的消息,同时上报属性改变。
- 后端解决方案存储孪生设备的tags, 并跟踪改变。
需要注意的是设备到云的消息设计目的是使用非常大的吞吐量,尽量要避免每次发送遥测数据时更新孪生设备。