小熊派开发板实践:智慧路灯沙箱实验之真实设备接入
摘要:尝试用小熊派开发板(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。
- 如果系统当前时间位于关灯时间段内,且路灯状态为开,应用会自动下发关灯命令,指示路灯关闭。
- 如果系统当前时间位于关灯时间段外,且路灯状态为关,应用会自动下发开灯命令,指示路灯开启。
综上,通过路灯开发板作为真实设备的接入体验即完成。