2021-04-18

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

一、项目背景

在智慧城市的发展引导下,“智慧园区”理念开始进入大众视野。智慧园区是结合利用物联网、云计算、大数据等新一代信息技术对园区进行全面升级,并在整合园区资源信息的基础上建立的自主创新服务体系的新型园区。智慧园区是智慧城市的重要表现形态,其体系结构与发展模式是智慧城市在小区域范围内的缩影,但却具备不同于智慧城市发展模式的独特性。

二、项目目标

(1)采集温度、湿度、光照、气压值,;
(2)实现公共区域照明系统的灯光自动控制,当光照充足时,照明灯熄灭,光照较暗时,照明灯开启;
(3)轻应用展示温度、湿度、光照、气压值;
(4)可视化展示温度、湿度、光照、气压值。

三、实验步骤

1.改写代码

(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 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 ;
            }
}

(4)写回调函数

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

2、连接ONENET平台

(1)接入设备

接入设备.png

(2)LED控制

LED控制.png

3、POSTMAN调用

postman.png

4、触发器设置

触发器.png

四、总结

本次项目中,目标都能完成,完成的思路也比较清晰,发掘了更多的ONENET的功能,同时也对POSTMAN的使用也更加熟练了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 海底奇旅 不得不挥霍尽所有时光看陆地,倾尽所能终也收获寥寥,恰如陆地之蝼蚁,目光短浅涉足...
    讨儿喜厌儿欢阅读 4,827评论 0 0
  • 离市区最远的机场是哪个?航盟告诉您为什么机场越修越远? 4月10日,青岛胶东国际机场举行了第一次大型综合演练,演练...
    如此可爱开朗阅读 3,728评论 0 1
  • 二十一世纪旧体诗词风骚榜[https://www.jianshu.com/c/da968ae2d498] 上榜絮语...
    张成昱阅读 3,882评论 1 16
  • 夜莺2517阅读 127,810评论 1 9
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,732评论 28 53