十分钟开发您的第一个智慧路灯应用
您在体验过程中有任何疑问,都可以在此留言反馈>>
1. 介绍
背景介绍
智慧路灯是城市智能化道路上重要一环,智慧路灯的实施具有节约公共照明能耗、减少人工投入和因照明引起的交通事故等多种社会意义。路灯也是大家在日常生活中可以强烈感知到的公共设施,更易理解其智能化的场景。
通过将路灯接入物联网平台,并开发应用对接物联网平台。我们可以做到路灯的智能化管理。
您将建立什么
在本次Codelab中,我们基于华为物联网应用构建器构建一款智慧路灯应用,显示路灯上报环境光强,给路灯下发开关灯命令,带您十分钟体验物联应用开发。
您将会学到什么
- 设备如何接入华为云物联网平台
- 如何利用物联网应用构建器开发物联网应用
您需要什么
- 已实名认证的华为云账号
- 智慧路灯实验工具包(点此下载),解压获取智慧路灯产品模型(SmartStreetLight.zip)和设备接入模拟器(HubSimulator.jar)
5. 调试应用
调试应用前,我们需要先安装JDK,设备接入模拟器对JDK有依赖。
-
下载JDK 1.8版本,如“jdk-8u161-windows-x64.exe”,并双击进行安装。官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
-
以下以WIN7为例说明如何配置环境变量。右键单击“计算机”,选择“属性”。
![]()
-
单击“高级系统设置”。
![]()
-
单击“环境变量”。
![]()
-
配置系统变量。需配置3个变量:JAVA_HOME、Path、CLASSPATH(不区分大小写)。若变量名已经存在,则单击“编辑”;若变量名不存在,则单击“新建”。一般Path变量存在,JAVA_HOME变量和CLASSPATH变量需要新增。
![]()
-
JAVA_HOME指明JDK安装路径,配置示例:C:\ProgramFiles\Java\jdk1.8.0_45。此路径下包括lib,bin等文件夹。
![]()
-
Path变量使系统可以在任何路径下识别Java命令。如果Path变量已经存在,则需在变量值最后添加路径,配置示例:;C:\Program Files\Java\jdk1.8.0_45\bin;C:\Program Files\Java\jdk1.8.0_45\jre\bin。
两个路径之间需要使用“;”分割,分号是英文半角。
![]()
CLASSPATH为Java加载类(class或lib)路径,只有配置CLASSPATH,Java命令才能识别。配置示例:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(路径以“.”开始,表示当前路径)。
![]()
-
重启系统,使环境变量生效。
-
选择“开始 > 运行”,输入“cmd”,执行命令:java -version、java、javac。如果命令可以执行,则说明环境变量配置成功。
![]()
然后让我们调试应用。
-
在已构建应用的预览界面中,选择“设备注册 > 单个注册”,单击“创建”。
![]()
-
系统将弹出“单个设备注册”窗口,填写设备相关信息,单击“确定”。
产品选择:选择已导入的路灯产品
设备名称:自定义
设备识别码:填写自定义字符串,建议长度多于10位,避免与他人重复
注册设备成功后注意保存返回的设备ID和密钥。
-
双击启动设备接入模拟器(HubSimulator.jar),切换到MQTT设备模拟器页签。
![]()
-
输入服务IP,设备ID,设备密钥,单击“建立连接”。
![]()
服务IP:进入设备接入管理服务控制台查看,填写为MQTTS接入信息的域名。
设备ID:注册设备成功后返回的设备ID。
设备密钥:注册设备成功后返回的密钥。
**注:**若无法建立连接,请在系统开始菜单输入“cmd”打开命令行,输入“ping 服务IP:服务端口”查看您的主机是否能和华为云物联网平台正常通信,若无法正常通信,请更换主机的网络环境。
-
建立连接成功后,右侧日志显示MQTT服务连接成功。
![]()
-
在模拟器下方区域填写上报数据内容后单击“发送消息”。
上报数据的样例如下:
{"msgType": "deviceReq",
"data": [{
"serviceId": "Sensor",
"serviceData": {
"luminance": "200"}}]}
-
发送消息成功后,右侧日志显示信息推送成功。
-
在“路灯管理”页面,可以观察光强监控和光强变化(下图仅为示例,请以实际为准)。
![]()
然后验证命令下发。在本章节中,我们会为智慧路灯设计三种开关模式,分别是终端联控模式、分段定时模式和自动调光模式。
-
使用模拟器订阅Topic:“/huawei/v1/devices/{deviceId}/command/json”(其中{deviceId}需要替换成实际设备ID)。
![]()
-
首先验证终端联控模式。终端联控模式是指用户在平台直接控制路灯的开关。
选择“路灯管理 \> LED开关”,点击“设置参数”,“led”选择“ON”,单击“发送命令”。

此时模拟器应该收到开灯命令(payload的值经过base64加密,解密后即可得到命令内容)

