华为云IoT智慧路灯小实践体验【玩转华为云】

举报
千奇百怪上申大仙 发表于 2023/03/04 21:55:27 2023/03/04
【摘要】 构建并归档软件包创建Shen_Man_light智慧路灯Java Maven项目配置并启动构建任务编译构建源代码生成主题URN创建ShenManlight智慧路灯主题订阅①协议:邮件②订阅终端:用户邮箱地址创建弹性云服务器 ECS创建创建名为ShenMan的弹性云服务器1vCPUs|1 GiB Ubuntu 16.04 server 64bit在本地Xshell中登录创建好的ShenMan的...

构建并归档软件包

创建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."}
设备变更为“离线”状态,请登录华为云控制台,选择“物联网 > 设备接入服务”,在左侧导航栏,选择“设备 > 所有设备”,根据设备标识码查看设备状态。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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