实验目的
智慧园区为体现低消耗、低排放、高性能、高舒适的设计理念,应用集
成技术和物联网技术在智慧园区内建设能效管理系统,实现多能涌、多
业态和多用户的综合能涌管理。
实验任务
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.资源列表
2.平台控制灯
三、在Postman添加资源调用API
四、数据推送自动控制灯光
1.修改intellij IDEA参数
2.控制灯光数据
3.数据推送验证成功
实验总结
通过此次项目的实施,能够实现对园区内的温湿度实时检测。虽然过程并不顺利,但是在老师的帮助下,实验都顺利下去了,在这次项目中更熟悉了postman的用法。