智慧园区环境监控系统实训报告

一、实验背景

智慧园区建设是实现园区管理智慧化、现代化的重要途径,通过建设智慧园区,可以优化配置和整合利用各类资源,改善整个园区经济、产业、生态结构,全面提高园区的运行效率、质量和水平。
如果说智慧园区是在充分整合、挖掘、利用信息技术与信息资源的基础上,对园区各领域进行精确化管理,那么环境监测作为智慧园区建设中重要的一环,对智慧园区的建设起到至关重要的作用,因为有它的出现让居民拥有更加智能、舒适、惬意的居住环境。

二、实验目标

(1)采集温度、湿度、光照、气压值,并由OneNnt平台订阅。
(2)实现公共区域照明系统的灯光自动控制,当光照充足时,照明灯熄灭,光照较暗时,照明灯开启(LED模拟照明灯, 云端实现)。
(3)轻应用展示温度、湿度、光照、气压值(云端实现)。

三、实验步骤

(一)、改代码

1、添加资源代码:

//添加光照资源
         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);
    }
        //添加气压资源
         press.type = NBIOT_FLOAT;
    press.flag = NBIOT_READABLE;
    ret = nbiot_resource_add(dev,
            3323,
            0,
            5700,
            &press);
    if (ret)
    {
        nbiot_device_destroy(dev);
        printf("device add resource(press) 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、更新资源代码:

void res_update(time_t interval)
{
    SHT20_INFO sht20;
    if (cur_time >= last_time + interval) {
        cur_time = 0;
        last_time = 0;

        temp.flag |= NBIOT_UPDATED;
        humi.flag |= NBIOT_UPDATED;
        sht20 = SHT20_GetValue();
        temp.value.as_float = ((float)((int)((sht20.tempreture + 0.05) * 100)) / 100);
        humi.value.as_float = sht20.humidity;
              illumi.flag |= NBIOT_UPDATED;
              BH1750_test();
              illumi.value.as_float=result_lx ;
        press.flag |= NBIOT_UPDATED;
              BMP180_test() ;
              press.value .as_float =bmp180.p;
        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();
    }
}

3、写回调函数

void write_callback(
        uint16_t       objid,
        uint16_t       instid,
        uint16_t       resid,
        nbiot_value_t *data)
{
    printf("write /%d/%d/%d£º%d\r\n",
            objid,
            instid,
            resid, data->value.as_bool);
if((objid == 3311) &&(instid == 0) &&(resid == 5850))
  {
     Led1_Set(data->value.as_bool);
  }
}

4、读回调函数

void read_callback(
        uint16_t       objid,
        uint16_t       instid,
        uint16_t       resid,
        nbiot_value_t *data)
{
      if(objid==3301&&instid==0&&resid==5700)
            {
               BH1750_test();
                 illumi.value.as_float=result_lx ;
            }
       else  if (objid == 3303 && instid == 0 && resid == 5700) {
        SHT20_INFO sht20 = { 0 };
        sht20 = SHT20_GetValue();
        temp.value.as_float = (int64_t)sht20.tempreture;
    } else if (objid == 3304 && instid == 0 && resid == 5700) {
        SHT20_INFO sht20 = { 0 };
        sht20 = SHT20_GetValue();
        humi.value.as_float = (int64_t)sht20.humidity;
    }
          else if(objid==3323&&instid==0&&resid==5700)
            {
               BMP180_test();
                 press.value.as_float=bmp180.p ;
            }
}

(二)、平台命令(写led)

1、设备接入平台

QQ图片20210418190106.png

2、平台对led灯控制
QQ图片20210418190310.png

(三)、POSTMAN调用API

QQ图片20210418190550.png

(四)、触发器

(设置触发条件:当光照值低于设定的值时,将led1点亮。)


QQ图片20210418190931.png

(五)、轻应用

创建轻应用——编辑轻应用——展示轻应用(数据传输显示)。

四、实验总结

在此次的项目中,我们遇到了一些问题,首先是实验器材的缺少以及我们思维太过于死板,让我们的进度落后了不少。但是经过我们的努力在此次项目的完结之时,我们还是成功的实现了此次项目的基本目标。

你可能感兴趣的:(智慧园区环境监控系统实训报告)