关灯命令与开灯命令操作步骤一样,差别是“led”选择“OFF”。
以下步骤为可选步骤,用于体验进阶操作
- 然后实现分段定时模式。分段定时模式是指路灯在指定时间段自动开关。
新建两条规则,分别用于控制照明灯在不同时间下的开和关。
选择“规则”,单击“创建规则”。

-
选择设备联动规则,填写规则信息:
1. 规则名称:规则名称:TIME_ON,红框内其他参数取默认值。
![]()
2. 在“条件”模块,点击“时间”所在行右侧的“添加”。

3. 选择开灯时间并提交。为方便验证,建议选择当前时间的数分钟后。其余参数留空。

4. 在“动作”模块,点击“设备行位”所在行右侧的“添加”。

5. 填写动作信息并提交:
- 动作类型:设备
- 选择设备模型:选择已导入的路灯产品
- 点击选择设备:选择已注册的开发板设备
- 服务类型:LED
- 命令名字:Set\_LED
- 参数:led
- 值:ON
- 命令状态:启用
- 其余参数留空

6.规则设置完毕后,点击页面最下方的“提交”。
- 创建定时关灯规则,基本操作和创建定时开灯规则相同,区别在于:
- 规则名称填写为“TIME\_OFF”
- 时间点选择为开灯规则的一分钟后
- 动作中的命令取值设置为“OFF”
- 测试指定时间自动开关灯。
- 等到TIME\_ON规则设置的时间点,模拟器应该收到开灯命令。
- 再等到TIME\_OFF规则设置的时间点,模拟器应该收到关灯命令。
- 最后实现自动调光模式。自动调光模式是指路灯在指定的光强下自动开关。
新建两条规则,分别用于控制照明灯在不同光强下的开和关。
选择“规则”,单击“创建规则”。
- 创建光强变化自动开灯规则,填写规则信息:
1. 规则名称:LED\_ON,其他规则信息参数保持默认。

2. 在“条件”模块,点击“设备行为”所在行右侧的“添加”。

3. 填写条件信息并提交:
- 条件类型:设备类型
- 选择设备模型:选择已创建的路灯产品
- 服务类型:Sensor
- 属性名字:luminance
- 操作:\<
- 值:50

4. 在“动作”模块,点击“设备行位”所在行右侧的“添加”。

5. 填写动作信息并提交:
- 动作类型:设备
- 选择设备模型:选择已创建的路灯产品
- 点击选择设备:选择已注册的开发板设备
- 服务类型:LED
- 命令名字:Set\_LED
- 参数:led
- 值:ON
- 命令状态:启用
- 其余参数留空

