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