华为云IoT智简联接-快速构建智慧生活实践
1、资源准备
1.1、下载MQTT设备模拟器
访问如下地址,下载MQTT设备模拟器(这里使用1.7.1版本)
http://www.jensd.de/apps/mqttfx/1.7.1/mqttfx-1.7.1-windows-x64.exe
下载完成后,直接傻瓜式安装即可。
1.2、下载产品模型文件
访问如下地址,下载“实验资源.zip”文件
https://bbs.huaweicloud.com/forum/forum.php?mod=attachment&aid=NTcyMzMxfDkzNDNkMjA4fDE2MzYyNDQwMjR8Mjk1OTU5fDE2MTQ2NA%3D%3D
下载后解压内容如下:
2、创建产品
2.1、进入IoTDA控制台
在华为云控制台,服务列表中找到IoTDA,点击进入
2.2、创建资源空间
(1)在左侧导航栏,选择“资源空间”,单击“新建资源空间”
(2)输入空间名称,单击“确定”
2.3、创建产品
(1)在左侧导航栏,选择“产品”,单击“创建产品”
(2)创建智能门控产品:填写参数信息后,单击“立即创建”。
所属资源空间:选择2.2创建的资源空间或者直接使用默认资源空间
产品名称:自定义,如Smart_Door
协议类型:MQTT
数据格式:JSON
厂商名称:自定义,如Huawei
所属行业:无
设备类型:自定义,如Smart_Door
(3)创建成功如图
(4)点击查看详情,进入产品详情页面
(5)单击“上传模型文件”,选择模型文件(Smart_Door_profile.zip)后,单击“确定”
(6)上传成功后如图
(7)按照(2)至(6)步创建智能灯泡产品,并上传产品模型文件
创建产品,填写参数信息:
所属资源空间:选择2.2创建的资源空间或者直接使用默认资源空间
产品名称:自定义,如Smart_Light
协议类型:MQTT
数据格式:JSON
厂商名称:自定义,如Huawei
所属行业:无
设备类型:自定义,如Smart_Light
上传模型文件:Smart_Light_profile.zip
(8)按照(2)至(6)步创建智能加湿器产品,并上传产品模型文件
创建产品,填写参数信息:
所属资源空间:选择2.2创建的资源空间或者直接使用默认资源空间
产品名称:自定义,如Smart_Humidifier
协议类型:MQTT
数据格式:JSON
厂商名称:自定义,如Huawei
所属行业:无
设备类型:自定义,如Smart_Humidifier
上传模型文件:Smart_Humidifier_profile.zip
(9)三个产品创建完成,查看产品列表,如图
3、注册设备
(1)在左侧导航栏,选择“设备 > 所有设备”,单击“注册设备”
(2)注册“智能门控”设备:填写参数信息后,单击“确定”
所属资源空间:与创建产品时的资源空间保持一致
所属产品:选择“智能门控”产品,即Smart_Door
设备标识码:自定义,如Smart_Door_01
设备名称:自定义,如Smart_Door_01
设备认证类型:默认配置,即“密钥”
密钥/确认密钥:12345678
(3)设备注册成功,请记录系统返回的“设备ID”和“设备密钥”,设备注册成功后是“未激活”状态,需要使用设备模拟器接入平台成功后,才会显示为“在线”状态
(4)重复(1)至(3),注册“智能灯泡”设备
所属资源空间:与创建产品时的资源空间保持一致
所属产品:选择“智能灯泡”产品,即Smart_Light
设备标识码:自定义,如Smart_Light_01
设备名称:自定义,如Smart_Light_01
设备认证类型:默认配置,即“密钥”
密钥/确认密钥:12345678
(5) 重复(1)至(3),注册“智能加湿器”设备
所属资源空间:与创建产品时的资源空间保持一致
所属产品:选择“智能加湿器”产品,即Smart_Humidifier
设备标识码:自定义,如Smart_Humidifier_01
设备名称:自定义,如Smart_Humidifier_01
设备认证类型:默认配置,即“密钥”
密钥/确认密钥:12345678
(6)三个设备注册完成,查看设备列表,如图
4、创建设备联动规则
(1)在左侧导航栏,选择“规则 > 设备联动”,单击“创建规则”
(2)按照如下参数配置后,单机“创建规则”
规则名称:智能门锁开_灯开
生效时间:指定时间 | 周一到周日 | 18:00-06:00
触发条件:指定设备触发 | Smart_Door_01 | sensor | lock_state | ON
执行动作:下发命令 | Smart_Light_01 | sensor | cmd | switch: ON
(3)创建“智能加湿器_自动开”规则
规则名称:智能加湿器_自动开
生效时间:一直生效
触发条件:指定设备触发 | Smart_Humidifier_01 | sensor | Humidity < 45
执行动作:下发命令 | Smart_Humidifier_01 | sensor | cmd | switch: ON
(4)创建“智能加湿器_自动关”规则
规则名称:智能加湿器_自动关
生效时间:一直生效
触发条件:指定设备触发 | Smart_Humidifier_01 | sensor | Humidity > 55
执行动作:下发命令 | Smart_Humidifier_01 | sensor | cmd | switch: OFF
(5)创建“人物移动_灯开”规则
规则名称:人物移动_灯开
生效时间:指定时间 | 周一到周日 | 00:00-06:00
触发条件:指定设备触发 | Smart_Door_01 | sensor | body_state = 1
执行动作:下发命令 | Smart_Light_01 | sensor | cmd | switch: ON
(6)创建“家人外出_ 灯关_门关”规则
规则名称:家人外出_灯关_门关
生效时间:一直生效
触发条件:指定设备触发 | Smart_Door_01 | sensor | body_state = 0
执行动作:下发命令 | Smart_Door_01 | sensor | cmd | switch: OFF
下发命令 | Smart_Light_01 | sensor | cmd | switch: OFF
(7)五条设备联动规则创建完成,查看列表如图
5、设备模拟器上报数据
(1)在设备列表中,点击相应设备的查看,查看设备ID
(2)访问如下地址,填写注册设备成功后生成的设备ID和设备密钥,生成连接信息(ClientId、Username、Password)
https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com
(3)打开MQTT.fx软件,单击设置图标
(4)配置鉴权参数
总览中点击“平台接入地址”,查看Broker Address
Broker Address:填写设备接入服务MQTT协议接入的域名地址
Broker Port:填写设备接入服务MQTT协议接入的端口,即1883
Cliend ID:设备cliendId
User Name:即设备ID
Password:加密后的设备密钥
(5)单击“Apply”保存配置后,在主界面单击“Connect”,设备鉴权成功后,在设备接入服务控制台可以看到设备处于在线状态
(6)通过MQTT.fx模拟设备上报属性,并在物联网平台查看设备上报数据,在Publish页签,填写设备属性上报Topic,及JSON消息体,单击“Publish”完成上报
Topic:$oc/devices/cliendId/sys/properties/report
其中,cliendId为设备ID,请替换为实际值。
{
"services": [{
"service_id": "sensor",
"properties": {
"lock_state": "OFF",
"body_state": 0
},
"event_time": "20211107T121212Z"
}
]
}
(7)在物联网平台-设备详情页查看设备上报数据
(8)通过MQTT.fx订阅命令下发Topic,并在物联网平台下发控制命令,查看设备是否收到平台下发的命令,在Subscribe页签,填写命令下发Topic,并单击“Subscribe”完成订阅
Topic:$oc/devices/cliendId/sys/commands/#
其中,cliendId为设备ID,请替换为实际值
(9)在物联网平台执行命令下发:进入设备详情页,选择“命令”页签,单击同步命令下发区域的“命令下发”,设置参数并单击“确定”完成命令下发
(10)在MQTT.fx客户端查看,平台下发命令接收成功
(11)参考(1)至(10),分别实现“智能灯泡”和“智能加湿器”设备属性数据上报和命令下发
(12)所有设备通过MQTT连接后,在线状态如下
6、模拟批量数据上报
(1)点击“Edit”,编辑Scripts脚本
(2)脚本内容如下
var Thread = Java.type("java.lang.Thread");
function execute(action) {
out("Test Script: " + action.getName());
var humidity;
for (var i = 0; i < 500; i++) {
switchOn();
Thread.sleep(500);
switchOff();
Thread.sleep(500);
}
action.setExitCode(0);
action.setResultText("done.");
out("Test Script: Done");
return action;
}
function switchOn() {
out("switchOn");
var data = '{ "services": [{ "service_id": "sensor", "properties": { "lock_state": "ON", "body_state": 1 }, "event_time": "20211107T121212Z" } ]}';
mqttManager.publish("$oc/devices/clientId/sys/properties/report", data);
}
function switchOff() {
out("switchOff");
var data = '{ "services": [{ "service_id": "sensor", "properties": { "lock_state": "OFF", "body_state": 0 }, "event_time": "20211107T121212Z" } ]}';
mqttManager.publish("$oc/devices/clientId/sys/properties/report", data);
}
function out(message){
output.print(message);
}
注:脚本中的clientId
需要替换成对应的设备ID
(3)点击“Execute”按钮执行脚本
(4)在左侧导航栏,选择“监控运维 > 统计报表”,按所属资源空间筛选查看设备统计情况
- 点赞
- 收藏
- 关注作者
评论(0)