6. 规则设置完毕后,点击页面最下方的“提交”。
- 创建光强变化自动关灯规则,基本操作和创建光强变化自动开灯规则相同,区别在于:
- 规则名称填写为“LED\_OFF”
- 条件设置为luminance \> 500
- 动作中的命令取值设置为“OFF”
-
测试光强变化自动开关灯。
- 模拟器上报一条亮度小于50的数据,然后模拟器应该接到开灯命令。
上报数据的样例如下:
{"msgType": "deviceReq",
"data": [{
"serviceId": "Sensor ",
"serviceData": {
"luminance": "20"}}]}
- 模拟器上报一条亮度大于500的数据,然后模拟器应该接到开灯命令。
上报数据的样例如下:
{"msgType": "deviceReq",
"data": [{
"serviceId": "Sensor ",
"serviceData": {
"luminance": "700"}}]}
十分钟开发您的第一个智慧路灯应用
您在体验过程中有任何疑问,都可以在此留言反馈>>
1. 介绍
背景介绍
智慧路灯是城市智能化道路上重要一环,智慧路灯的实施具有节约公共照明能耗、减少人工投入和因照明引起的交通事故等多种社会意义。路灯也是大家在日常生活中可以强烈感知到的公共设施,更易理解其智能化的场景。
通过将路灯接入物联网平台,并开发应用对接物联网平台。我们可以做到路灯的智能化管理。
您将建立什么
在本次Codelab中,我们基于华为物联网应用构建器构建一款智慧路灯应用,显示路灯上报环境光强,给路灯下发开关灯命令,带您十分钟体验物联应用开发。
您将会学到什么
您需要什么
2. 构建应用
登录华为云官方网站,访问物联网应用构建器。
单击“立即使用”并开通服务后,在控制台中单击“创建项目”。
填写项目名称(如“SmartStreetLight”)并确认,然后进入项目开发页面。
单击“创建应用”。
填写应用名称(如“SmartStreetLight”),选择“基础模板”,单击“确定”。
3. 导入产品模型
单击“开发应用”,进入应用开发页面。
进入“产品模型”页面,单击“新增产品模型 > 本地导入”。
填写产品名称(如“SmartStreetLight”),上传智慧路灯产品模型(SmartStreetLight.zip),单击确定。
4. 编辑应用
将鼠标移至“自定义页面1”上,在弹出的列表中选择“修改”,修改页面信息。在弹出的窗口中,修改“菜单名称”为“路灯管理”,其他保持默认,然后单击“确定”。
选择“路灯管理”页面,设计页面组件布局。
拖动1个“选择设备”组件、2个“设备监控”组件和1个“命令下发”组件至页面中,并按下图所示的布局进行摆放。
分别单击页面中的“设备监控”组件,在右侧“配置面板 > 样式 ”中设置组件的样式。
监控组件1
监控组件2
分别单击页面中的“设备监控”组件,在右侧“配置面板 > 数据 ”中设置组件的数据源。因为2个“监控”组件都是用于监控路灯的光强,只是显示方式不同,所以“数据”页面参数设置一样。
单击页面中的“命令下发”组件,在右侧“配置面板”设置对应功能的属性参数。
设置“样式”页签参数
设置“数据”页签参数
路灯管理页面构建完成,单击右上角“保存”,然后单击“预览”查看应用页面效果。若预览效果中组件错位,请回到编辑页面通过拖拽方式调整组件的形状和位置。
5. 调试应用
调试应用前,我们需要先安装JDK,设备接入模拟器对JDK有依赖。
下载JDK 1.8版本,如“jdk-8u161-windows-x64.exe”,并双击进行安装。官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
以下以WIN7为例说明如何配置环境变量。右键单击“计算机”,选择“属性”。
单击“高级系统设置”。
单击“环境变量”。
配置系统变量。需配置3个变量:JAVA_HOME、Path、CLASSPATH(不区分大小写)。若变量名已经存在,则单击“编辑”;若变量名不存在,则单击“新建”。一般Path变量存在,JAVA_HOME变量和CLASSPATH变量需要新增。
JAVA_HOME指明JDK安装路径,配置示例:C:\ProgramFiles\Java\jdk1.8.0_45。此路径下包括lib,bin等文件夹。
Path变量使系统可以在任何路径下识别Java命令。如果Path变量已经存在,则需在变量值最后添加路径,配置示例:;C:\Program Files\Java\jdk1.8.0_45\bin;C:\Program Files\Java\jdk1.8.0_45\jre\bin。
两个路径之间需要使用“;”分割,分号是英文半角。
CLASSPATH为Java加载类(class或lib)路径,只有配置CLASSPATH,Java命令才能识别。配置示例:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(路径以“.”开始,表示当前路径)。
重启系统,使环境变量生效。
选择“开始 > 运行”,输入“cmd”,执行命令:java -version、java、javac。如果命令可以执行,则说明环境变量配置成功。
然后让我们调试应用。
在已构建应用的预览界面中,选择“设备注册 > 单个注册”,单击“创建”。
系统将弹出“单个设备注册”窗口,填写设备相关信息,单击“确定”。
产品选择:选择已导入的路灯产品
设备名称:自定义
设备识别码:填写自定义字符串,建议长度多于10位,避免与他人重复
注册设备成功后注意保存返回的设备ID和密钥。
双击启动设备接入模拟器(HubSimulator.jar),切换到MQTT设备模拟器页签。
输入服务IP,设备ID,设备密钥,单击“建立连接”。
服务IP:进入设备接入管理服务控制台查看,填写为MQTTS接入信息的域名。
设备ID:注册设备成功后返回的设备ID。
设备密钥:注册设备成功后返回的密钥。
**注:**若无法建立连接,请在系统开始菜单输入“cmd”打开命令行,输入“ping 服务IP:服务端口”查看您的主机是否能和华为云物联网平台正常通信,若无法正常通信,请更换主机的网络环境。
建立连接成功后,右侧日志显示MQTT服务连接成功。
在模拟器下方区域填写上报数据内容后单击“发送消息”。
上报数据的样例如下:
发送消息成功后,右侧日志显示信息推送成功。
在“路灯管理”页面,可以观察光强监控和光强变化(下图仅为示例,请以实际为准)。
然后验证命令下发。在本章节中,我们会为智慧路灯设计三种开关模式,分别是终端联控模式、分段定时模式和自动调光模式。
使用模拟器订阅Topic:“/huawei/v1/devices/{deviceId}/command/json”(其中{deviceId}需要替换成实际设备ID)。
首先验证终端联控模式。终端联控模式是指用户在平台直接控制路灯的开关。
以下步骤为可选步骤,用于体验进阶操作
选择设备联动规则,填写规则信息:
1. 规则名称:规则名称:TIME_ON,红框内其他参数取默认值。
测试光强变化自动开关灯。 - 模拟器上报一条亮度小于50的数据,然后模拟器应该接到开灯命令。
上报数据的样例如下:
{"msgType": "deviceReq",
"data": [{ "serviceId": "Sensor ",
"serviceData": { "luminance": "20"}}]}
6. 恭喜您
祝贺您,您已经完成了智慧路灯应用的开发,并学到了:
7. 参与互动赢好礼
欢迎体验华为云IoT CodeLabs,点击下方按钮可返回华为云IoT CodeLabs论坛帖参与活动,有机会赢取荣耀手环、移动电源等大奖哦!![闯关有礼]()