项目三 智慧园区节能减排监控系统实训报告

一、项目背景

智慧城市园区节能减排监控系统的项目背景是在城市化进程加快、能源消耗增加及环境污染问题日益凸显的背景下,为实现城市可持续发展和节能减排目标,建立智慧城市园区节能减排监控系统成为当务之急。通过该系统,可以实时监测园区内各类能源消耗情况,优化能源利用结构,提高资源利用效率,推动园区节能减排工作,并为构建智慧城市、打造宜居环保的城市生态环境提供有力支撑。

二、项目目标

为了监控和管理环境中的温度、湿度、光照以及LCD等关键指标,我们实施基于多种物联网监控设备和云服务平台的解决方案。这些设备不仅能够实时监测环境的温湿度数据,而且还支持远程手动操作。系统能够不断地追踪记录城市不同地区的温度、湿度和光照数据,并迅速将这些数据传送到控制中心。通过应用大数据分析,可以制作出环境热力图、湿度分布图等图表,以提供更全面的环境状况视图。此外,系统还能对环境数据进行预测和分析,帮助我们提前做好准备,应对环境中的变化。
在OneNET物联网开放平台上成功接入NB设备后,可以实现与平台第三方应用的数据交互,从而在应用服务界面上获取NB设备的全部数据。在应用程序中,一旦监测到光照传感器的读数超出预设的最大阈值,系统将自动通过API关闭灯光;相反,如果读数降至预设的最小阈值以下,系统将自动通过API开启LED灯,以达到节能效果。
实训项目的目标包括:

  1. 熟练掌握IPSO规范。
  2. 学习如何新增传感器资源并上报数据。
  3. 学习如何响应平台下发的指令。
  4. 学习如何利用数据推送功能实现自动开关LED灯。

三、系统环境的搭建

3.1参数配置

3.1.1OneNET云平台创建产品设备

1、注册登录云平台,创建产品
2、在创建的产品中添加设备

3.1.2硬件的搭建

1、设备通电,连接电脑
2、本实验要用到核心板、温湿度模块、NB-IoT 模块、光照模块和 LCD 模块

3.1.3IMEI、IMSI生成及使用

1、用NB-IMEI生成器随机生成两个IMEI号并同步写入代码及生成的产品中
2、在代码中更改IMEI号和IMSI号,与产品设备IMEI号、IMSI号保持一致

3.1.4代码添加

1、在 main.c 文件中添加包含“BH1750.h”和"Lcd_Driver.h"头文件的预处理命令
添加代码

添加以下代码:

#include "BH1750.h"     /* 光照传感器 */
#include "Lcd_Driver.h" /*LCD屏*/
2、在 main.c 文件中增加光照和 LED 的类型结构,并声明外部变量。添加位置和代码如下图所示:
代码添加

添加以下代码:

nbiot_value_t illumi;     /* 光照 */
nbiot_value_t led;     /* LED灯 */

extern float result_lx;/*光照*/
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;
            }
    }       
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;
5、在 main.c 文件中修改网络配置,修改引导机服务地址,更改 IMEI 和IMSI 信息。

具体添加位置如下图所示:


添加代码

添加以下代码:

char uri[] = "coap://183.230.40.40:5683";   // 引导机服务
char *serv_addr = "183.230.102.118";          // 接入机 IP 地址,暂时无用
const char endpoint_name[] = "739401181512136;848055479124166";     // IMEI;IMSI

代码中的 IMEI 和 IMSI 需保持跟OneNET 平台上的一样。

6、在 main.c 文件里增加光照值、LED 数值的读取更新
添加代码

添加以下代码:

            /* 更新光照数值 */
            illumi.flag |= NBIOT_UPDATED;
            BH1750_test();
            illumi.value.as_float = result_lx;
            /* 更新 LED 数值*/
            led.flag |= NBIOT_UPDATED;
            led.value.as_bool = ledStatus.Led1Sta;
        
        } else if (cur_time == 0 && last_time == 0) {
        cur_time = nbiot_time();
        last_time = cur_time;
    } else {
        cur_time = nbiot_time();
    }
7、在 main.c 文件里增加光照、LED 资源
QQ截图20240415181259.png

