6.4zigbee測量外部環(huán)境溫度、濕度實驗_第1頁
6.4zigbee測量外部環(huán)境溫度、濕度實驗_第2頁
6.4zigbee測量外部環(huán)境溫度、濕度實驗_第3頁
6.4zigbee測量外部環(huán)境溫度、濕度實驗_第4頁
6.4zigbee測量外部環(huán)境溫度、濕度實驗_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、6.3 zigbee測量外部環(huán)境溫度、濕度實驗一般而言,無線傳感網(wǎng)絡(luò)具有采集點眾多,分布面積廣;網(wǎng)絡(luò)節(jié)點間的位置關(guān)系不定,節(jié)點動態(tài)加入或脫離網(wǎng)絡(luò)等特性。z-stack2007 協(xié)議棧具有這些實驗功能特性。5.3.1 實驗?zāi)康呐c器材1)實驗?zāi)康谋緦嶒瀸⒗脄-stack2007 協(xié)議棧構(gòu)建一個具有實際意義的無線傳感器網(wǎng)絡(luò)。該網(wǎng)絡(luò)中具有采集節(jié)點和傳感節(jié)點。傳感節(jié)點連接各種傳感器,利用傳感器獲取環(huán)境溫度、光照等外界信息。 采集節(jié)點負(fù)責(zé)接收該zigbee 網(wǎng)絡(luò)里傳感節(jié)點的信息,并通過串口上傳至pc 端的串口助手進行顯示。采集節(jié)點, 上電啟動后負(fù)責(zé)建立網(wǎng)絡(luò),并開啟允許綁定功能;傳感節(jié)點,上電啟動后加入網(wǎng)

2、絡(luò), 并自動發(fā)起綁定請求,待采集節(jié)點建立綁定后,將傳感器節(jié)點的外界溫度信息和光照信息發(fā)送到采集節(jié)點上。為了實驗簡單, 只有一個采集節(jié)點收集這些信息,處理后通過串口上傳到計算機,可以在串口調(diào)試工具上看到,為了提高網(wǎng)絡(luò)的負(fù)載能力,可以增加中心收集節(jié)點。所以我們可以建立星形拓?fù)渚W(wǎng)絡(luò),協(xié)調(diào)器是采集節(jié)點,終端節(jié)點是傳感節(jié)點。為了實現(xiàn)上述實驗?zāi)康模瑧?yīng)該做到:自動形成一個網(wǎng)絡(luò);傳感器設(shè)備必須能自動加入網(wǎng)絡(luò),并自動完成綁定;如果傳感器設(shè)備沒有從中心節(jié)點收到應(yīng)答,它將自動移除到該中心節(jié)點的綁定。然后它將自動的去發(fā)現(xiàn)新的中心節(jié)點綁定。本實驗中傳感節(jié)點具有獲取節(jié)點內(nèi)部溫度信息、外界溫度信息、外界光照信息等功能。2)

3、實驗器材4 個 cc2530開發(fā)模塊( 1 個采集器節(jié)點,1 個路由器, 2 個傳感器節(jié)點) ;2 個 ds18b20溫度傳感器;2 個光敏電阻;5.3.2 實驗原理與步驟1)硬件介紹1 溫度傳感器ds18b20 ds18b20 是美國 dallas半導(dǎo)體公司繼ds1820 之后最新推出的一種數(shù)字化單總線器件。屬于新一代適配微處理器的改進型智能溫度傳感器。它能夠直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9 12 位的數(shù)字值讀數(shù)方式。可以分別在93.75ms 和750ms 內(nèi)完成 9 位和 12 位的數(shù)字量,并且從ds18b20 讀出的信息或?qū)懭雂s18b20 的信息僅需要一根口線(

4、單線接口 )讀寫。其測量溫度范圍為-55 +125。現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,用符號擴展的16 位數(shù)字方式串行輸出,大大提高了系統(tǒng)的抗干擾性。廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測量及控制儀器、測控系統(tǒng)和大型設(shè)備中。ds18b20 的性能特點如下:采用 dallas公司獨特的單線接口方式:ds18b20 與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與ds18b20 的雙向通訊;在使用中不需要任何外圍元件;可用數(shù)據(jù)線供電,供電電壓范圍:+3.0v +5.5v ;測溫范圍: -55+125。固有測溫分辨率為0.5。當(dāng)在 -10 +85范圍內(nèi),可確保測量誤差不超過0.5,在 -55

