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