场景简介
煤气检测器发现煤气浓度超标时,自动关联无线推窗器把窗户打开,起到通风的作用。
该场景主要描述的是设备可以通过LWM2M协议与物联网平台进行交互,用户可以在控制台或通过应用侧接口创建设备联动规则,把设备上报的属性转发,通过物联网平台规则引擎转变成命令下发给其他指定设备。
核心知识点:产品模型、编解码插件、属性上报、命令下发、MQTT协议、设备联动规则。
场景流程
流程解释:
- 创建防煤气泄漏产品:物联网平台是以产品为粒度管理批量设备,产品的创建与管理,可以通过平台提供的API接口或控制台。
- 上传产品模型和编解码插件:因为NB设备是用LWM2M协议传输二进制码流通信,而平台需要做对应的编解码转换才能与之通信。产品模型是定义一种设备的基本属性和命令。产品模型和编解码插件开发可以通过控制台,也可以通过模板离线开发再上传,也可以导入公共产品库的模型。
- 注册煤气检测器和推窗器设备:平台提供了应用侧API接口可以注册设备,也可以通过控制台批量注册。注册的设备ID,是设备侧与平台交互的唯一标识。这里可以分别注册两种设备,一种是用于煤气检测的设备,一种是可以推窗的设备。
- 创建设备联动规则:用户可以通过控制台创建规则,指定设备联动规则,设置触发条件和执行动作,给指定的设备做定向转发。
- 煤气检测值属性上报:NB设备是指集成了NB模组的设备,模组集成了华为IoT Tiny SDK,把指令用二进制码流传输给平台,平台会用编解码插件解码。
- 按规则设备联动:IoTDA平台会根据煤气检测器上报的属性值,进行规则过滤,把属性值转成命令下发给无线推窗器设备。
- 命令下发推开窗户:平台把命令下发给无线推窗器,通知推开窗户进行通风。
最佳实践
场景说明
煤气安全关系到千家万户的生命财产安全。本示例基于华为物联网平台提供的设备接入服务,通过触发设备联动规则,自动打开推窗器。具体场景是煤气监测器将煤气浓度数值上报到物联网平台,当煤气浓度超标时,会触发设置好的设备联动规则,物联网平台会下发打开窗户的命令到无线推窗器,无线推窗器收到命令后,自动把窗户打开。
创建煤气监测产品
- 登录华为云官方网站,访问设备接入服务。
- 单击“立即使用”进入设备接入控制台。
- 单击左侧导航栏的“产品”,单击右下角下拉框,选择新建产品所属的资源空间。
- 单击右上角的“创建产品”,创建煤气浓度监测产品,填写参数后,点击“立即创建”。
基本信息 |
|
产品名称 |
自定义,如gasdevice |
协议类型 |
选择“MQTT” |
数据格式 |
选择“JSON” |
厂商名称 |
自定义 |
功能定义 |
|
选择模型 |
按照步骤 5自定义产品模型 |
所属行业 |
自定义 |
设备类型 |
5.在功能定义页面,选择“自定义功能”,参考下表,完成产品模型配置。
服务数据 |
||
服务 |
服务名称:gaslevel |
|
属性 |
属性名称:gaslevel 是否必选:是 数据类型:int 访问权限:可读 取值范围:0~100 |
|
命令 |
命令名称:switch 下发参数名称:switch,是否必选:是,数据类型:string,长度:1,枚举值:on,off |
注册设备
1.进入“设备 > 设备注册”页面,单击“注册设备”,参考下表填写参数。注册煤气浓度监测设备,并记录设备ID和密钥。
参数名称 |
说明 |
所属产品 |
选择在步骤4中创建的产品。 |
设备标识码 |
自定义,英文字母和数字的组合字符串。通过注册成功后生成的“设备ID”(与设备标识码一一对应)和“设备密钥”接入平台。 |
设备名称 |
自定义。 |
设备认证类型 |
选择“密钥”。 |
密钥 |
设备密钥,可自定义,不填写物联网平台会自动生成。 |
2.进入“设备 > 设备注册”页面,单击“注册设备”,参考下表填写参数。注册推窗器设备,并记录设备ID和密钥。
参数名称 |
说明 |
所属产品 |
选择在步骤4中创建的产品。 |
设备标识码 |
自定义,英文字母和数字的组合字符串。通过注册成功后生成的“设备ID”(与设备标识码一一对应)和“设备密钥”接入平台。 |
设备名称 |
自定义。 |
设备认证类型 |
选择“密钥”。 |
密钥 |
设备密钥,可自定义,不填写物联网平台会自动生成。 |
配置设备联动规则
- 单击左侧导航栏的“规则”。在左上角的下拉框,选择资源空间(与步骤3同一个资源空间),单击右上角“创建规则”。
- 在弹出的页面选择“设备联动”。
- 参考下表配置设备联动规则。
参数名称 |
说明 |
规则名称 |
创建的规则名称,例如“windowswitch”。 |
立即触发 |
勾选“立即触发” |
生效时间 |
选择“一直生效”。 |
描述 |
对该规则的描述,如“煤气浓度高于6时自动打开推窗设备”。 |
触发条件 |
|
执行动作 |
|
验证操作
方法一:
您可以使用MQTT.fx模拟设备验证。
- 使用MQTT.fx分别模拟煤气探测器设备和推窗器,并连接到物联网平台。操作方法请参考通过MQTT.fx体验设备接入。
-
打开模拟推窗器的MQTT.fx,订阅平台下发的命令。
- 选择“Subscribe”页签。
- 输入订阅平台下发命令的Topic=$oc/devices/{device_id}/sys/commands/#(其中与步骤2获取的设备ID保持一致。)。
- 点击“Subscribe”按钮,完成平台命令下发订阅。
-
切换到模拟煤气探测的MQTT.fx,上报属性。
- 选择“Publish”页签。
- 输入属性上报的Topic:“$oc/devices/{device_id}/sys/properties/report(其中{deviceId}与步骤1获取的设备ID保持一致。)。
- 上报1条“gaslevel”大于6的属性。
样例:
{
"services": [{
"service_id": "gaslevel",
"properties": {
"gaslevel": 45
}
}
]
}
-
- 点击“Publish”按钮上报属性值。
- 切换到模拟推窗器的MQTT.fx,选择“Subscribe”页签。可以看到收到平台下发的“switch”取值为“on”的命令。
方法二:
您可以使用配置设备接入服务时注册的真实设备接入平台,上报“gaslevel”大于6的数据。设备会收到一条“switch”取值为“on”的命令,自动推开窗户。
点击这里→了解更多精彩内容
本文章来源于互联网,如有侵权,请联系删除!
基于物模型开发设备步骤: · 获取设备的身份认证信息。 · 当设备已经获取到IP地址之后,调用SDK提供的API将设备连接到物联网平台并进行认证。 · 当设备连接到阿里云物联网平台并通过认证后,调用SDK提供的API将设备属性的最新数据上报云端。 · 当设备的…