华为云IoT智慧路灯小实践体验【玩转华为云】
构建并归档软件包
创建Shen_Man_light智慧路灯Java Maven项目
配置并启动构建任务
编译构建源代码
生成主题URN
创建ShenManlight智慧路灯主题订阅
①协议:邮件
②订阅终端:用户邮箱地址
创建弹性云服务器 ECS
创建创建名为ShenMan的弹性云服务器1vCPUs|1 GiB Ubuntu 16.04 server 64bit
在本地Xshell中登录创建好的ShenMan的弹性云服务器配置系统防火墙规则
执行sudo ufw enable开启ufw服务
执行sudo ufw allow 22/tcp启用22端口
执行sudo ufw allow 8080/tcp启用8080端口
部署智慧路灯应用
在项目中新建主机组添加授信主机以部署项目
部署任务
在主机上部署springboot的jar包,并启动该服务
安装JDK在ShenMan_IoT主机组,jdk版本:openjdk-1.8.0
导入之前编译好的jar软件包
选择软件发布仓构建任务的构建jar包,来进行部署
根据服务的指定路径来启动、停止服务
完成ShenMan201902090140部署任务的配置,并执行部署任务。
页面显示“部署成功”,执行完毕
导入产品模型
在华为云控制台设备接入IoTDA
创建产品关联物联网产品
①所属资源空间:ShenMan_IoT
②产品名称:Shen_Man_light
③协议类型:MQTT
④数据格式:JSON
⑤厂商名称: Huawei_IoT
⑥设备类型: StreetLight
配置完成后,点击“立即创建”,产品创建成功,生成全网唯一许可“产品ID”信息
上传智慧路灯模型文件
配置智慧路灯应用(订阅推送方案)
访问智慧路灯Web界面
新建浏览器标签页,输入http://114.115.135.43:8080/index.html使用之前创建的服务器所部署的项目访问智慧路灯Web页面
参数设置
在弹出的“参数设置”窗口,参数填写:
①数据来源:参数设置页面下拉框选择“订阅推送”。
②本机IP:之前创建的ShenMan服务器的公网IP(114.115.135.43)
③主题URN:之前创建发ShenManLight消息通知服务SMN”进入主题列表
④APPID:设备接入IoTDA”,在 “资源空间”,复制获取产品所需的“APPID”
参数设置成功
输入设备标识(学号201902090140),点击“注册设备”
结果验证(设备属性上报/订阅/设备命令下发)
建立连接
在MQTT设备模拟器页签下,填写参数
①服务IP iot-mqtts.cn-north-4.myhuaweicloud.com
②设备ID:配置智慧路灯应用,注册设备成功后返回的设备Id 61ac370cd28ce302884a2396_201902090140
③设备密钥:配置智慧路灯应用,注册设备成功后返回的密钥 24637284aece259f6cb826655499ee4d
点击建立连接日志显示成功
平台显示设备已在线正常
模拟器发送消息,上报设备属性。
①在模拟器窗口中的Topic栏中输入以下代码:$oc/devices/{61ac370cd28ce302884a2396_201902090140}/sys/properties/report
②消息内容:
其中,光感强度为200LUX,灯状态建议为OFF。
在模拟器窗口中的消息编辑栏中输入以下代码:
{"services":[{"service_id":"Sensor","properties":{"luminance":"200","light_state":"OFF"}}]}
查看应用界面变化
返回智慧路灯Web界面,此时显示“环境亮度”为200LUX,“灯状态”为关。
模拟器订阅Topic
切换到“订阅Topic”页签,并在Topic栏中输入以下代码:
$oc/devices/61ac370cd28ce302884a2396_201902090140/sys/commands/#
输入完毕后,点击“订阅”按钮可完成订阅
平台下发设备命令/模拟器响应
终端联控模式配置
返回智慧路灯Web界面,“路灯控制”选择“终端联控模式”,开关选择“开”,单击“设置”,然后点击”确认”。
①若当前灯状态为“关”,开关选择为“开”,服务后台会实时下发一条开灯命令,弹窗提示会有5-10秒左右延迟,请耐心等待。
②若当前灯状态为“关”,开关选择为“关”,不会触发命令下发,直接弹窗提示设置成功。
即“灯状态”与“开关选择”一致时,不会触发命令下发;“灯状态”与“开关选择”不一致时,会触发实时命令下发。
命令接收
因为当前“灯状态”为关,“开关选择”为开,查看模拟器日志区域,会收到一条开灯命令。(payload的值经过base64加密,解密后即可得到命令内容)
模拟器发送消息,上报变更后的设备属性。
①Topic:$oc/devices/61ac370cd28ce302884a2396_201902090140/sys/properties/report
②消息内容:
其中,光感强度可自定义,灯状态建议为ON。
{"services":[{"service_id":"Sensor","properties":{"luminance":"110","light_state":"ON"}}]}
查看应用界面变化
如下图所示,应该显示“环境亮度”为110LUX,“灯状态”为开
短信/邮件通知
在模拟器上单击“断开连接”后, “路灯控制”选择“终端联控模式”,开关选择“关”,单击“设置”。
因为灯状态为“开”,开关选择为“关”,服务后台会实时下发一条关灯命令;而设备处于离线状态,导致命令下发失败。
此时,系统会发送短信/邮件通知告知订阅用户命令下发失败;通知内容为命令下发失败的错误信息。
通知示例:【华为云】错误信息:{"error_code":"IOTDA.014016","error_msg":"Operation not allowed. The device is not online."}
设备变更为“离线”状态,请登录华为云控制台,选择“物联网 > 设备接入服务”,在左侧导航栏,选择“设备 > 所有设备”,根据设备标识码查看设备状态。
- 点赞
- 收藏
- 关注作者
评论(0)