智慧園區(qū)環(huán)境監(jiān)控系統(tǒng)實(shí)訓(xùn)報(bào)告
一腿箩、實(shí)驗(yàn)背景
在oneNET平臺(tái)實(shí)現(xiàn)溫濕度檢測(cè)以及數(shù)據(jù)集成和展現(xiàn)利用綜合布線技術(shù)尚骄、網(wǎng)絡(luò)通信技術(shù)潭流、安全防范技術(shù)难菌、自動(dòng)控制技術(shù)试溯、音視頻技術(shù)將家居生活有關(guān)的設(shè)施集成。構(gòu)建高效的住宅設(shè)施與家庭日程事務(wù)的管理系統(tǒng)郊酒,提升家居安全性耍共、便利性、舒適性猎塞、藝術(shù)性,并實(shí)現(xiàn)環(huán)保節(jié)能的居住環(huán)境试读。
二、實(shí)驗(yàn)?zāi)繕?biāo)
(1)分析中移和物開發(fā)板套件硬件荠耽,了解各個(gè)組成部分作用;
(2)熟悉開發(fā)板各個(gè)信號(hào)輸入钩骇、輸出點(diǎn)位置,了解其連接電腦的方式;
(3)通過中移和物平臺(tái)實(shí)現(xiàn)自定義的智能家居系統(tǒng);
(4)利用平臺(tái)的數(shù)據(jù)接入以及應(yīng)用能力铝量,實(shí)現(xiàn)智能家居系統(tǒng)端到端的快速搭建和調(diào)試上線倘屹。
三、實(shí)驗(yàn)步驟
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)讀回調(diào)函數(shù)
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)寫回調(diào)函數(shù)
void write_callback(
uint16_t objid,
uint16_t instid,
uint16_t resid,
nbiot_value_t *data)
{
printf("write /%d/%d/%d£o%d\r\n",
objid,
instid,
resid, data->value.as_bool);
if((objid == 3311) &&(instid == 0) &&(resid == 5850))
{
Led1_Set(data->value.as_bool);
}
}
燒寫進(jìn)開發(fā)板纽匙。
2、硬件搭建:
3拍谐、oneNET平臺(tái)命令
1烛缔、設(shè)備接入平臺(tái):
2馏段、平臺(tái)控制LED燈:
發(fā)送命令:true 實(shí)現(xiàn)設(shè)備亮燈
發(fā)送命令:false 實(shí)現(xiàn)設(shè)備滅燈
4、添加觸發(fā)器
添加觸發(fā)器
當(dāng)光照值>=50時(shí)践瓷,自動(dòng)開啟LED燈
當(dāng)光照值<100時(shí)院喜,自動(dòng)關(guān)閉LED燈
5、POSTMAN調(diào)用API:
postman http 請(qǐng)求的4部分:url,請(qǐng)求method,header,body晕翠。
在Body處喷舀,修改參數(shù):0/1 即可進(jìn)行設(shè)備開關(guān)燈操作
6、輕應(yīng)用管理:
點(diǎn)擊左側(cè) 應(yīng)用管理淋肾,點(diǎn)擊添加應(yīng)用硫麻。
按照實(shí)驗(yàn)需求,設(shè)計(jì)數(shù)據(jù)展示頁面樊卓。
四拿愧、實(shí)驗(yàn)總結(jié)
本次實(shí)驗(yàn)通過Postman調(diào)用API控制燈光開關(guān)。
缺點(diǎn):Postman運(yùn)用不太熟悉简识,總是出現(xiàn)各種錯(cuò)誤赶掖,導(dǎo)致運(yùn)行不成功感猛。