一.项目背景
- 城市化进程加快与能源消耗增加:随着城市化进程的加速,能源消耗量也在不断增加,这给城市的可持续发展带来了巨大压力。为了实现城市的可持续发展,必须采取有效措施降低能源消耗,减少环境污染。
- 环境污染问题日益凸显:随着工业化、城市化的快速发展,环境污染问题日益严重,已经成为制约社会经济发展的重要因素。为了改善环境质量,实现绿色发展,需要建立节能减排监控系统,对园区内的能源消耗和环境污染进行实时监测和管理。
- 智慧城市建设的需求:随着信息化、智能化技术的不断发展,智慧城市已经成为未来城市发展的重要方向。智慧园区作为智慧城市建设的重要组成部分,需要建立节能减排监控系统,实现园区内各种设备的智能化管理,提高能源利用效率,降低环境污染。
二.实训目标
1、熟练掌握IPSO 规范
2、会新增传感器资源并上报数据
3、会响应平台下发的指令
4、会使用 HTTP 推送
5、了解并会使用postman
三.实训过程
3.1新增传感器资源并上报数据
1、在 main.c 文件中添加包含“BH1750.h”和"Lcd_Driver.h"头文件的预处理命令
2、在 main.c 文件中增加光照和 LED 的类型结构,并声明外部变量
3、在 main.c 文件的主函数中,在“写”回调函数添加 LED 灯模拟打开、关闭的代码
4、在 main.c 文件的主函数中,在“读”回调函数添加光照和 LED 灯的控制代码,当从平台接收到控制写入命令时,响应控制。
5、在 main.c 文件中,更改 IMEI 和IMSI 信息
6、登录 OneNET 平台,进入【设备管理】,查看设备是否在线。当设备显示在线后,在操作栏选择【详情】,进入【设备资源】
7、在设备资源列表界面,可查看到光照传感器和光照控制的三元组 objId/instId/resId 代码
8、选择 Light Control 对象,进入详情页面,具体操作界面如下图所示:进入详情页面后可以观察到终端上报平台的状态与上报时间。点击【写】操作按钮,可以对LED 灯进行开关控制。
9、点击“写”操作按钮后,在弹出的对话框中输入“true”点击确定,就可以打开开发板上的 LED白色背光,输入“false”点击确定,可以关闭 LED,显示黑色背光。
3.2了解并使用postman软件(API)
-
缓存命令-读设备资源
1、建立合集
2、打开ONENET云平台文档中心-LwM2M-缓存命令 -读设备资源
复制接口网址
3、根据产品的IMEI填写,obj_jd填3301
4、填写headers的相关数据
其值由以下步骤生成
1)打开token计算工具-输入以下信息
5、输入完成后,点击send,出现success即成功
-
即时命令-读设备资源
1、新建项目-打开ONENET云平台文档中心-LwM2M-即时命令 -读设备资源复制接口网址
2、填写imei等相关信息
3、填写headers的相关数据(与前面一样)
4、输入完成后,点击send,出现success即成功
-
即时命令-写设备资源
1、新建项目-选择post-打开ONENET云平台文档中心-LwM2M-即时命令 -写设备资源复制接口网址
2、填写imei等相关信息
3、填写headers信息
4、填写body信息(填写如下)
5、输入完成后,点击send,出现success即成功
3.3使用 HTTP 数据推送自动开关 LED 灯
1、打开灯光推送应用用户门户,以OneNET注册用户的 用户id 和用户AcessKey 登陆
2、绑定NB-IoT设备的IMEI号
3、实例创建
进入OneNET物联网开放平台“开发者中心”,选择菜单栏中的【数据流转】下的【资源管理】,点击【HTTP推送实例】,每个实例对应一个HTTP的推送配置。点击【添加实例】,填写实例名称、推送地址、Token等信息,完成实例新增
4、实例验证-实例列表页面,点击【验证】
5、规则引擎配置
展开菜单栏中【数据流转】,点击【规则引擎】进入规则引擎页,点击【直接添加规则】,配置规则名称、规则描述后保存,进入规则引擎详情页。
6、配置完成后,启动该规则引擎
7、观察光照数值变化与LCD模块颜色状态的变化
1)室内照明情况下,LCD模块应处于“关闭”状态(颜色程序编写的“关”状态颜色)
2)用物体遮挡光照传感器模块(约30秒),LCD模块应处于“开启”状态
3)拿开遮盖物,约30秒后,LCD模块应处于“关闭”状态(颜色程序编写的“关”状态颜色)
4)同时可在平台上通过查看实例获得推送数据统计
四.实训收获
- 通过本次实训,深入了解了更多专业知识,提升了自己的专业能力
- 学习了IPSO规范和Postman工具的使用,了解更多关于API的知识
- 问题解决:在实训过程中遇到了一些问题,例如在postman使用过程中,出现非法请求数据等相关问题,通过求助老师,找到了问题所在并成功解决