鄒衛(wèi)華 肖化

摘 要: 針對(duì)糧庫有線溫度監(jiān)測(cè)布線復(fù)雜的缺點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了糧庫無線溫度監(jiān)測(cè)系統(tǒng)。系統(tǒng)采用MSP430F149作為MCU,結(jié)合溫度傳感器DS18B20與nRF24L01+射頻芯片完成溫度的采集與數(shù)據(jù)的無線傳輸,同時(shí)利用C#.NET完成了上位機(jī)監(jiān)測(cè)軟件的開發(fā)。測(cè)試結(jié)果表明,系統(tǒng)能夠?qū)崟r(shí)地監(jiān)測(cè)糧庫的溫度狀況,并且測(cè)量精度高,符合預(yù)期設(shè)計(jì)結(jié)果,具有一定的實(shí)用價(jià)值。
關(guān)鍵詞: 無線溫度監(jiān)測(cè); MSP430F149; DS18B20; nRF24L01+; C#.NET
中圖分類號(hào): TN934.8+5; TP277 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)01?0093?03
Abstract: Because of the wiring complexity of the wired temperature monitoring system for grain depot, a wireless temperature monitoring system was designed and implemented. In the system, MSP430F149 is adopted as MCU, temperature sensor DS18B20 and nRF24L01+ RF chip are combined to complete the temperature acquisition and wireless data transmission. The development of PC monitoring software was achieved by means of C#.NET. The testing results show that the system can implement the high?accuracy real?time monitoring of temperature status in grain depot. The design result is in line with expectation. The system has a certain practical value.
Keywords: wireless temperature monitoring; MSP430F149; DS18B20; nRF24L01+; C#.NET
0 引 言
糧食安全作為一個(gè)全球性話題,歷來受到我國政府的高度重視。糧食的安全儲(chǔ)藏是國家為了備戰(zhàn)和預(yù)防災(zāi)荒的重要戰(zhàn)略決策,而糧庫儲(chǔ)糧監(jiān)測(cè)技術(shù)又是科學(xué)保糧的關(guān)鍵技術(shù)之一[1]。影響糧食儲(chǔ)存的因素眾多,外界的環(huán)境因素是其中的重要方面。為了保證存放在糧倉中的糧食不致腐爛變質(zhì),就必須使糧倉內(nèi)的溫度、濕度保持在一定的范圍以內(nèi)[2]。因此,為保證糧庫糧食的有效存儲(chǔ),對(duì)溫度進(jìn)行實(shí)時(shí)監(jiān)測(cè)極為重要。在日常的糧庫溫度檢測(cè)中,可以采用人工定期檢測(cè)[3]的方法。然而這種方法效率低,并且不能實(shí)現(xiàn)實(shí)時(shí)檢測(cè)。而有線監(jiān)測(cè)雖然可以做到實(shí)時(shí)檢測(cè),但是,糧庫面積大且布局分散,導(dǎo)致布線困難[4]。采用無線方式則可以解決上述問題,本文在此背景下完成了糧庫無線溫度監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)。
1 系統(tǒng)總體框架
糧庫無線溫度監(jiān)測(cè)系統(tǒng)主要包括PC上位機(jī)、下位機(jī)及監(jiān)測(cè)點(diǎn)電路。監(jiān)測(cè)點(diǎn)電路完成溫度采集及發(fā)送,主要包括MCU、無線發(fā)送電路、溫度傳感器及液晶顯示。下位機(jī)完成溫度數(shù)據(jù)的接收、顯示,最后通過USB轉(zhuǎn)串口將數(shù)據(jù)上傳給PC上位機(jī)監(jiān)測(cè)端顯示。PC上位機(jī)負(fù)責(zé)實(shí)時(shí)監(jiān)測(cè),上位機(jī)監(jiān)測(cè)軟件采用C#.NET編寫。系統(tǒng)總體框圖如圖1所示。
2 主要硬件電路設(shè)計(jì)
2.1 監(jiān)測(cè)點(diǎn)電路
整個(gè)監(jiān)測(cè)點(diǎn)電路的核心是MCU。考慮到要兼顧速度與低功耗,選用德州儀器(TI)MSP430系列16位超低功耗混合信號(hào)處理器MSP430F149。MSP430系列單片機(jī)的電源電壓采用1.8~3.6 V低電壓,RAM數(shù)據(jù)保持方式下耗電[5]電流僅0.1 μА。nRF24L01是一款工作在2.4~2.5 GHz國際通用ISM頻段的單片無線收發(fā)器芯片[6],可通過SPI接口配置其工作狀態(tài)為發(fā)射或接收狀態(tài)。系統(tǒng)采用nRF24L01+完成數(shù)據(jù)的發(fā)送和接收功能,nRF24L01+在nRF24L01提供的1 Mb/s或2 Mb/s的無線速率基礎(chǔ)上,增加了250 Kb/s的通信速率,功能與nRF24L01類似,在器件的操作上沒有太大差異。
溫度傳感器采用Dallas公司的數(shù)字式溫度傳感器DS18B20。DS18B20 是“單總線”器件,只需一根線與單片機(jī)相連即可完成全部操作,具有體積小、分辨率高的特點(diǎn)。其測(cè)量溫度范圍[7]為-55~125 ℃,在-10~85 ℃的范圍內(nèi),測(cè)量精度可達(dá)±0.5 ℃,滿足糧庫實(shí)際溫度范圍-30~60 ℃的測(cè)量[8]需要。液晶屏采用5 V供電的LCD1602,可以顯示32個(gè)字符,滿足系統(tǒng)要求。由于輸入電壓為5 V,而部分芯片工作電壓為3.3 V,因此選用AMS1117?3.3 V將電壓降至3.3 V后給后續(xù)電路使用。測(cè)量電路采用模塊化的設(shè)計(jì)方法,各功能既相互獨(dú)立又便于相互組合。圖2所示為監(jiān)測(cè)點(diǎn)電路,限于篇幅,這里只給出了主要的I/O連接。為了提高發(fā)射效率,nRF24L01+采用了外接天線的方法。
2.2 下位機(jī)電路
下位機(jī)電路完成溫度數(shù)據(jù)的接收,同時(shí)經(jīng)過單片機(jī)的UART口送給PC端上位機(jī),從而實(shí)時(shí)地在上位機(jī)上顯示監(jiān)測(cè)點(diǎn)的溫度。下位機(jī)電路同樣配置了液晶顯示,可以在沒有PC上位機(jī)的情況下顯示監(jiān)測(cè)點(diǎn)的溫度,使系統(tǒng)更加靈活。為了能夠與USB接口連接,采用CH340T實(shí)現(xiàn)USB轉(zhuǎn)串口功能,整個(gè)電路只需一根USB線即可實(shí)現(xiàn)與PC上位機(jī)相連。nRF24L01+兼具有收發(fā)功能,下位機(jī)電路在監(jiān)測(cè)點(diǎn)電路的基礎(chǔ)上移除了溫度傳感器電路,同時(shí)增加了MCU與上位機(jī)通信電路,其余部分與監(jiān)測(cè)點(diǎn)電路相同。這里只給出了MCU與上位機(jī)通信電路,如圖3所示。
3 軟件設(shè)計(jì)
3.1 監(jiān)測(cè)點(diǎn)程序設(shè)計(jì)
監(jiān)測(cè)點(diǎn)程序主要完成溫度數(shù)據(jù)的采集、顯示并完成數(shù)據(jù)的發(fā)送,其程序流程圖如圖4所示。系統(tǒng)初始化完成時(shí)鐘的配置、與液晶LCD1602和nRF24L01+操作有關(guān)的I/O設(shè)置。MCU與nRF24L01+通過SPI進(jìn)行雙向通信,在nRF24L01+初始化中,設(shè)置發(fā)射地址與接收地址相同,地址寬度為5 B。為提高系統(tǒng)性能,降低功耗,將芯片工作模式配置為Enhanced ShockBurstTM。通過配置寄存器CONFIG設(shè)置芯片為發(fā)送TX模式,信道工作頻率為2.4 GHz,頻道0作為允許的接收地址并且頻道0自動(dòng)應(yīng)答ACK允許,當(dāng)發(fā)送數(shù)據(jù)完成后立刻轉(zhuǎn)為接收狀態(tài)。通過RF_SETUP寄存器將芯片的數(shù)據(jù)傳輸率設(shè)為1 Mb/s,工作在最大發(fā)射功率0 dBm下。
MCU通過單總線訪問DS18B20時(shí),必須按照初始化、ROM操作命令、存貯器操作命令、處理數(shù)據(jù)的格式進(jìn)行,由于監(jiān)測(cè)節(jié)點(diǎn)只掛了一根DS18B20,因此初始化后可執(zhí)行跳過ROM命令。DS18B20可通過編程將測(cè)量精度設(shè)置為9 b,10 b,11 b,12 b,分別對(duì)應(yīng)0.5,0.25,0.125,0.062 5的分辨率,本文將測(cè)量精度設(shè)置為12 b。
3.2 下位機(jī)程序設(shè)計(jì)
下位機(jī)完成溫度數(shù)據(jù)的接收與顯示,并將數(shù)據(jù)通過UART口傳送至PC上位機(jī),整個(gè)下位機(jī)程序流程圖如圖5所示。初始化操作與監(jiān)測(cè)點(diǎn)發(fā)射程序相類似,程序不斷檢測(cè)空中是否有數(shù)據(jù),若接收到數(shù)據(jù)則進(jìn)行CRC校驗(yàn),然后MCU從RX_FIFO讀出溫度數(shù)據(jù)送至液晶顯示,并上傳至PC上位機(jī)。由于DS18B20溫度數(shù)據(jù)只有兩個(gè)字節(jié),因此接收有效數(shù)據(jù)寬度設(shè)置為2 B,接收靈敏度設(shè)置為-85 dBm。
3.3 上位機(jī)監(jiān)測(cè)軟件設(shè)計(jì)
上位機(jī)監(jiān)測(cè)軟件提供更為友好的人機(jī)交互環(huán)境,在PC端可以方便地監(jiān)測(cè)糧庫溫度,并進(jìn)行其他有關(guān)的操作。上位機(jī)監(jiān)測(cè)軟件采用C#語言基于.NET框架編寫,開發(fā)環(huán)境為Microsoft Visual Studio 2010 Ultimate。
C#是Microsoft在2000年7月推出.NET Framework的第1版時(shí)提供的一種全新語言[9],從C/C++語言派生而來,具有簡(jiǎn)潔易學(xué)的特點(diǎn)。C#是面向?qū)ο蟮恼Z言,同時(shí)進(jìn)一步提供了對(duì)面向組件(Component Oriented)編程的支持。.NET Framework是支持生成和運(yùn)行下一代應(yīng)用程序和XML Web Services的內(nèi)部Windows組件[10],[.NET] Framework可以創(chuàng)建Windows應(yīng)用程序、Web應(yīng)用程序、Web服務(wù)和其他各種類型的應(yīng)用程序。上位機(jī)監(jiān)測(cè)軟件在Visual C#環(huán)境下,基于.NET Framework 4.0創(chuàng)建Windows Forms Application。由于上位機(jī)通過USB轉(zhuǎn)串口的方式實(shí)時(shí)地與單片機(jī)進(jìn)行通信,因此需要串口編程。在Visual C#環(huán)境下,提供了功能強(qiáng)大的串口組件serialPort,在serialPort中可以方便地設(shè)置與串口通信有關(guān)的端口號(hào)PortName、波特率BaudRate、數(shù)據(jù)位DataBits、校驗(yàn)位Parity、停止位StopBits等,可以方便地完成串口的初始化操作。采用事件觸發(fā)的方式,當(dāng)檢測(cè)到串口有數(shù)據(jù)時(shí)即進(jìn)行讀取,進(jìn)行處理后在界面上顯示監(jiān)測(cè)點(diǎn)的溫度值。設(shè)計(jì)好的上位機(jī)監(jiān)測(cè)軟件界面如圖6所示,除了基本的實(shí)時(shí)溫度監(jiān)測(cè)功能外,還可進(jìn)行溫度報(bào)警設(shè)置,以便在超出設(shè)定范圍時(shí)提醒管理者進(jìn)行相應(yīng)處理。
4 系統(tǒng)測(cè)試
在最大發(fā)射功率為0 dBm、接收靈敏度為-85 dBm條件下,搭建系統(tǒng)后進(jìn)行測(cè)試。在約16 m2的室內(nèi),數(shù)據(jù)能夠正確傳輸并無延時(shí)。在室外空曠的條件下,150 m范圍內(nèi)正確傳輸,延時(shí)約2~4 s,最大傳輸距離超過270 m,根據(jù)溫度不能突變的特性,仍然滿足溫度實(shí)時(shí)監(jiān)測(cè)的要求。上位機(jī)軟件調(diào)試確認(rèn)無誤后通過Publish生成可發(fā)布的應(yīng)用程序,軟件在Windows XP 32位和Windows 7 64位系統(tǒng)上均進(jìn)行了測(cè)試,測(cè)試結(jié)果表明,上位機(jī)軟件在兩種操作系統(tǒng)上均可良好地運(yùn)行。
5 結(jié) 語
設(shè)計(jì)并實(shí)現(xiàn)了糧庫無線溫度監(jiān)測(cè)系統(tǒng),給出了總體方案、主要硬件原理圖及軟件設(shè)計(jì)流程。充分利用MSP430F149及收發(fā)一體芯片nRF24L01+的優(yōu)勢(shì),結(jié)合功能強(qiáng)大的C#.NET完成了整個(gè)系統(tǒng)的設(shè)計(jì)。實(shí)際測(cè)試表明,系統(tǒng)能夠完成溫度實(shí)時(shí)監(jiān)測(cè)的目標(biāo),系統(tǒng)靈活可擴(kuò)展,具有一定的實(shí)用價(jià)值。
參考文獻(xiàn)
[1] 王永志,劉媛媛.大型糧庫的溫濕度監(jiān)測(cè)報(bào)警控制系統(tǒng)[J].農(nóng)機(jī)化研究,2008(8):167?169.
[2] 石偉.糧庫溫度智能檢測(cè)系統(tǒng)研究[D].武漢:華中科技大學(xué),2004.
[3] 包長春,李志紅,張立山,等.基于ZigBee技術(shù)的糧庫監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].農(nóng)業(yè)工程學(xué)報(bào),2009,25(9):197?201.
[4] 衣翠平.基于無線傳感器網(wǎng)絡(luò)的糧庫溫濕度實(shí)時(shí)監(jiān)控系統(tǒng)研究[D].長春:長春理工大學(xué),2012.
[5] 沈建華,楊燕琴,翟驍曙.MSP430系列16位超低功耗單片機(jī)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2004.
[6] 譚輝.Nordic中短距離無線應(yīng)用入門與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2009.
[7] 何東坡,任貴波,韓春鵬,等.DS18B20在季凍土區(qū)公路路基溫度場(chǎng)測(cè)量中的應(yīng)用[J].電子技術(shù)應(yīng)用,2010(4):48?50.
[8] 袁易君.基于nRF905糧庫溫濕度監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].低壓電器,2009(14):40?42.
[9] WATSON K, NAGEL C. C#入門經(jīng)典[M].齊立波,譯.北京:清華大學(xué)出版社,2008.
[10] 崔群法,唐有明,王俊偉.Visual C# 2008從入門到精通[M].北京:電子工業(yè)出版社,2009.