5、+125范圍內(nèi),測量誤差也不超過2;通過編程可實現(xiàn)9 12 位的數(shù)字讀數(shù)方式;用戶可自設(shè)定非易失性的報警上下限值;支持多點的組網(wǎng)功能,多個ds18b20 可以并聯(lián)在唯一的三線上,實現(xiàn)多點測溫負(fù)壓特性,即具有電源反接保護電路。當(dāng)電源電壓的極性反接時,能保護ds18b20 不會因發(fā)熱而燒毀,但此時芯片無法正常工作;ds18b20 的轉(zhuǎn)換速率比較高,進行9 位的溫度值轉(zhuǎn)換只需93.75ms;適配各種單片機或系統(tǒng);內(nèi)含 64位激光修正的只讀存儲rom , 扣除 8位產(chǎn)品系列號和8位循環(huán)冗余校驗碼(crc)之后,產(chǎn)品序號占48 位。出廠前產(chǎn)品序號存入其rom 中。在構(gòu)成大型溫控系統(tǒng)時,允許在單線總線上掛

6、接多片ds18b20。ds18b20 溫度傳感器實物如圖所示。圖ds18b20 溫度傳感器實物圖zigbee 實驗板與溫度傳感器18b20 的連接如圖所示圖 zigbee實驗板與溫度傳感器18b20 的連接zigbee 芯片通過p6_2 管腳讀取ds18b20所產(chǎn)生的溫度數(shù)據(jù)。2 光敏電阻器光敏電阻器是利用半導(dǎo)體的光電效應(yīng)制成的一種電阻值隨入射光的強弱而改變的電阻器;入射光強,電阻減小,入射光弱,電阻增大。光敏電阻器一般用于光的測量、光的控制和光電轉(zhuǎn)換(將光的變化轉(zhuǎn)換為電的變化)。常用的光敏電阻器硫化鎘光敏電阻器,它是由半導(dǎo)體材料制成的。光敏電阻器的阻值隨入射光線(可見光) 的強弱變化而變化,

7、在黑暗條件下,它的阻值(暗阻)可達(dá)110m 歐,在強光條件( 100lx )下,它阻值(亮阻)僅有幾百至數(shù)千歐姆。光敏電阻器對光的敏感性(即光譜特性)與人眼對可見光(0.40.76)m的響應(yīng)很接近,只要人眼可感受的光,都會引起它的阻值變化。光敏電阻的主要參數(shù):光敏電阻的主要參數(shù)是:光電流、 亮電阻。 光敏電阻器在一定的外加電壓下,當(dāng)有光照射時, 流過的電流稱為光電流,外加電壓與光電流之比稱為亮電阻,常用“100lx ” 表示。暗電流、暗電阻。光敏電阻在一定的外加電壓下,當(dāng)沒有光照射的時候,流過的電流稱為暗電流。外加電壓與暗電流之比稱為暗電阻,常用“0lx” 表示。靈敏度。 靈敏度是指光敏電阻不

8、受光照射時的電阻值(暗電阻) 與受光照射時的電阻值(亮電阻)的相對變化值。光譜響應(yīng)。 光譜響應(yīng)又稱光譜靈敏度,是指光敏電阻在不同波長的單色光照射下的靈敏度。若將不同波長下的靈敏度畫成曲線,就可以得到光譜響應(yīng)的曲線。光照特性。 光照特性指光敏電阻輸出的電信號隨光照度而變化的特性。從光敏電阻的光照特性曲線可以看出,隨著的光照強度的增加,光敏電阻的阻值開始迅速下降。若進一步增大光照強度,則電阻值變化減小,然后逐漸趨向平緩。在大多數(shù)情況下,該特性為非線性。伏安特性曲線。 伏安特性曲線用來描述光敏電阻的外加電壓與光電流的關(guān)系,對于光敏器件來說,其光電流隨外加電壓的增大而增大。溫度系數(shù)。 光敏電阻的光電效

