下面以研制完成的溫度無線傳感器網(wǎng)絡(luò)系統(tǒng)為例,詳細(xì)介紹利用計算機、單片機及藍(lán)牙技術(shù)實現(xiàn)溫度數(shù)據(jù)的采集、處理、無線傳輸?shù)裙δ堋?/p>
1 系統(tǒng)結(jié)構(gòu)
溫度無線傳感器網(wǎng)絡(luò)系統(tǒng)采用數(shù)字式輸出溫度傳感器DS18820和單片機AT89S2051組成溫度采集系統(tǒng)。利用重慶金甌公司生產(chǎn)的藍(lán)牙內(nèi)嵌模塊,完成溫度數(shù)據(jù)的傳輸及控制。實現(xiàn)計算機對溫度數(shù)據(jù)的無線傳輸、采集和處理。系統(tǒng)邏輯結(jié)構(gòu)如圖1所示,傳感器節(jié)點結(jié)構(gòu)如圖2所示。
2 溫度采集系統(tǒng)的設(shè)計
DS18820數(shù)字溫度計提供9位(二進(jìn)制)溫度讀數(shù),指示器件的溫度。信息經(jīng)過單線接口送入DS18820或從DS18820送出。DS181320的電源可以由數(shù)據(jù)線本身提供而不需要外部電源。每一個DS18820在出廠時已經(jīng)給定了惟一的序號,任意多個DS18820可以存放在同一條單線總線上。DS18820的測量范圍從-55~+125℃,增量值為-0.5℃,可在1 s(典型值)內(nèi)把溫度變成數(shù)字。
AT89S2051是美國ATMEL公司推出的高效單片機,是一種低功耗、高性能的片內(nèi)含有2 KB快閃可編程/擦除只讀存儲器的8位CMOS微控制器。利用AT89S2051及DS18820完成溫度采集及傳送。溫度采集系統(tǒng)的硬件設(shè)計如圖3所示,軟件設(shè)計流程圖如圖4所示。
3 單片機和藍(lán)牙模塊的連接
溫度傳感器對采集到的溫度信號進(jìn)行處理并輸出數(shù)字信號,存儲在單片機的寄存器中。在本系統(tǒng)中單片機和藍(lán)牙發(fā)送模塊的接口采用的是RS 232接口。采集的數(shù)據(jù)通過藍(lán)牙發(fā)送模塊傳輸?shù)剿{(lán)牙接收模塊上,再通過藍(lán)牙接收模塊傳輸?shù)街鳈C。最終把采集進(jìn)來的數(shù)據(jù)在主機上進(jìn)行處理。
這里有一個電平轉(zhuǎn)換的問題。單片機發(fā)出的信號是TTL信號,所以在與藍(lán)牙模塊進(jìn)行數(shù)據(jù)前,需要把它轉(zhuǎn)化成RS 232電平。本系統(tǒng)中采用MAX232進(jìn)行電平轉(zhuǎn)換。接口電路圖如圖5所示。
4 主機與藍(lán)牙模塊的連接
主機和藍(lán)牙接收模塊之間的數(shù)據(jù)傳輸采用RS 232串口連接。采集到的數(shù)據(jù)通過藍(lán)牙傳輸?shù)浇邮漳K之后,通過RS 232接口傳輸?shù)街鳈C上。接口硬件采用金甌公司的藍(lán)牙模塊RS轉(zhuǎn)換器。通信軟件由VC編寫,將傳感器節(jié)點測量的數(shù)據(jù)通過藍(lán)牙傳輸?shù)街鳈C,顯示出來以便進(jìn)行數(shù)據(jù)處理。主機通信程序主界面如圖6所示。
5 溫度無線傳感器網(wǎng)絡(luò)系統(tǒng)設(shè)計時應(yīng)注意的事項
(1)注意硬件及軟件設(shè)計的防干擾設(shè)計
AT89S2051采用上電復(fù)位電路,要注意設(shè)置并啟動其內(nèi)部自帶的看門狗電路。軟件編程時要“喂狗”,以防止外界復(fù)雜環(huán)境對系統(tǒng)工作的影響。
(2)傳感器節(jié)點標(biāo)識
在傳感器節(jié)點發(fā)送采集到的溫度數(shù)據(jù)之前,控制其先發(fā)送一個八位的二進(jìn)制標(biāo)識碼,主控機通過對這一標(biāo)識碼的識別,就可以知道所接收到的數(shù)據(jù)是由哪一個傳感器節(jié)點所采集發(fā)送的。理論上,這種方法一共可以標(biāo)識28=256個節(jié)點。
(3)傳送數(shù)據(jù)的校驗
藍(lán)牙傳輸系統(tǒng)中,對傳輸?shù)拿恳粠瑪?shù)據(jù)都進(jìn)行了校驗,而且串口通信對傳輸?shù)拿恳粠瑪?shù)據(jù)也進(jìn)行了校驗,這就確保了數(shù)據(jù)傳送的正確性。實驗也證明了系統(tǒng)數(shù)據(jù)傳送性能良好。
(4)控制各傳感器節(jié)點工作時序
系統(tǒng)啟動時,將各個傳感器節(jié)點置于停止?fàn)顟B(tài)。當(dāng)需要哪一個節(jié)點工作時,從主機上發(fā)送相應(yīng)的指令,將該傳感器節(jié)點激活,使它采集傳輸數(shù)據(jù)。使用這種方法時,同時工作的傳感器節(jié)點不能過多,要保證藍(lán)牙跳頻技術(shù)能夠解決同時工作的傳感器節(jié)點所產(chǎn)生的數(shù)據(jù)傳輸沖突問題。
DS18820數(shù)字溫度計提供9位(二進(jìn)制)溫度讀數(shù),指示器件的溫度。信息經(jīng)過單線接口送入DS18820或從DS18820送出。DS181320的電源可以由數(shù)據(jù)線本身提供而不需要外部電源。每一個DS18820在出廠時已經(jīng)給定了惟一的序號,任意多個DS18820可以存放在同一條單線總線上。DS18820的測量范圍從-55~+125℃,增量值為-0.5℃,可在1s(典型值)內(nèi)把溫度變成數(shù)字。AT89S2051是美國ATMEL公司推出的高效單片機,是一種低功耗、高性能的片內(nèi)含有2 KB快閃可編程/擦除只讀存儲器的8位CMOS微控制器。利用AT89S2051及DS18820完成溫度采集及傳送。溫度采集系統(tǒng)的硬件設(shè)計如圖3所示,軟件設(shè)計流程圖如圖4所示。