雷子浩,張麗艷,費繼友,李兆鵬
(1大連交通大學(xué) 電氣信息學(xué)院,遼寧 大連 116028;2.大連交通大學(xué) 動車運輸與維護工程學(xué)院,遼寧大連116023)*
溫度是直接影響生產(chǎn)、化學(xué)反應(yīng)、發(fā)酵等很多物理和化學(xué)過程的一個非常重要的物理量.溫度控制失誤就可能引起生產(chǎn)安全、產(chǎn)品質(zhì)量等一系列問題.因此對溫度進行方便,有效的測量就顯得十分必要.傳統(tǒng)的溫度測量系統(tǒng)一般采用有線的方式進行數(shù)據(jù)傳輸時,這種方式容易受到電磁信號的干擾,從而造成信號的大幅衰減.同時在一些比較危險或者封閉的場合,有線傳輸會受到很多因素的限制.因此,本文給出了一種基于nRF905射頻模塊的無線溫度測量系統(tǒng),該系統(tǒng)采用atmega16單片機主控芯片,采用的DS18B20溫度傳感器,并采用VB語言結(jié)合 Access數(shù)據(jù)庫技術(shù)實現(xiàn)對接收到的溫度數(shù)據(jù)做相應(yīng)的數(shù)據(jù)處理.
系統(tǒng)結(jié)構(gòu)整體上可以分三部分:溫度數(shù)據(jù)采集,數(shù)據(jù)傳輸和數(shù)據(jù)處理.溫度采集部分是通過單片機對溫度傳感器進行控制而獲得.數(shù)據(jù)傳輸包括數(shù)據(jù)發(fā)送和數(shù)據(jù)接收.在數(shù)據(jù)發(fā)送端,單片機將采集到的溫度數(shù)據(jù)以無線傳輸模塊特定的傳輸協(xié)議將數(shù)據(jù)發(fā)送;在接收端,無線通信模塊依照規(guī)定的傳輸協(xié)議進行數(shù)據(jù)接收,然后單片機將接收到的數(shù)據(jù)通過串口傳給PC端.數(shù)據(jù)處理主要是PC端將接收到的數(shù)據(jù)進行實時曲線圖顯示,以及和設(shè)定的溫度上下限比較以及溫度的存儲,查找,修改,刪除等等.系統(tǒng)結(jié)構(gòu)框圖如圖1所示.
圖1 系統(tǒng)的結(jié)構(gòu)框圖
本文給出了電源電路、溫度傳感器工作電路和nRF905無線模塊電路的設(shè)計說明.
由于 nRF905 工作電壓為1.9 ~3.6 V,所以本系統(tǒng)直接用ASM1117電壓調(diào)節(jié)器芯片將5 V的USB電源轉(zhuǎn)換成nRF905的正常工作時所需的3.3 V電源.然后用這個3.3 V電源模塊為nRF905供電.3.3V電源電路圖如圖2所示.
圖2 3.3 V電源電路圖
DS18B20是DALLAS公司生產(chǎn)的一款單總線數(shù)字溫度傳感器[1].其溫度測量范圍為 -55~125℃,測量精度為0.1℃.每個芯片內(nèi)部有64位的身份序列號.DS18B20溫度傳感器具有體積小,成本低,測溫精度高,連接方便,易于組建溫度檢測網(wǎng)絡(luò)等優(yōu)點.DS18B20可采用寄生電源和外接電源兩種供電方式[1]:寄生電源供電,在進行多點測溫時,通常需要多占用一根I/O口線對其進行強上拉切換,這樣才能解決I/O口電流供應(yīng)不足而產(chǎn)生的溫度測量的誤差大的問題;外部電源供電方式下,DS18B20工作電源由VDD引腳接入,此時I/O線不需要強上拉,不存在電源電流不足的問題,同時可以保證轉(zhuǎn)換精度,而且在總線上理論可以掛接任意多個DS18B20傳感器,組成多點測溫系統(tǒng).本系統(tǒng)中DS18B20采用外部電源供電方式.DS18B20工作電路[2]如3圖所示.
圖3 DS18B20工作電路圖
nRF905是挪威Nordic公司推出的單片射頻發(fā)射器芯片,工作電壓為1.9~3.6V,可以工作于433/868/915 MHz三個ISM頻道.由于內(nèi)部集成了頻率調(diào)制器,帶解調(diào)器的接收器,功率放大器,晶體震蕩器以及調(diào)節(jié)器.因此它可以自動完成處理字頭,CRC循環(huán)冗余校驗以及曼徹斯特編碼/解碼.nRF905帶有標(biāo)準(zhǔn)的SPI總線接口.nRF905與atmega16單片機可以通過SPI方式和通過I/O模擬SPI方式進行通信[3-5].當(dāng)以SPI方式進行通信時,通常是將單片機作為主機,nRF905作為從機.因此往nRF905內(nèi)部寄存器寫數(shù)據(jù)同時也是從它讀數(shù)據(jù).而通過I/O模擬SPI方式進行通信必須嚴(yán)格遵守SPI時序,I/O是在時鐘線為高電平的觸發(fā)下對nRF905內(nèi)部寄存器進行讀寫操作.本系統(tǒng)采用的是以SPI方式進行通信.nRF905和atmega16單片機的連接如下圖4所示.
圖4 nRF905和atmega16的連接電路圖
本系統(tǒng)的軟件程序設(shè)計主要包括溫度數(shù)據(jù)采集[1,6-7]、nRF905 無線數(shù)據(jù)發(fā)送和接收和上位機軟件設(shè)計.
圖5 溫度采集流程圖
對于多個溫度的測量,可以用多個I/O口掛多個溫度傳感器,也可以用一個I/O口上掛多個溫度傳感器.前者在溫度測量的時候是需要省去ROM匹配,測溫程序相對簡單.后者則明顯節(jié)省I/O口資源.本系統(tǒng)采用的第二種方法,此方法溫度測量的關(guān)鍵是:對DS18B20的操作總是嚴(yán)格遵循DS18B20復(fù)位,ROM指令,ROM指令的先后順序.DS18B20溫度測量的流程圖如圖5所示.
nRF905無線數(shù)據(jù)發(fā)送和接收流程如圖6所示.由圖6所知,nRF905發(fā)送數(shù)據(jù)時首先進行nRF905初始化,設(shè)置如工作頻率,輸出功率,接收地址寬度,數(shù)據(jù)寬度,晶體振蕩器頻率,CRC校驗等,接著將其設(shè)置成發(fā)送模式即TX_EN置位,然后將發(fā)送地址和發(fā)送數(shù)據(jù)寫入相應(yīng)的發(fā)送地址寄存器和發(fā)送數(shù)據(jù)寄存器,最后啟動發(fā)送即TRX_CE置位.TRX_CE置位之后,nRF905內(nèi)部射頻寄存器自動開啟,數(shù)據(jù)打包(加字頭和CRC校驗碼),發(fā)送數(shù)據(jù)包三個過程按順序自動完成.當(dāng)數(shù)據(jù)包發(fā)送完成之后,DR數(shù)據(jù)引腳位會置高,可以用DR置高來觸發(fā)LED燈閃爍作為發(fā)送完成的標(biāo)志.同樣,接收數(shù)據(jù)時,先初始化,然后將nRF905設(shè)置成接收模式,啟動接收.650 μs之后,nRF905開始檢測接收數(shù)據(jù),當(dāng)接收到了同頻載波時,CD引腳置高;當(dāng)接收到的地址匹配時,AM引腳置高;當(dāng)一個正確的數(shù)據(jù)包接收完后,nRF905會自動對字頭,CRC校驗位,地址進行處理,然后將DR引腳置高.接著將TRX_CE置低進入空閑模式以準(zhǔn)備讀取接收到的數(shù)據(jù).然后使能SPI,以SPI通信協(xié)議指定的速率從接收數(shù)據(jù)寄存器讀取接收到的數(shù)據(jù).當(dāng)所有的數(shù)據(jù)接收完成后,nRF905將AM引腳和DR引腳置低.
圖6 nRF905無線數(shù)據(jù)發(fā)送和接收流程圖
本系統(tǒng)采用VB語言[8-9]和Access數(shù)據(jù)庫實現(xiàn)上位機界面的設(shè)計.VB語言具有簡單、易學(xué)、可視化界面設(shè)計風(fēng)格和面向?qū)ο蟮某绦蛟O(shè)計等優(yōu)點.本系統(tǒng)使用MSComm控件來實現(xiàn)單片機與上位機的串口通信.Access是微軟公司推出的基于Windows的桌面關(guān)系數(shù)據(jù)庫管理系統(tǒng),它具有面向?qū)ο?、界面友好、易學(xué)易用、支持廣泛易于擴展、維護簡單等優(yōu)點.使用VB結(jié)合數(shù)據(jù)庫開發(fā)上位機的整體思路是;首先用VB提供的可視化數(shù)據(jù)庫管理器建立好所需要的數(shù)據(jù)庫和數(shù)據(jù)表,然后在程序中使用ADODC數(shù)據(jù)庫控件或者使用ADO對象與數(shù)據(jù)庫中的表建立連接,再通過各種數(shù)據(jù)庫感知控件對數(shù)據(jù)庫進行各種操作.本系統(tǒng)設(shè)計的上位機界面如圖7所示.
圖7 上位機界面圖
通過對室內(nèi)溫度數(shù)據(jù)的測量驗證本系統(tǒng)運行穩(wěn)定,結(jié)果可靠,不僅可以實時顯示當(dāng)前溫度,還會超過溫度限定值而自動觸發(fā)報警功能,也能夠顯示實時溫度曲線,對所測得的溫度數(shù)據(jù)進行存儲,刪除,查找和修改,可以使用戶更直接,準(zhǔn)確的掌握環(huán)境溫度情況.本系統(tǒng)不僅成本相對較低,使用方便,稍作修在就能夠使用很多工業(yè)檢測領(lǐng)域,具有實在的使用價值.
[1]普仕凡,張麗艷,李桂林,等.基于89C52單片機的智能溫控儀設(shè)計[J].大連交通大學(xué)學(xué)報,2008,29(3):91-94.
[2]秦莉,岳文秀,楊偉東.基于DS18B20的多點溫度測量體系的設(shè)計與仿真[J].實驗室科學(xué),2012(1):104-107.
[3]薛敏迪.基于nRF905的低功耗溫濕度無線測量系統(tǒng)[J].現(xiàn)代電子技術(shù),2010(1):135-137.
[4]門少杰,王寶珠.基于nRF905的溫室環(huán)境無線測控系統(tǒng)研究[J].測試測量技術(shù),2010(8):1-3.
[5]鄧星靈,康赫男.基于nRF905的無線溫濕度采集系統(tǒng)的設(shè)計[J].儀表技術(shù),2012(8):35-38.
[6]郭天祥.51單片機C語言教程[M].北京:電子工業(yè)出版社,2010.
[7]周興華.手把手教你學(xué)AVR單片機C程序設(shè)計[M].北京:北京航空航天大學(xué)出版社,2009.
[8]王曉嵐.基于VB 6.0串口通信的氣壓測高系統(tǒng)數(shù)據(jù)采集實現(xiàn)[J].現(xiàn)代電子技術(shù),2010(3):116-118.
[9]溫小敏.visual basic數(shù)據(jù)庫系統(tǒng)項目開發(fā)實踐[M].北京:科學(xué)出版社,2005.