基于OneNET的智慧园区监控系统实训报告

一、项目背景

随着国家建设的推进,人们不仅仅满足于现在的生活标准,智慧生活,高效生活是当代人日益高涨要求的标准。而智慧园区作为智慧城市的主要组成部分,它的建设正日益提上日程,迎来了新的机遇。

二、实训目标

1 采集温湿度、光照、大气压值
2 实现环境内根据光照强度自动控制开关灯
3 可以在平台直接发命令控制开关灯
4 通过Postman控制灯开关
5 学会使用“轻应用”

三、实训步骤

1.代码编写

main.c

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);
  }
}
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 ;
            }
}
//添加光照资源
     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);
}
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();
    }
}

2.平台读取光照、大气压值等

查看对象数量

3.POSTMAN调用API

调用API

4.设置触发器

添加触发器

当光照小于150时灯亮,大于等于150时灯熄。

5.“玩转轻应用”

1,在应用管理新增应用;
2,编辑应用;
3,轻应用界面设置及数据值传输显示

四、实训总结

本次的实验关键在于POSTMAN调用API的操作,不仅要把产品在平台的Params调回回到POSTMAN,还需要设置POSTMAN的Body的raw代码实现产品与平台的数据传输。

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