本文主要分享一个案例:
10分钟内从云端向设备发送控制指令
本文主要有如下内容:
1.了解云到设备的消息种类
2. 了解Direct Method的使用场景
2. 使用Direct Method方式在云端向设备发送控制指令
视频讲解:
请观看B站视频:https://www.bilibili.com/video/av90333825/
或本站视频(内容相同,二选一即可)
图文内容:
云到设备有三种方式发送/传递消息
Here is a detailed comparison of the various cloud-to-device communication options.
Direct methods 直接方法 |
Twin's desired properties 设备孪生属性 |
Cloud-to-device messages 云到设备的消息 |
|
---|---|---|---|
Scenario |
Commands that require immediate confirmation, such as turning on a fan. 需要立即确认的方案,比如立刻打开风扇 |
Long-running commands intended to put the device into a certain desired state. For example, set the telemetry send interval to 30 minutes. 旨在将设备置于某个所需状态的长时间运行命令。 例如,将遥测发送间隔设置为 30 分钟。 |
One-way notifications to the device app. 提供给设备应用的单向通知。 |
Data flow |
Two-way. The device app can respond to the method right away. The solution back end receives the outcome contextually to the request. 双向。 设备应用可以立即响应方法。 解决方案后端根据上下文接收请求结果 |
One-way. The device app receives a notification with the property change. 单向。 设备应用接收更改了属性的通知。 |
One-way. The device app receives the message 单向。 设备应用接收消息 |
Durability |
Disconnected devices are not contacted. The solution back end is notified that the device is not connected. 不联系已断开连接的设备。 通知解决方案后端:设备未连接。 |
Property values are preserved in the device twin. Device will read it at next reconnection. 设备孪生会保留属性值。 设备会在下次重新连接时读取属性值。 |
Messages can be retained by IoT Hub for up to 48 hours. IoT 中心可保留消息长达 48 小时。 |
Targets |
Single device using deviceId, or multiple devices using jobs. 通过 deviceId与单个设备通信,或通过 作业与多个设备通信。 |
Single device using deviceId, or multiple devices using jobs. 通过 deviceId与单个设备通信,或通过 作业与多个设备通信。 |
Single device by deviceId. 通过 deviceId与单个设备通信。 |
Size |
Maximum direct method payload size is 128 KB. 最大128KB |
Maximum desired properties size is 8 KB. 最大8KB |
Up to 64 KB messages. 最大64KB |
Frequency |
High. For more information, see IoT Hub limits. 最高 |
Medium. For more information, see IoT Hub limits. 中等 |
Low. For more information, see IoT Hub limits. 最低 |
Protocol |
Available using MQTT or AMQP. MQTT或AMQP时可用 |
Available using MQTT or AMQP. MQTT或AMQP时可用 |
Available on all protocols. Device must poll when using HTTPS. 在所有协议上可用。 使用 HTTPS 时,设备必须轮询。 |
案例:
本文请参考官网链接:https://docs.azure.cn/zh-cn/iot-hub/quickstart-control-device-node
使用两个预先编写的 Node.js 应用程序:
- 可响应直接方法的模拟设备应用程序。
- 后端应用程序,可在模拟设备上调用直接方法。