摘 要:針對(duì)傳統(tǒng)的自動(dòng)灌溉系統(tǒng)存在的效率低、穩(wěn)定性差等問(wèn)題,本文提出了一種新的自動(dòng)灌溉控制方案。本方案以MSP430為主控芯片,結(jié)合CC1101作為無(wú)線(xiàn)通訊模塊簡(jiǎn)化布線(xiàn),上位機(jī)輔助判斷減輕MCU運(yùn)算負(fù)擔(dān)。簡(jiǎn)約的硬件設(shè)計(jì)配合功能完善的上位機(jī)完成自動(dòng)控制灌溉、歷史環(huán)境參數(shù)記錄、環(huán)境異常短信警告等功能。該系統(tǒng)穩(wěn)定、可靠,具有較好的實(shí)用性及可延展性。 
關(guān)鍵詞:MSP430 自動(dòng)控制 上位機(jī) 輪詢(xún)方式 
  當(dāng)前我國(guó)農(nóng)業(yè)灌溉水平低,但是節(jié)水潛力巨大,節(jié)水灌溉技術(shù)的應(yīng)用和推廣,是緩解我國(guó)水資源緊缺的戰(zhàn)略選擇,是建立節(jié)水型社會(huì)的需要[1]。現(xiàn)有的智能灌溉系統(tǒng)控制器通常采用MCS51等其它微控制器作為控制芯片,并配以較多的模擬電路和邏輯門(mén)電路,其設(shè)計(jì)復(fù)雜,功耗、穩(wěn)定性和可靠性難以得到保證[2]。如今,隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,一些復(fù)雜的數(shù)據(jù)處理完全可以交給計(jì)算機(jī)通過(guò)上位機(jī)軟件完成。 
  本文將分別從硬件編程和軟件上位機(jī)兩個(gè)方面,結(jié)合外圍電路,介紹一種以MSP430為主控制器的、穩(wěn)定的農(nóng)田自動(dòng)灌溉系統(tǒng)。 
  1 系統(tǒng)整體構(gòu)架及工作原理概述 
  這種農(nóng)田自動(dòng)灌溉系統(tǒng)的整體執(zhí)行思路如圖1所示,本系統(tǒng)采用的是離散型控制系統(tǒng),其具有三級(jí)結(jié)構(gòu)。系統(tǒng)從下到上依次為:傳感器檢測(cè)與灌溉執(zhí)行部分,MCU自動(dòng)檢測(cè)控制部分,田間監(jiān)控中心。 
  底層的傳感器有多種,分別對(duì)土壤的溫度、濕度等進(jìn)行檢測(cè)。本系統(tǒng)能根據(jù)采集到的土壤濕度情況進(jìn)行自動(dòng)控制灌溉,其余采集到的環(huán)境參數(shù)供人員參考,做出合適的施肥灌溉決定。這些傳感器或設(shè)備受到MCU控制,將信息呈遞到單片機(jī),通過(guò)其內(nèi)部集成的12位ADC對(duì)數(shù)據(jù)進(jìn)行處理,從而判斷是否需要灌溉,并將數(shù)據(jù)通過(guò)無(wú)線(xiàn)通訊模塊發(fā)送到田間監(jiān)控中心。 
  田間監(jiān)控中心可以修改田間各節(jié)點(diǎn)判斷灌溉的標(biāo)準(zhǔn)值,能夠按時(shí)接收并儲(chǔ)存各節(jié)點(diǎn)的環(huán)境參數(shù),記錄灌溉情況,通過(guò)折線(xiàn)圖或列表形式顯示。當(dāng)田間發(fā)生火災(zāi)或其他異常情況時(shí),軟件通過(guò)網(wǎng)絡(luò)自動(dòng)發(fā)出短信提示人員前去查看。此外,上位機(jī)能自動(dòng)從網(wǎng)上下載天氣信息,協(xié)助實(shí)現(xiàn)自動(dòng)灌溉功能。 
  2 系統(tǒng)硬件部分 
  2.1 主控芯片 
  MSP430系列單片機(jī)是由TI公司1996年推出的一種16位超低功耗、具有精簡(jiǎn)指令集的混合信號(hào)處理器。 
  本系統(tǒng)的主控模塊采用MSP430F2553微處理器。MSP430系列單片機(jī)是具有精簡(jiǎn)指令集的超低功耗的16位單片機(jī)。它的最高工作頻率可達(dá)25MHz,同時(shí)具有256KB Flash、16 KB RAM,內(nèi)含硬件乘法器、12位ADC,以及SPI模塊[3]等,四種超低功耗模式,非常適合低功耗產(chǎn)品開(kāi)發(fā)。它具有五種低功耗模式,在不同的模式下消耗電流為0.1~340 uA[4],是目前功耗最低的單片機(jī)。另外它從低功耗模式轉(zhuǎn)到活躍模式,需要的時(shí)間僅為6 us,可以被快速喚醒。因此該微處理器被廣泛用在智能傳感器、實(shí)用檢測(cè)儀器、點(diǎn)擊控制、便捷式儀表等領(lǐng)域[5,6]。 
  2.2 傳感器選用 
  本系統(tǒng)的檢測(cè)部分分別對(duì)土壤的溫度、濕度等環(huán)境參數(shù)進(jìn)行檢測(cè),其中土壤溫度傳感器采用DS18B20,土壤濕度傳感器采用FDR土壤濕度傳感器。 
  土壤溫度傳感器采用的是不銹鋼封裝的DS18B20,如圖2所示。其具有現(xiàn)場(chǎng)安裝簡(jiǎn)單、控制方便、系統(tǒng)性能好、易于擴(kuò)展等特點(diǎn)[7],插入土壤對(duì)地溫進(jìn)行檢測(cè),精度較高、工作穩(wěn)定,單片機(jī)與其進(jìn)行單總線(xiàn)通訊獲取溫度值。 
  FDR(Frequency Domain Reflectometry) 土壤濕度傳感器,見(jiàn)圖3,利用電磁脈沖原理,根據(jù)電磁波在土壤中傳播頻率測(cè)試土壤的表觀介電常數(shù)ε,得到土壤容積含水量(θv)[8,9]。其輸出信號(hào)為模擬電壓0~ 1.1V,本系統(tǒng)利用MSP430F5438內(nèi)部的12位ADC直接對(duì)其采集到的數(shù)據(jù)進(jìn)行處理得到土壤濕度。 
  2.3 電源模塊 
  系統(tǒng)供電采用電源轉(zhuǎn)換器直接將220 V交流電轉(zhuǎn)為12 V直流電,用于給水泵和土壤濕度傳感器供電。MSP430單片機(jī)的供電電壓為3.3 V,為保證散熱效果,采用二級(jí)降壓的方式分散熱量,集成LM2596與LM1117,依次將12 V直流電壓轉(zhuǎn)為5 V和 3.3 V電壓,取3.3 V為MSP430F5438、土壤溫度傳感器及無(wú)線(xiàn)通訊模塊供電。電路圖如圖4所示。 
  2.4 灌溉控制模塊 
  灌溉控制模塊由單片機(jī)、繼電器和水泵組成。單片機(jī)根據(jù)采集到的土壤濕度,結(jié)合此時(shí)地溫等條件,判斷是否需要進(jìn)行灌溉。滿(mǎn)足灌溉條件時(shí),由P3.0口送出控制信號(hào)控制至光耦,光耦接通使繼電器開(kāi)啟,從而開(kāi)啟水泵。系統(tǒng)中水泵的額定電壓為12V,繼電器作為水泵的開(kāi)關(guān),選用12V繼電器,因此在電路中并聯(lián)續(xù)流二極管保護(hù)電路。如圖5所示。 
  2.5 無(wú)線(xiàn)通訊模塊 
  本系統(tǒng)采用的無(wú)線(xiàn)通訊模塊為美國(guó)TI公司出品的CC1101。CC1101是一款低于1 GHz高性能射頻收發(fā)器,其內(nèi)部集成了一個(gè)高度可配置的調(diào)制解調(diào)器,支持多種調(diào)制格式,最高數(shù)據(jù)傳輸率為500 kb/s。在發(fā)射狀態(tài)下,其發(fā)射功率可通過(guò)編程調(diào)節(jié),最大發(fā)射功率可達(dá)+10 dBm,接收靈敏度最佳為-110 dBm,抗干擾能力強(qiáng),且功耗極低,可用于極低功耗的RF應(yīng)用。它與MSP430F5438結(jié)合,使系統(tǒng)更為節(jié)能。 
  3 單片機(jī)控制部分 
  3.1 田間節(jié)點(diǎn)及灌溉控制部分 
  田間節(jié)點(diǎn)以MSP430F5438為控制核心,結(jié)合各傳感器、繼電器、水泵、無(wú)線(xiàn)模塊,共同構(gòu)成。以開(kāi)發(fā)平臺(tái)IAR Embedded Workbench為開(kāi)發(fā)環(huán)境,對(duì)MSP430F5438進(jìn)行C程序開(kāi)發(fā),這款軟件具備高度優(yōu)化的IAR AVR C/C++編譯器,可以有效提高用戶(hù)的工作效率。   對(duì)田間節(jié)點(diǎn)的環(huán)境參數(shù)檢測(cè)、數(shù)據(jù)發(fā)送及控制灌溉,由MSP430F5438單片機(jī)控制執(zhí)行。土壤濕度的上下閾值保存在E2PR 
  OM中,可通過(guò)上位機(jī)軟件發(fā)送更改預(yù)設(shè)值命令,更改土壤濕度預(yù)設(shè)值即灌溉條件。單片機(jī)控制灌溉的基本流程如圖6所示。 
  田間監(jiān)控中心有中央通訊模塊,通訊模塊由MSP430F5438和CC1101組成。中央通訊模塊通過(guò)串口與上位機(jī)進(jìn)行通訊,對(duì)田間節(jié)點(diǎn)采用輪詢(xún)方式進(jìn)行無(wú)線(xiàn)傳輸,避免信息擁塞。 
  此外,用戶(hù)還可直接使用上位機(jī)軟件發(fā)送灌溉命令到單片機(jī),開(kāi)啟水泵灌溉。 
  3.2 無(wú)線(xiàn)通訊部分 
  本系統(tǒng)中無(wú)線(xiàn)收發(fā)模塊采用CC1101,正常情況下,每隔固定的時(shí)間發(fā)送一次數(shù)據(jù),因此通訊模式為輪詢(xún)通訊模式。輪詢(xún)方式的工作原理為,總線(xiàn)信道上有一個(gè)主站和N個(gè)子站,主站向子站發(fā)送詢(xún)問(wèn)命令,子站收到后才可利用信道,以避免信息擁塞。通過(guò)MSP430編程對(duì)CCll01的4線(xiàn)SPI接口和GDO2測(cè)試接口進(jìn)行配置,結(jié)合MSP430的時(shí)鐘,將各田間節(jié)點(diǎn)的CC1101設(shè)置成輪詢(xún)通訊模式。 
  4 系統(tǒng)上位機(jī)軟件部分 
  4.1 開(kāi)發(fā)環(huán)境 
  本上位機(jī)軟件收集單片機(jī)檢測(cè)的溫度、濕度、PH值等數(shù)據(jù),經(jīng)過(guò)適當(dāng)處理,存儲(chǔ)到數(shù)據(jù)庫(kù)中并以折線(xiàn)圖和列表的形式顯示。由于Windows API復(fù)雜、難度大,本上位機(jī)采用C#語(yǔ)言,在Visual Studio 2010.NET環(huán)境下開(kāi)發(fā)完成。.NET集成了大量類(lèi)庫(kù),使用非常方便,可以滿(mǎn)足用戶(hù)的各種要求。 
  4.2 軟件上下位機(jī)通訊設(shè)計(jì) 
  本上位機(jī)使用SerialPort類(lèi)進(jìn)行串口通信,SerialPort類(lèi)為應(yīng)用程序提供了通過(guò)串口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法,具有功能強(qiáng)大,通信快速,實(shí)時(shí)性好等特點(diǎn)。此外還使用了Timer控件,當(dāng)Timer控件啟動(dòng)后,每個(gè)一個(gè)固定時(shí)間段觸發(fā)相同時(shí)間。用Timer控件實(shí)現(xiàn)了數(shù)據(jù)接收。 
  4.3 自動(dòng)繪圖功能的實(shí)現(xiàn) 
  關(guān)于折線(xiàn)圖的顯示,本上位機(jī)使用Zed 
  Gragh控件進(jìn)行折線(xiàn)圖的繪制,ZedGragh是一個(gè)開(kāi)源的.NET圖表類(lèi)庫(kù)。此類(lèi)庫(kù)比.NET自帶類(lèi)庫(kù)使用更加靈活方便。使用DataGridView控件實(shí)現(xiàn)以列表的形式顯示數(shù)據(jù)。Form1窗體是本上位機(jī)的主窗體,擁有各種功能按鈕,并進(jìn)行折線(xiàn)圖顯示,List窗體是Form1窗體的子窗體,負(fù)責(zé)進(jìn)行列表顯示。 
  系統(tǒng)采集全天的溫度信息并以折線(xiàn)圖顯示界面如圖8所示。 
  4.4 異常時(shí)短信報(bào)警功能的實(shí)現(xiàn) 
  報(bào)警是指,當(dāng)上位機(jī)接收到的某些數(shù)據(jù)超過(guò)上限值時(shí)會(huì)發(fā)送短信提醒用戶(hù),如田間發(fā)生火災(zāi)等。手機(jī)短信發(fā)送是本上位機(jī)的擴(kuò)展功能。通過(guò)C#編程,實(shí)現(xiàn)上位機(jī)給手機(jī)發(fā)送短信,當(dāng)客戶(hù)不在PC端時(shí)提示客戶(hù)的功能。該功能的原理是通過(guò)一些運(yùn)營(yíng)商提供的接口實(shí)現(xiàn)的。本上位機(jī)采用可發(fā)送短信的Web Service,Web Service是新浪網(wǎng)提供的、可供用戶(hù)直接調(diào)用的發(fā)送短消息的Web Service。Web Service中提供了一個(gè)發(fā)送短消息的方法"sendXml"。此方法的語(yǔ)法格式如下: 
  string sendXml(carrier,userid,password,mobilenumber,content,msgtype) 
  carrier:運(yùn)營(yíng)商名稱(chēng) 
  userid:新浪網(wǎng)上注冊(cè)的手機(jī)號(hào) 
  password:成功注冊(cè)手機(jī)后的反饋密碼 
  mobilenumber:目標(biāo)手機(jī)號(hào)碼 
  content:所要發(fā)送短消息的內(nèi)容 
  msgtype:發(fā)送短消息以文本信息形式發(fā)送,輸入"Text" 
  4.5 上位機(jī)軟件其他功能原理及實(shí)現(xiàn) 
  數(shù)據(jù)保存,通過(guò)上位機(jī)控制根據(jù)用戶(hù)需求將接受到的數(shù)據(jù)保存起來(lái),以便以后可以再次讀取歷史數(shù)據(jù)。為了數(shù)據(jù)的安全性,本上位機(jī)將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,使用的是Oracle數(shù)據(jù)庫(kù);竟δ軐(shí)現(xiàn)流程如圖9所示。天氣信息通過(guò)中國(guó)氣象局提供的API獲取,根據(jù)獲得的晴雨天氣,給下位機(jī)發(fā)送信息協(xié)助判斷、控制灌溉。歷史數(shù)據(jù)可按照溫度、濕度、pH值按鈕顯示不同數(shù)據(jù),可以選擇具體時(shí)間或具體節(jié)點(diǎn)查看環(huán)境情況。 
  5 結(jié)語(yǔ) 
  本文介紹的節(jié)水灌溉自動(dòng)控制系統(tǒng),利用MSP430單片機(jī)內(nèi)部的ADC模塊使得電路設(shè)計(jì)簡(jiǎn)單化,田間各節(jié)點(diǎn)的單片機(jī)收集環(huán)境參數(shù)并自動(dòng)判斷灌溉,上位機(jī)通過(guò)網(wǎng)絡(luò)獲取天氣信息、檢測(cè)環(huán)境參數(shù)正常,輔助判斷是否應(yīng)灌溉,并且能對(duì)田間每各節(jié)點(diǎn)的灌溉參數(shù)進(jìn)行修改,實(shí)現(xiàn)自動(dòng)控制灌溉。 
  實(shí)驗(yàn)證明,該系統(tǒng)具備較好的穩(wěn)定性,節(jié)能且運(yùn)行可靠,可以滿(mǎn)足基本農(nóng)業(yè)生產(chǎn)需要,使用方便,節(jié)水節(jié)能。但對(duì)于數(shù)據(jù)的處理性不強(qiáng),仍需做完善。在硬件和軟件方面仍具備可延展性,可采集周邊環(huán)境參數(shù)如光照、雨量、CO2等,結(jié)合信息融合、PID等算法,提高系統(tǒng)對(duì)周?chē)h(huán)境的分析能力,滿(mǎn)足不同用戶(hù)的需求。 
  參考文獻(xiàn) 
  [1] 馬成,周進(jìn)祥.淺析我國(guó)農(nóng)業(yè)節(jié)水灌溉現(xiàn)狀及發(fā)展[J].科技傳播,2009,9下:31-32. 
  [2] 劉善梅,彭輝.基于MSP430的智能灌溉系統(tǒng)設(shè)計(jì)[J].農(nóng)機(jī)化研究,2010,7:117-120. 
  [3] 齊懷琴,張松,王晗.基于MSP430F5438的超低功耗森林火災(zāi)預(yù)警系統(tǒng)設(shè)計(jì)[J].測(cè)控技術(shù),2013,32(1):28-31. 
  [4] Texas Instruments Incorporated. Msp430x1xx Family User's Guide[EB/OL].2009-10-01.http://www.msp430.com. 
  [5] 秦龍.MSP430單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)典型實(shí)例[M].北京:中國(guó)電力出版社,2005:1-345. 
  [6] 胡大可.MSP430系列FLASH型超低功耗16位單片機(jī)[M].北京:北京航天航空大學(xué)出版社,2001:1-316. 
  [7] 張軍.智能溫度傳感器DS18B20及其應(yīng)用[J].儀表技術(shù),2010,4:68-70. 
  [8] 李元壽,王根緒,程玉菲,等.FDR在高寒草地土壤水分測(cè)量中的標(biāo)定及其應(yīng)用[J].干旱區(qū)地理,2006,29(4):543-547. 
  [9] 呂國(guó)華,李子忠,趙炳祥,等.頻率域反射儀測(cè)定土壤含水量的校正與田間驗(yàn)證[J].干旱地區(qū)農(nóng)業(yè)研究,2008,26(4):33-37.