1项目背景
首先,随着我国经济社会的持续发展,能源生产和消费模式正在发生重大转变。能源产业不仅需要提高能源效率、保障能源安全,还要促进新能源消纳和推动环境保护。传统的能源系统建设主要侧重于单一系统的纵向延伸,而能源系统间的物理互联和信息交互相对较少。因此,适应这种转变,需要改变传统能源系统建设路径和发展模式。
其次,对于园区而言,如何加强能源管理、降低能耗、提高能源利用效率,实现人和能源、能源和能源之间的密切交互,成为了一个普遍面临的问题。园区作为能源消耗密集的区域,具有耗能密度大、负荷利用时长高、可再生能源比例高、产能形式多样化等特点。智慧园区能源管控系统的建设,正是为了有效应对这些挑战,推动可再生能源的大规模就地消纳,提高能源的综合利用率,从而实现节能减排的目标。
此外,全球气候正面临严峻的挑战,碳减排、碳达峰已成为全人类的共同使命。在国内,“能源双控”政策的持续升级使得生产性企业面临更大的压力,如何有效控制碳排放量、提升能源使用效率、降低能耗,进而实现“双碳目标”,成为了企业亟待解决的问题。
因此,智慧园区能源管控系统项目的提出和实施,旨在通过应用集成技术和物联网技术,建设一个高效、智能的能源管理系统,实现对园区内多种能源、多业态和多用户的综合能源管理。该系统不仅可以实现能源使用情况的实时监测和节能管理,还能提供决策支持,为园区的能源管理提供科学、有效的解决方案。
2 实验目标
1.实时采集温湿度,光照。
2.会使用 HTTP 推送.
3.实现对LCD的自动控制。
3实验步骤
1.硬件搭建
利用物联网实验箱中的核心板、NB-IOT模块、LCD模块、ZigBee-光照模块、ZigBee-温湿度模块按照图片所示搭建。
2.1修改代码
添加以下代码:
#include "BH1750.h" /* 光照传感器 */
#include "Lcd_Driver.h" /*LCD屏*/
2.2在 main.c 文件中增加光照和 LED 的类型结构,并声明外部变量。添加位置和代码如下图所示:
添加以下代码:
nbiot_value_t illumi; /* 光照 */
nbiot_value_t led; /* LED灯 */
extern float result_lx;/*光照*/
2.3###### 在 main.c 文件的主函数中,在“写”回调函数添加 LED 灯模拟打开、关闭的代码。
添加以下代码:
if(objid ==3311 && instid==0 && resid ==5850)/*LED灯*/
{
if( data->value.as_bool)
{
// 打开白色背光以模拟 LED 打开
Lcd_Clear(WHITE);
ledStatus.Led1Sta=1;
}
else
{
//打开黑色背光以模拟 LED 打开
Lcd_Clear(BLACK);
ledStatus.Led1Sta=0;
}
}
2.4###### 在 main.c 文件的主函数中,在“读”回调函数添加光照和 LED 灯的控制代码,当从平台接收到控制写入命令时,响应控制。
添加以下代码:
else if (objid == 3301 && instid == 0 && resid == 5700) { /* 光 照 */
BH1750_test();
illumi.value.as_float = result_lx;
} else if (objid == 3311 && instid == 0 && resid == 5850) { /* LED */
led.value.as_bool = ledStatus.Led1Sta;
2.5###### 在 main.c 文件里增加光照、LED 资源
添加以下代码:
// 添加光照资源
illumi.type = NBIOT_FLOAT;
illumi.flag = NBIOT_READABLE;
ret = nbiot_resource_add(dev, 3301, 0, 5700, &illumi);
if (ret)
{
nbiot_device_destroy(dev);
printf("device add resource(illumi) failed, code = %d.\r\n", ret);
}
// 添加 LED 灯资源
led.type = NBIOT_BOOLEAN;
led.flag = NBIOT_READABLE | NBIOT_WRITABLE;
ret = nbiot_resource_add(dev, 3311, 0, 5850, &led);
if (ret)
{
nbiot_device_destroy(dev);
printf("device add resource(led) failed, code = %d.\r\n", ret);
}
3.登录ONENET云平台
4.打开灯光推送应用用户门户,以OneNET注册用户的 用户id 和用户AcessKey 登陆门户地址:http://1.14.71.134:8080/
5.绑定NB-IoT设备的IMEI号
IMEI号需要正确填写在OneNET官网上创建的LwM2M设备IMEI号,进入“我的物联网”-“设备”菜单页面,填写IMEI号(用于数据推送时匹配),点击确定完成绑定
6.实例创建
进入OneNET物联网开放平台“开发者中心”,选择菜单栏中的【数据流转】下的【资源管理】,点击【HTTP推送实例】,每个实例对应一个HTTP的推送配置点击【添加实例】,填写实例名称、推送地址、Token等信息,完成实例新增。
7.实例创建成功后,下一步进行实例验证。实例列表页面,点击【验证】,平台服务器会向配置的服务器地址发送HTTP GET请求,进行地址有效性验证,只有验证成功了,平台才会向其推送数据,如下:
8.规则引擎配置
实例验证通过后,即配置完数据推送,只是告诉了平台应该完成什么动作,但是还没有告诉平台在什么情况下进行数据推送。这就需要用到规则引擎。规则描述了数据从哪里来、如何筛选并处理数据、处理数据到哪里去三个参数信息,是规则引擎流转数据的基础配置。展开菜单栏中【数据流转】,点击【规则引擎】进入规则引擎页,点击【直接添加规则】,配置规则名称、规则描述后保存,进入规则引擎详情页。您可进行条件过滤设置和转发方式设置,转发方式设置支持“HTTP推送”,筛选范围指定设备数据的获取范围,这里为“指定产品”。
9.配置完成后,启动该规则引擎
10.观察光照数值变化与LCD模块颜色状态的变化。接下来观察LCD的变化,确保设备在线的情况下,当 NB-IoT 设备上下线、上报新数据时,应用服务器就能够获得这些数据,当数据上报时,程序会解析其中的光照度数据,并且根据预设的阈值,对 LCD 灯进行控制。
4总结
1.大体了解了HTTP 推送。
2.学会了在实验中遇到问题该如何去解决。