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

1.实验背景

智慧城市光照监控系统是智慧城市建设中专门针对城市照明系统而设计的一个智能化管理系统。它通过集成物联网、云计算、大数据、传感器技术等先进的信息技术手段,实现对城市范围内路灯、景观灯等照明设备的实时监控、远程控制、故障报警、数据分析与决策支持等功能。智慧城市光照监控系统的出现便于节约能源、保护环境,在建设美丽中国中有着重大的作用!

2.实验目标

  • 提高城市照明的智能化水平
  • 实现照明设备的精准控制和高效管理
  • 提升城市照明的质量、节能减排
  • 优化城市环境

3.实验步骤

实验一 数据上云平台

  • 步骤 1 添加传感器资源

1.在项目二智慧城市温湿度监测系统的源代码基础上进行修改,在 main.c 文件中,更改 IMEI 和IMSI 信息,在 OneNET 平台添加设备时,指定了设备的“IMEI;IMSI”,这里,必须在代码中将 IMEI 和 IMSI 改成跟OneNET 平台上的一样。这样,就可以实现真实设备与OneNET 平台上的虚拟设备一对一映射,修改位置如下:

2.在 main.c 文件中添加包含“BH1750.h”和"Lcd_Driver.h"头文件的预处理命令,如下图所示:


#include "BH1750.h"     /* 光照传感器 */
#include "Lcd_Driver.h"    /* Lcd屏*/

3.在 main.c 文件中增加光照和 LED 的类型结构,并声明外部变量。添加位置和代码如下图所示:


添加的具体代码段如下:


nbiot_value_t illumi;     /* 光照 */
nbiot_value_t led;     /* led灯*/
extern  float result_lx; /* 光照 */

4.) 在 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;
          }
    }

5.在 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;
}

  1. 在 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;

7.在 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);
}

  • 步骤 2 实验箱模块组装

本实验需要用到核心板、温湿度模块、NB-IoT 模块、光照模块和 LCD 模块,组装如下:


  • 步骤 3 编译下载调试

显示“0错74警告”是正常现象。

  • 步骤 4 OneNET 物联网开放平台操作

1.编译烧录代码后登录 OneNET 平台,进入【设备管理】,查看设备是否在线。当设备显示在线后,在操作栏选择【详情】,进入【设备资源】

2.在【设备资源】界面,可以查看到温度、湿度、光照、LED 灯等对象名称,点击对应的三角标,可进入对象界面,查看属性值等。


  • 在设备资源列表界面,可查看到光照传感器和光照控制的三元组objId/instId/resId 代码;
  • 选择 Light Control-0对象,进入详情页面,具体操作界面如下图所示:进入详情页面后可以观察到终端上报平台的状态与上报时间。点击【写】操作按钮,可以对LED 灯进行开关控制。操作界面如下图所示:
  • 点击“写”操作按钮后,在弹出的对话框中输入“true”点击确定,就可以打开开发板上的 LED白色背光,输入“false”点击确定,可以关闭 LED,显示黑色背光。操作界面如下图所示:

实验二 平台API调用

  • 步骤1 安装“Postman”软件

在网页上搜索“Postman”进行安装

  • 步骤2 创建文件

1.安装完成后进行登录注册,随后点击界面左侧“+”号,在出现的下拉栏里选择“Blank collection”创建新文件。

2.点击“Blank collection”后,会出现一个默认名为“New Collection”的文件,可在右侧直接更改命名;亦或是右键单击“New Collection”文件,选择“Rename”进行重命名。


3.创建文件完成后,点击“Add a request”添加“GET”请求。

  • 步骤3 编写调试命令

1.登录打开 OneNET 平台,点击“文档”,点击“ OneNET物联网开放平台 ”,这里面有详细的API调试步骤。


2.进入“ OneNET物联网开放平台 ”后,在左侧菜单栏找到“平台API”,下拉选择“接口详情”,在里面找到“命令下发”

3.在“命令下发”下找到“LwM2M-即时命令”,选择“读设备资源”并打开。打开后可以看到有接口地址、API说明以及各类参数名称。


