目录

IoT场景中设备影子是做什么的

目录

IoT场景中「设备影子」是做什么的?

https://i-blog.csdnimg.cn/blog_migrate/2fcb085fd41e6c4af226416ed4eeccc9.png 随着各大云平台IoT物联网技术的宣传,IoT开发者之间常常会提到 设备影子 。物联网平台提供的设备影子功能,在云端保存为 一个JSON文档,用于存储设备上报状态、应用程序期望状态信息 。设备在线时,可以直接获取云端指令;设备离线后,再次上线可以主动拉取云端指令。

各大云平台对比

https://i-blog.csdnimg.cn/blog_migrate/35694df674027acc0c203905b00c0b35.png

应用场景

设备影子是一个JSON文档,用于存储设备上报状态、应用程序期望状态信息。

每个设备有且只有一个设备影子,设备可以通过MQTT获取和设置设备影子来同步状态,该同步可以是影子同步给设备,也可以是设备同步给影子。

场景1: 网络不稳定,设备频繁上下线

由于网络不稳定,设备频繁上下线。应用程序发出需要获取当前的设备状态请求时,设备掉线,无法获取设备状态,但下一秒设备又连接成功,应用程序无法正确发起请求。

使用设备影子机制存储设备最新状态,一旦设备状态产生变化,设备会将状态同步到设备影子。应用程序在请求设备当前状态时,只需要获取影子中的状态即可,不需要关心设备是否在线。

场景2: 多程序同时请求获取设备状态

如果设备网络稳定,很多应用程序请求获取设备状态,设备需要根据请求响应多次,即使响应的结果是一样的,设备本身处理能力有限,无法负载被请求多次的情况。

使用设备影子机制,设备只需要主动同步状态给设备影子一次,多个应用程序请求设备影子获取设备状态,即可获取设备最新状态,做到应用程序和设备的解耦。

场景3: 设备掉线,控制指令下发

设备网络不稳定,导致设备频繁上下线,应用程序发送控制指令给设备时,设备掉线,指令无法下达到设备。

  • 使用设备影子机制,应用程序发送控制指令,指令携带时间戳保存在设备影子中。当设备掉线重连时,获取指令并根据时间戳确定是否执行。

  • 设备真实掉线,指令发送失败。设备再上线时,设备影子功能通过指令加时间戳的模式,保证设备不会执行过期指令。

往期推荐

监控大屏

https://i-blog.csdnimg.cn/blog_migrate/d944dd362642459e7b32a08ef44708d7.gif