小熊派开发板实践:智慧路灯沙箱实验之真实设备接入

时间:2024-01-27 16:36:19
摘要:尝试用小熊派开发板(E53_SC1、NB35)真实设备代替模拟器完成构建智慧路灯应用实验体验。

智慧路灯是城市智能化道路上重要一环,智慧路灯的实施具有节约公共照明能耗、减少因照明引起的交通事故等多种社会意义。路灯也是大家在日常生活中可以强烈感知到的公共设施,更易理解其智能化的场景。

基于物理网解决方案,我们可以实现路灯的远程监控与控制,实现远程控制、按需照明等功能,降低路灯运行成本。

体验《沙箱实验:基于IoT平台构建智慧路灯应用》实验后,有些小伙伴总觉得模拟器体验没有真实设备好,故小主尝试用小熊派开发板(E53_SC1、NB35)真实设备代替模拟器完成实验体验。其中,大部分操作步骤相同,本文仅列出需要修改及注意的地方。

平台侧:

1、创建产品:

  • 模拟器:协议类型为MQTT
  • 真实设备:协议类型为LwM2M/CoAP,且需要开发部署编解码插件。

2、配置智慧路灯应用(注册设备):

  • 模拟器:设备标识可自定义,如123456789f。
  • 真实设备:设备标识填写为NB35通信模组IMEI,可使用串口工具+AT指令(AT+CGSN=1)查询获取设备IMEI。

应用侧:

1、编译构建智慧路灯应用:

创建代码仓库后,需要修改部分代码适配真实设备。

① 修改src/main/java/com/huawei/service/RegisterDirectConnectedDevice.java,添加如下代码。

paramReg.put("device_name", deviceInfo.getVerifyCode());

② 修改src/main/java/com/huawei/service/CreateDeviceCommand.java,变更及添加如下代码。

③ 修改src/main/java/com/huawei/controller/PushReceiver.java,变更及添加如下代码。

2、完成如上修改,重新编译构建出包;再基于新构建的包重新部署路灯应用到ECS服务器。

设备侧:

1、资源准备:

  • 模拟器:HubSimulator.jar
  • 真实设备:小熊派开发板(E53_SC1、NB35)

2、真实设备需要端侧开发,代码编译、烧录。推荐IDE:VS Code+IoT Link插件

3、基于示例工程创建:oc_streetlight_template

4、修改Demos\oc_streetlight_template\oc_streetlight_template.c,填写对接的IoT平台的实际IP、端口。

#define cn_endpoint_id        "BearPi_0001"
#define cn_app_server        "119.3.250.80"
#define cn_app_port         "5683"

5、完成如上修改,编译烧录即可。

结果验证:

1、请将开发板拨码开关拨到AT+MCU侧,并通过USB连接PC上电,进行数据上报。

2、等待1-2分钟查看应用界面,页面应该显示“环境亮度”为设备上报数值,“灯状态”为toggle状态。

3、“路灯控制”选择“终端联控模式”,开关选择“开”,单击“设置”。

  • 查看开发板路灯状态,灯应该点亮。

4、“路灯控制”选择“自动调光模式”,设置亮度阈值为100。

  • 若此时设备上报的光感强度大于100,应用会自动下发关灯命令,指示路灯关闭。
  • 用手遮住路灯扩展板上的光强传感器,使光强小于100,若路灯是关闭状态,则应用会下发开灯命令,指示路灯开启。

5、“路灯控制”选择“分段定时模式”,设置关灯时间段为06:00-18:30。

  • 如果系统当前时间位于关灯时间段内,且路灯状态为开,应用会自动下发关灯命令,指示路灯关闭。
  • 如果系统当前时间位于关灯时间段外,且路灯状态为关,应用会自动下发开灯命令,指示路灯开启。

综上,通过路灯开发板作为真实设备的接入体验即完成。

 

点击关注,第一时间了解华为云新鲜技术~