体验云端设置恒温空调【零代码零硬件玩转华为云IoT】

举报
acc8226 发表于 2024/04/07 11:44:41 2024/04/07
【摘要】 场景说明近期听说华为云 IoT 物联网平台(IoTDA 设备接入云服务)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品,可快速构筑物联网解决方案。华为云 IoT 物联网平台支持创建设备的“影子”。设备影子比较适合资源受限低功耗设备,长期处于休眠状态的场景。查询设备最新上报数据和设备最新在线状态:当在控制台上查询设备...

场景说明

近期听说华为云 IoT 物联网平台(IoTDA 设备接入云服务)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品,可快速构筑物联网解决方案。

华为云 IoT 物联网平台支持创建设备的“影子”。设备影子比较适合资源受限低功耗设备,长期处于休眠状态的场景。

  • 查询设备最新上报数据和设备最新在线状态:
    • 当在控制台上查询设备上报数据时,由于设备可能长时间处于离线状态或因网络不稳定掉线,而无法获取到最新数据。通过设备影子机制,设备影子中始终保持设备最新上报的数据和设备当前状态,控制台上只需要查询设备影子中存储的数据,即可获取设备最新上报的数据和设备状态。
    • 很多应用服务器频繁的查询设备在线状态,由于设备处理能力有限,频繁查询会损耗设备性能。使用设备影子机制,设备只需要主动同步状态给设备影子一次,多个应用程序请求设备影子获取设备状态,即可获取设备最新状态,从而将应用程序和设备解耦。
  • 由于设备可能长时间处于离线状态,修改设备属性值的操作不能及时下发给设备。在这种情况下,物联网平台可以将修改设备的属性信息存储在设备影子中,待设备上线后,将修改的设备属性值同步给设备,从而完成设备属性值的修改。

比如在一些恒温控制系统中,不论空调是否开机,都可以调整空调默认温度,待空调上电开机后,自动按默认温度调节。空调接入到物联网平台后,用户可以在应用侧或者设备接入控制台设置设备影子,将预置的温度通过设备影子下达属性修改给空调。空调收到修改属性的要求后,自动调节温度。

本期我将继续演示通过华为云 IoT,模拟体验云端设置恒温空调。

前提

需要使用已有设备,如果暂时没有设备需要先行创建产品 + 注册设备。

可参考我之前发布在华为云社区的文章《设备模拟器快速接入【零代码零硬件玩转华为云IoT】-云社区-华为云》

本节我将继续使用上一节的设备 deviceA1 进行实验。该设备目前只有一个 “温度” 的属性,数值类型为小数。

配置设备影子

恒温空调案例其实是设备侧获取平台的设备影子数据的一个应用。

一般而言设备向平台获取设备影子数据。用户可以通过应用服务器或物联网控制台配置设备影子预期数据,设备上线时订阅该topic,可以获取到平台设备影子数据,以此来同步设备属性期望值,从而完成设备属性值的修改。

登录控制台,选择左侧导航栏的“设备”,接着进入到恒温空调设备的详情页面。选择“设备影子”页签,单击“属性配置”。

图 1

在弹出窗口中输入服务属性对应的期望值。此处设置“温度”的属性值为 55.2。

图 2 配置设备影子

验证操作

您可以使用配置设备接入服务时注册的真实设备接入平台,设备会收到平台下发的设备影子,修改空调的预设温度值。但是我没有真实设备,所以使用 MQTTx 模拟设备。

已知设备订阅设备影子的下行 topic 为 $oc/devices/{device_id}/sys/shadow/get/response/#,其中 {device_id} 需要填写正确的设备 ID。举例:$oc/devices/660e9e592a631a0c8fb10c6c_deviceA1/sys/shadow/get/response/#

一旦订阅成功,我们为了模拟设备上线,往设备影子的上行 Topic $oc/devices/{device_id}/sys/shadow/get/request_id={request_id} 发送请求。其中 {request_id} 用于唯一标识这次请求。设备侧发起的消息带该参数时,需要保证设备侧该参数值的唯一性,可以用递增的数字或者 UUID 来实现。举例:$oc/devices/660e9e592a631a0c8fb10c6c_deviceA1/sys/shadow/get/request_id=1

这里我填写为空,所以查询所有服务 ID 的设备影子数据。

上行请求示例

{}

在 mqttx 的订阅页面即可查看平台返回的数据,包括了 desired 和 reported 值。

图 3

为方便大家查看,我特意贴出返回 json 结果。

{
    "shadow": [
        {
            "desired": {
                "properties": {
                    "温度": 55.2
                },
                "event_time": "20240404T142949Z"
            },
            "reported": {
                "properties": {
                    "温度": 32.3
                },
                "event_time": "20240404T132320Z"
            },
            "version": 7,
            "service_id": "serviceA"
        }
    ],
    "object_device_id": "660e9e592a631a0c8fb10c6c_deviceA1"
}

至此,本次实验完美结束。

我正在参加【有奖征文 第29期】零代码零硬件玩转华为云 IoT 物联网平台多场景
链接:https://bbs.huaweicloud.com/blogs/423245

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。