4.打开“Postman”软件,选择请求方式为“GET”,将“接口地址https://iot-api.heclouds.com/nb-iot复制到请求处,填写“imei”“obj_id”参数。

注:value值均可在OneNET云平台上找到

5.“Params”处填写完后,点击“Headers”进行填写,在Key处添加一个“Authorization”“value”值需要打开“Token计算器”进行转换。


“Token计算器”所在位置:

  • 打开“Token计算器”后,需要修改resetKeyversion。、

    注:
  • 355111为OneNET云平台的用户ID,可以在云平台上查找,登录云平台后点击右上角,找到“账号信息”,点击“访问权限”,在此界面就可以看到自己的用户ID以及密钥。
  • 时间戳:在浏览器搜索“时间戳”进行转换,时间要是未来的某一个时间
  • version:时间设置为2022-05-01


6.填写完后点击“Send”保存。在未连接设备时,点击“Send”会出现“device not online”

  • 步骤4 创建LwM2M-缓存命令

创建步骤如上,分别创建LwM2M-缓存命令POST请求和GET请求,创建完后点击“Send”保存。



注:
POST请求中,需要在“Headers”处多添加一个Key“Content -Type”,如图所示:

实验三 使用 HTTP 数据推送自动开关 LED灯

  • 步骤1 打开灯光推送应用用户门户

以OneNET注册用户的 用户id 和用户AcessKey 登陆,门户地址如下:

门户地址


注意:
1、首次登陆,会提示该用户id未使用记录,需要再次输入相同的用户id和用户AcessKey,登陆即可
成功。
2、需要使用本人在OneNET注册用户的 用户id 和用户AcessKey,如填错,则使用灯光控制功能会
因为鉴权错误而功能失败。具体的信息在OneNET官网(用户中心-访问权限页面),用户id为6位数字,AcessKey需点击查看:

  • 步骤2 绑定NB-IoT设备的IMEI号

进入“我的物联网”-“设备”菜单页面,填写IMEI号(用于数据推送时匹配),点击确定完成绑
定。


注意:IMEI号需要正确填写在OneNET官网上创建的LwM2M设备IMEI号

  • 步骤3 实例创建

进入OneNET物联网开放平台“开发者中心”,选择菜单栏中的数据流转下的资源管理,点击HTTP推送实例,每个实例对应一个HTTP的推送配置。点击添加实例


具体的配置如下:

  • 实例名称:自己取一个合理的名称。

  • 推送地址url:http://1.14.71.134:8080/receive ,注意 URL 后面必须包含 /receive,

  • Token:填入“111”。

  • 消息加密方式:选择“明文模式”,不进行消息加密。


  • 步骤4 实例验证

实例创建成功后,下一步进行实例验证。在实例列表页面,点击验证

  • 步骤5 规则引擎配置

进入OneNET物联网开放平台“开发者中心”,选择菜单栏中的数据流转下的规则引擎,点击直接添加规则


具体的配置如下:

  • 规则名称:LED远程控制
  • 产品筛选:选择指定产品,后面一栏是在云平台所创设备中选
  • 消息源:默认选择设备数据点消息
  • 转发方式:选择HTTP推送
  • 使用资源:默认选择刚刚创建的实例


配置完成后,启动该规则引擎。

  • 步骤6 观察光照数值变化与LCD模块颜色状态的变化

接下来观察LCD的变化,确保设备在线的情况下,当 NB-IoT 设备上下线、上报新数据时,应用服务器就能够获得这些数据,当数据上报时,程序会解析其中的光照度数据,并且根据预设的阈值,对 LCD 灯进行控制。
1、室内照明情况下,LCD模块应处于“关闭”状态(颜色程序编写的“关”状态颜色),如下图:


2、用物体遮挡光照传感器模块(约30秒),LCD模块应处于“开启”状态(颜色程序编写的“开”
状态颜色),如下图:

3、拿开遮盖物,约30秒后,LCD模块应处于“关闭”状态(颜色程序编写的“关”状态颜色)。
4、同时可在平台上通过查看实例获得推送数据统计,进入资源管理下的HTTP推送实例,点击管理,可查看实例的基本信息、推送数据统计、近一月数据趋势。至此,数据推送完成

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

推荐阅读更多精彩内容