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