9、應(yīng)受溫度影響較大,部分光敏電阻在低溫下的光電靈敏較高,而在高溫下的靈敏度則較低。額定功率。額定功率是指光敏電阻用于某種線路中所允許消耗的功率,當(dāng)溫度升高時,其消耗的功率就降低。光照傳感器實物如圖所示圖光照傳感器實物圖zigbee 實驗板與光敏電阻的連接如圖所示圖zigbee 實驗板與光敏電阻的連接將 zigbee 芯片的 p04引腳設(shè)置為ad采樣的模擬輸入引腳,這樣由光敏電阻阻值變換所引起的電壓的變化量就會反映在芯片的模擬輸入引腳上,芯片根據(jù)電壓的變化量可以判斷出當(dāng)前的光照強度。2)程序流程1 傳感節(jié)點發(fā)送數(shù)據(jù)流程在節(jié)點成功加入網(wǎng)絡(luò)并且同協(xié)調(diào)器綁定成功后,通過 simplesensor.c文件

10、中的zb_bindconfirm()函數(shù)來調(diào)用myapp_startreporting()函數(shù)1.void zb_bindconfirm( uint16 commandid, uint8 status ) (void)commandid; if ( ( status = zb_success ) & ( myappstate = app_start ) ) myappstate = app_bound; myapp_startreporting(); else osal_start_timerex( sapi_taskid, my_find_collector_evt, mybindr

11、etrydelay ); 2. 在 myapp_startreporting()函數(shù)中觸發(fā)測量溫度事件。void myapp_startreporting( void ) osal_start_timerex( sapi_taskid, my_report_temp_evt, mytempreportperiod ); osal_start_timerex( sapi_taskid, my_report_batt_evt, mybatterycheckperiod ); 3. 在函數(shù) zb_handleosalevent()中對該事件進行響應(yīng)。void zb_handleosalevent(

12、uint16 event ) uint8 pdata2; if ( event & my_report_extemp_evt ) pextemp0 = extemp_report; myapp_readextemperature(); osal_memcpy( pextemp+1, ch, 8 ); zb_senddatarequest( 0 xffff, sensor_report_cmd_id, 9, pextemp, 0, af_ack_request, 0 ); 4. 事件響應(yīng)函數(shù)通過調(diào)用myapp_readextemperature() 函數(shù)讀取當(dāng)前溫度值。void myap

13、p_readextemperature( void ) uint8 temh,teml; uint16 num; uint8 i; uint8 temp_channel; p0dir=0 x00; p1dir |= 0 x0d; / 設(shè)置 p1.0,p1.2,p1.3為輸出方式 p2dir |= 0 x01; / 同上 read_data();/ 讀取溫度 temp_channel=0 x31; teml=sensor_data_value0; temh=sensor_data_value1; i=(temp_channel-0 x31)*2; ch0=temp_channel;/當(dāng)前顯示的傳

14、感器的編號 ch1= ; num=teml*625; /小數(shù)部分的取值每位代表0.0625 (精度) if(flag=1) /判斷正負(fù)溫度 ch2=-; /+0 x2d 為變 -ascii碼 else ch2=+; if(temh/100=0) ch3= ; else ch3=temh/100+0 x30; /+0 x30 為變 09 ascii碼 if(temh/10%10=0)&(temh/100=0) ch4= ; else ch4=temh/10%10+0 x30; ch5=temh%10+0 x30; ch6=.; ch7=num/1000+0 x30;/忽略小數(shù)點后1位的數(shù)

