项目三 智慧园区能源管控系统 实训报告

实验目的

智慧园区为体现低消耗、低排放、高性能、高舒适的设计理念,应用集
成技术和物联网技术在智慧园区内建设能效管理系统,实现多能涌、多
业态和多用户的综合能涌管理。

实验任务

1.实时采集温湿度,光照,气压值。
2.实现对灯光的自动控制,当光照充足的时候,灯光熄灭。光照暗时,照明灯亮起。

实验步骤

一、代码更改

1.写回调函数

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)
    {
        if(data->value.as_bool)
        {
            Lcd_Clear(WHITE);
            ledStatus.Led1Sta=1;
        }
        else
        {
            Lcd_Clear(BLACK);
            ledStatus.Led1Sta=0;
        }
    }
   
}

2.添加 读回调函数

if(objid == 3303 && instid == 0 && resid == 5700)
            {
                SHT20_INFO sht20 = { 0 };
        sht20 = SHT20_GetValue();
        temp.value.as_float = sht20.tempreture;
            }
        else if(objid == 3301 && instid == 0 && resid == 5700)
            {
                BH1750_test();
                illumi.value.as_float = result_lx;
            }

3.更新资源

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;
                illumi.flag |= NBIOT_UPDATED;
                led.flag |= NBIOT_UPDATED;
        led.value.as_bool = ledStatus.Led1Sta;
                BH1750_test();
        sht20 = SHT20_GetValue();
        temp.value.as_float = sht20.tempreture;
        humi.value.as_float = sht20.humidity;
                illumi.value.as_float = result_lx;
            
    } else if (cur_time == 0 && last_time == 0) {
        cur_time = nbiot_time();
        last_time = cur_time;
    } else {
        cur_time = nbiot_time();
    }
}

4.添加光照和lcd灯资源

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

二、平台控制

1.资源列表


平台2022-03-29 114242.png

2.平台控制灯


平台2022-03-29 114212.png

三、在Postman添加资源调用API

image.png

postman读.png

四、数据推送自动控制灯光

1.修改intellij IDEA参数


image.png

2.控制灯光数据


平台 4.1.png

3.数据推送验证成功
平台4.1.png

实验总结

通过此次项目的实施,能够实现对园区内的温湿度实时检测。虽然过程并不顺利,但是在老师的帮助下,实验都顺利下去了,在这次项目中更熟悉了postman的用法。

你可能感兴趣的:(项目三 智慧园区能源管控系统 实训报告)