添加以下代码:

// 添加光照资源
        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.2接入OneNET平台

1、烧写代码,打开串口调试助手,查看数据
串口调试助手
2、OneNET 云平台设备上线
设备上线情况
3、在资源列表界面,可以看到温度、湿度、光照、LED 灯,还可以查看属性值等。
资源属性
4、在设备资源列表中可查看到光照传感器和光照控制的代码
设备资源参数.png

3.3 周期上报数据

3.3.1温度数据

温度数据

3.3.2湿度数据

湿度数据

3.3.3光照数据

光照数据

3.3.4LCD数据

LCD控制数据
1、在 Light Control 对象的详情页面中,可以观察到终端上报平台的状态以及上报时间。通过简单点击操作界面上的【写】按钮,可以控制 LED 灯的开关状态。

点击“写”操作按钮后,在弹出的对话框中输入“true”点击确定,就可以打开开发板上的 LED白色背光


true命令.jpg

输入“false”点击确定,可以关闭 LED,显示黑色背光


fasle.jpg

3.4用Postman写/读命令

1、 LWM2M即时命令-写设备资源
即时命令-写设备资源
2、LWM2M即时命令-读设备资源
即时命令-读设备资源
3、 LWM2M缓存命令-读设备资源
缓存命令-读设备资源

3.5使用数据推送功能自动开关led灯

3.5.1在OneNET云平台配置参数

1、在OneNET云平台开发者中心,找到数据流转→数据推送中对产品进行设置,添加url和token协议,消息加密方式为明文方式
数据推送设置
2、打开产品的生态状态
数据推送设置

3.5.2第三方应用的配置参数

1、打开灯光推送运用用户门户,以OneNET注册用户的 用户id 和用户AcessKey 登陆。

具体的id,AcessKey信息在OneNET官网(用户中心-访问权限页面)


第三方登录

第三方登录

注:首次登陆用户id无使用记录需进行二次登录,用户id和用户密钥必须要和OneNET云平台的id和AcessKey一致。

2、绑定NB-IoT设备的IMEI号(绑定的IMEI号为项目三设备的IMEI号)
应用设备绑定

3.5.3数据推送

观察LCD的显示变化,在确保设备在线的状态下,无论NB-IoT设备是上线、下线还是上报新数据,服务器都能实时接收到这些数据。程序将解析新数据其中的光照值,根据预设的阈值来自动控制LCD灯的开关。
1、监控光照传感器的数值,一旦低于预设的最小阈值,系统将自动调用API来开启LED灯。为了测试这一功能,可以使用物体遮挡光照传感器模块大约30秒,此时LCD模块应该显示为“开启”状态,并且LED灯亮起。
LED打开
2、当光照传感器的值达到预设的最大阈值时,系统将自动触发API来关闭LED灯。在室内照明环境中,LCD模块应当显示为“关闭”状态,并且LED灯熄灭。
LED关闭

4. 总结

在这次学习旅程中,我精通了运用ONE Net云平台对温湿度环境进行细致监控的技巧。通过亲身实践,我掌握了如何将温湿度感知设备顺畅地连接到云平台,以实现无缝的数据收集和实时分析。
实践环节中,我熟练掌握了如何调整监控参数、构建高效的监控任务,并能够实时追踪和查看数据变动。除此之外,我还学会了如何利用云平台提供的高级数据分析工具,对收集到的温湿度数据进行深度挖掘,从而更准确地洞察环境变化的趋势和规律。
我对IPSO标准有了深入的理解,并能够独立新增传感器资源、上传数据,同时响应云平台发出的各项指令。
后期也完成了与云平台第三方应用的数据推送功能,使得应用服务界面能够获取NB设备的完整数据。在应用程序中,我实现了对光照传感器值的监控,当这些值超过预设的最大阈值时,系统会自动通过API指令关闭灯光;反之,如果值降至预设的最小阈值以下,系统则会自动通过API指令开启LED灯,以此来达到节能的目的。
这次学习不仅极大丰富了我对温湿度监控技术的理解,更锻炼了我的实际操作能力。我相信,这些新获得的知识和技能将在我的职业生涯中发挥关键作用,助力我应对未来各种工作挑战。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容