15、 read_data()是負(fù)責(zé)從ds18b20中讀取當(dāng)前溫度的函數(shù),其中涉及到對ds18b20器件單總線結(jié)構(gòu)的操作函數(shù),該函數(shù)位于ds18b20.c 文件中,詳細(xì)操作流程請結(jié)合ds18b20 相關(guān)數(shù)據(jù)手冊參看附錄中的程序清單,在此就不詳細(xì)列出。5. 事件響應(yīng)函數(shù)通過調(diào)用zb_senddatarequest()函數(shù)將得到的溫度值發(fā)送至協(xié)調(diào)器節(jié)點。2 匯聚節(jié)點接收數(shù)據(jù)流程程序接收數(shù)據(jù)函數(shù)void zb_receivedataindication( uint16 source, uint16 command, uint16 len, uint8 *pdata ) . uint8 sensorread

16、ing; uint8 tmpbuf32; uint8 *outputbuf; if (command = sensor_report_cmd_id) sensorreading = pdata1; outputbuf =tmpbuf; switch( pdata0 ) case extemp_report: tmpbuf1=7; tmpbuf6 = *; while(i 右鍵 - 下鍵, 此時四個燈都一直亮,表明該采集器建立了網(wǎng)絡(luò),并可以讓其他模塊加入到該網(wǎng)絡(luò)中。第三步:啟動另一個采集器,按鍵上鍵即可,此時四個燈都一直亮。第四步:分別啟動兩個傳感器,按下模塊的下鍵,此時傳感器模塊的綠燈、紅燈、

17、黃燈一起快速閃爍,采集器的紅燈在慢速閃爍,表明傳感器的數(shù)據(jù)在不停的向采集器發(fā)送數(shù)據(jù)。第五步:采集數(shù)據(jù),分析數(shù)據(jù)。傳感器每隔2 秒一次上傳至采集器。4)程序清單清單 5.1 讀取傳感器測出的外界溫度信息/* * 函數(shù)名 myapp_readextemperature * 描述讀取傳感器測出的外界溫度信息 ad 采樣使用p07 管腳 * 參數(shù)無 * 返回值返回環(huán)境的溫度信息,只保留了整數(shù)部分 */ static uint8 myapp_readextemperature( void ) uint8 temh,teml; read_data(); / 讀取溫度 teml=sensor_data_va

18、lue0;/小數(shù)部分 temh=sensor_data_value1;/整數(shù)部分 return temh; 清單 5.2 把讀取的溫度數(shù)據(jù)轉(zhuǎn)換為真實的溫度信息/* * 函數(shù)名 read_data * 描述利用 read_1820 函數(shù)讀取溫度數(shù)據(jù)之后,把溫度數(shù)據(jù)轉(zhuǎn)換為溫度信息 * 參數(shù)無 * 返回值無 */ void read_data(void) uint8 temh,teml; uint8 a,b,c; init_1820(); /復(fù)位 18b20 write_1820(0 xcc); / 發(fā)出轉(zhuǎn)換命令搜索器件 write_1820(0 x44); /啟動 delay_nus(50000)

19、; init_1820(); write_1820(0 xcc); write_1820(0 xbe); teml=read_1820(); /讀數(shù)據(jù) temh=read_1820(); if(temh&0 x80)/判斷正負(fù) flag=1; c=0; c=c|temh; c=c&0 x00ff; c=c4; else flag=0; /為正 a=temh4; /得到高位的值 b=teml&0 x0f; temh=a; teml=b&0 x00ff; sensor_data_value0=teml; sensor_data_value1=temh; 清單 5.3

20、 利用 ds18b20讀取溫度數(shù)據(jù)函數(shù)/* * 函數(shù)名 read_1820 * 描述利用 ds18b20讀取溫度數(shù)據(jù)的底層函數(shù) * 參數(shù)無 * 返回值返回讀取的溫度數(shù)據(jù) */ uint8 read_1820(void) uint8 temp,k,n; temp=0; for(n=0;n8;n+) cl_dq; set_dq; set_in; k=in_dq; /讀數(shù)據(jù) , 從低位開始 if(k) temp|=(1n); else temp&=(1n); delay_nus(70); /60120us set_out; return (temp); 清單 5.4 傳感器讀取外部光照強度的函數(shù)/* * 函數(shù)名 myapp_readlight * 描述讀取傳感器測出的外界光度強度信息 ad 采樣使用p04 管腳 * 參數(shù)無 * 返回值返回環(huán)境的光照強

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論