周曉倩,馬孝義,陳 磊 ,陳海濤
(1.西北農(nóng)林科技大學(xué) 機(jī)械與電子工程學(xué)院,陜西 楊凌 712100;2.西北農(nóng)林科技大學(xué) 水利與建筑工程學(xué)院,陜西 楊凌 712100)
灌區(qū)氣象數(shù)據(jù)的及時(shí)、準(zhǔn)確獲取是實(shí)施精確灌溉的必要條件,因此灌區(qū)的信息化十分重要。氣象數(shù)據(jù)監(jiān)測系統(tǒng)利用實(shí)時(shí)采集的氣象資料,對(duì)未來一段時(shí)間內(nèi)的氣象情況作出較為精確的預(yù)測和預(yù)報(bào),對(duì)于農(nóng)業(yè)生產(chǎn)具有一定的指導(dǎo)意義[1]。隨著通信和網(wǎng)絡(luò)的發(fā)展,GPRS在農(nóng)業(yè)、工業(yè)上的應(yīng)用越來越廣泛,它能充分利用網(wǎng)絡(luò)資源,具有傳輸速率快、組網(wǎng)靈活、永遠(yuǎn)在線和按流量計(jì)費(fèi)等優(yōu)點(diǎn)。然而,由于專網(wǎng)APN和固定IP的價(jià)格對(duì)于小型灌區(qū)的長期使用過于昂貴,因此目前采用動(dòng)態(tài)IP接入Internet仍然是大部分用戶的選擇[2]。
本文提出一種低功耗、設(shè)計(jì)相對(duì)簡單的監(jiān)測系統(tǒng)。主要功能是監(jiān)測農(nóng)田的溫度、濕度、光照等氣象參數(shù)。采用MSP430單片機(jī)與QUECTEL M20無線通信模塊,設(shè)計(jì)基于GPRS的動(dòng)態(tài)IP的農(nóng)田氣象數(shù)據(jù)監(jiān)測系統(tǒng)。研究內(nèi)容包括硬件設(shè)計(jì)和軟件編制,硬件設(shè)計(jì)包括搭建系統(tǒng)下位機(jī)平臺(tái),完成采集、處理、通信電路設(shè)計(jì);軟件編制包括下位機(jī)采集、處理、通信程序設(shè)計(jì)以及上位機(jī)數(shù)據(jù)中心軟件編制。
下位機(jī)監(jiān)測部分包括各種氣象傳感器、單片機(jī)微控制器、GPRS無線通信模塊。氣象數(shù)據(jù)傳感器負(fù)責(zé)實(shí)時(shí)采集農(nóng)田中的溫度、濕度和光照信息,并由MSP430單片機(jī)通過RS232串口實(shí)時(shí)地將氣象數(shù)據(jù)發(fā)送給GPRS M20模塊。下位機(jī)模塊采用SD卡將時(shí)間和氣象信息以文本的方式進(jìn)行存儲(chǔ),方便用戶以后查閱[3]。下位機(jī)硬件結(jié)構(gòu)圖如圖1所示。
圖1 下位機(jī)硬件結(jié)構(gòu)圖
系統(tǒng)圍繞低功耗進(jìn)行設(shè)計(jì),包括MSP430的低功耗模式和M20的休眠模式。低功耗模式與正常工作模式切換的具體實(shí)現(xiàn)如下:用手機(jī)發(fā)送休眠命令(M)給GPRS無線通信模塊,GPRS M20收到該命令就會(huì)將信息通過標(biāo)準(zhǔn)RS232串口傳送給MSP430控制器,接著MSP430就會(huì)將DTR0線置為高以使M20進(jìn)入休眠模式,一旦M20進(jìn)入休眠模式,MSP430也將進(jìn)入低功耗模式。在M20處于休眠模式下,仍然可以正常接收短信,這時(shí)向M20發(fā)送一條短信,就會(huì)將M20從休眠模式喚醒(DTR0變成低電平)。一旦M20進(jìn)入工作模式,MSP430也將被喚醒,從而系統(tǒng)又返回正常工作模式。通過這種設(shè)計(jì),大大降低了系統(tǒng)的功耗。MSP430與GPRS M20之間的具體連接實(shí)現(xiàn)如圖2所示。
本系統(tǒng)采用ADSL撥號(hào)上網(wǎng),每次撥號(hào)上線后,得到的IP地址是變化的。采用花生殼6.5工程版,通過使用花生殼動(dòng)態(tài)域名的端口映射功能,在沒有固定公網(wǎng)IP的情況下,借助花生殼服務(wù)將動(dòng)態(tài)公網(wǎng)IP和域名進(jìn)行實(shí)時(shí)綁定,通過已激活花生殼服務(wù)的域名從外網(wǎng)訪問內(nèi)網(wǎng)服務(wù)。而且6.5工程版新增花生殼映射功能,可以直接利用它來取代路由器端口映射的操作,只要輸入內(nèi)網(wǎng)的IP和端口號(hào),就能實(shí)現(xiàn)在外網(wǎng)輕松訪問內(nèi)網(wǎng)下路由器的功能。
圖2 通信連接圖
GPRS無線通信模塊與MSP430微控制器間的通信采用的是AT指令集。在GPRS無線通信模塊上網(wǎng)之前,需要對(duì)DTU的參數(shù)進(jìn)行設(shè)置。主要的工作有:通過AT+IPR=9600命令設(shè)置通信波特率,波特率設(shè)為9 600 b/s;通過AT+CGDCONT=1,"IP","CMNET"命令,設(shè)置GPRS接入網(wǎng)關(guān)為移動(dòng)夢(mèng)網(wǎng);使用AT+CGACT=1,1命令開通GPRS功能;通過AT+QIOPEN="TCP","benbensandai.eicp.net",5566命令設(shè)置接收服務(wù)器的協(xié)議類型、域名和端口號(hào),如果返回的結(jié)果為CONNECT OK就實(shí)現(xiàn)了模塊與上位機(jī)的正常連接;通過AT+QICLOSE命令,模塊注銷 GPRS 網(wǎng)[4]。
為了方便程序設(shè)計(jì),增強(qiáng)程序可讀性,將建立連接所需的AT命令以字符串形式存放于AT命令緩存區(qū),所需多條AT指令長度不一且發(fā)送順序不可改變。為了有效控制每條AT指令,提高CPU利用率,需將AT指令緩存區(qū)設(shè)置為指針數(shù)組形式,在建立連接時(shí)通過循環(huán)調(diào)用字符串發(fā)送函數(shù)將這些AT命令發(fā)送,相鄰AT命令間要有2~3 s的延時(shí),所以每發(fā)送完一條AT命令都要調(diào)用一個(gè)3 s的延時(shí)子程序,然后通過串口中斷接收函數(shù)接收AT命令返回值來判斷連接是否成功[5]。GPRS終端與上位機(jī)通信的軟件實(shí)現(xiàn)如圖3所示。
本文主控制器采用美國德州儀器的MSP430單片機(jī),其處理能力強(qiáng),運(yùn)算速度快,片內(nèi)資源豐富,方便高效的開發(fā)環(huán)境。而它最大的特點(diǎn)就是超低功耗,由于系統(tǒng)運(yùn)行時(shí)開啟的功能模塊不同,即采用不同的工作模式,芯片的功耗有著顯著的不同。在系統(tǒng)中共有1種活動(dòng)模式(AM)和5種低功耗模式 (LPM0~LPM4)。在實(shí)時(shí)時(shí)鐘模式下,可達(dá)2.5 μA;在RAM 保持模式下,最低僅為 0.1 μA?;谶@個(gè)特點(diǎn),將其作為監(jiān)控系統(tǒng)的主控芯片非常合適。
圖3 GPRS終端程序流程圖
由傳感器獲取的氣象參數(shù)需要定時(shí)地存儲(chǔ)到SD卡中,這樣即使監(jiān)控中心出現(xiàn)突然斷電的情況,依然可以獲取到當(dāng)天的氣象參數(shù),從而便于數(shù)據(jù)的整理和參數(shù)的計(jì)算。
本系統(tǒng)采用16 GB大容量的SDHC卡,以FAT32文件系統(tǒng)作為存儲(chǔ)形式,將所采集的氣象數(shù)據(jù)存儲(chǔ)在TXT文件中,該文件以當(dāng)前時(shí)間命名以便于查閱。SDHC卡中存儲(chǔ)的氣象數(shù)據(jù)可以通過USB2.0接口進(jìn)行高速的讀取。對(duì)SDHC卡的讀取和控制采用占用I/O口最少的SPI模式,SPI模式利用 SDHC卡的 CS(片選引腳)、MOSI(數(shù)據(jù)輸入引腳)、MISO(數(shù)據(jù)輸出引腳)、CLK(時(shí)鐘引腳)實(shí)現(xiàn)與外部的數(shù)據(jù)傳輸[6]。SDHC卡控制電路如圖4所示。
圖4 SD卡控制電路
上位機(jī)數(shù)據(jù)中心軟件由VB6.0和Windows自帶的Access數(shù)據(jù)庫聯(lián)合開發(fā)完成,氣象數(shù)據(jù)中心主要由4個(gè)功能模塊組成,分別為用戶登錄界面、數(shù)據(jù)通信模塊、通信設(shè)置模塊和信息處理模塊。其中用戶登錄界面中的用戶信息管理部分可以實(shí)現(xiàn)用戶的增加、修改和刪除的功能,并且可以允許用戶以管理員和普通用戶兩種不同權(quán)限的身份進(jìn)入系統(tǒng);數(shù)據(jù)通信模塊主要完成氣象數(shù)據(jù)的接收、顯示和處理的功能,還能將所連接客戶端的IP地址和端口號(hào)展示出來,狀態(tài)欄中可直觀、形像地顯示當(dāng)前TCP連接的狀態(tài);通信設(shè)置模塊主要包括系統(tǒng)連接Internet的協(xié)議設(shè)置和端口號(hào)的設(shè)定,這是實(shí)現(xiàn)TCP/UDP連接的第一步;信息處理模塊主要將接收到的數(shù)據(jù)進(jìn)行整理和存儲(chǔ),并可以以Excel報(bào)表的形式導(dǎo)出,方便用戶的后續(xù)處理[7]。
在該監(jiān)控軟件的編寫過程中,采用Winsock控件編寫網(wǎng)絡(luò)通信程序,從而實(shí)現(xiàn)對(duì)通信的控制。具體方法是用Senddata方法發(fā)送命令,然后用Getdata方法將接收到的數(shù)據(jù)讀取出來。Access數(shù)據(jù)庫用來保存系統(tǒng)相關(guān)參數(shù)和各個(gè)觀測點(diǎn)的氣象數(shù)據(jù)。
最終的編寫成功的上位機(jī)軟件可以實(shí)現(xiàn)GPRS DTU終端的狀態(tài)顯示(分別為 Closed、Open、Listening、Connecting、Connected、Closing、Error),下位機(jī)客戶端的數(shù)據(jù)采集,歷史氣象數(shù)據(jù)的查詢、修改和刪除,具體工作時(shí)間的設(shè)置,相關(guān)工作模式的選擇等操作[8]。用戶登錄界面和通信設(shè)置模塊如圖5和圖6所示。
圖5 用戶登錄界面
實(shí)時(shí)的氣象數(shù)據(jù)監(jiān)測服務(wù)器需要一個(gè)安裝有數(shù)據(jù)控制軟件的PC。該實(shí)時(shí)的監(jiān)測數(shù)據(jù)中心軟件可以控制系統(tǒng),并且實(shí)現(xiàn)數(shù)據(jù)的完整接收、分析和存儲(chǔ)。當(dāng)不需要采集氣象信息時(shí),手機(jī)通過命令(M)向客戶端發(fā)送休眠命令,使系統(tǒng)處于低功耗模式;當(dāng)系統(tǒng)需要采集數(shù)據(jù)時(shí),手機(jī)發(fā)送喚醒短信,使系統(tǒng)處于工作狀態(tài),這樣的工作模式極大地降低了系統(tǒng)的功耗。實(shí)驗(yàn)結(jié)果表明,服務(wù)器端監(jiān)測中心可以穩(wěn)定顯示,該系統(tǒng)運(yùn)行結(jié)果良好。運(yùn)行結(jié)果圖和系統(tǒng)電路圖如圖7所示。
本監(jiān)控系統(tǒng)依托中國移動(dòng)的GPRS網(wǎng)絡(luò),大大減少了重建網(wǎng)絡(luò)的高花費(fèi)。針對(duì)工程具體情況編寫相應(yīng)的上位機(jī)軟件,有利于數(shù)據(jù)的處理和保存,使系統(tǒng)更加經(jīng)濟(jì)和實(shí)用。
基于MSP430和GPRS的氣象數(shù)據(jù)采集和監(jiān)控系統(tǒng)不僅花費(fèi)低、可靠性強(qiáng),而且容易擴(kuò)展和更新??紤]到移植的需要,在設(shè)計(jì)過程中應(yīng)該將相應(yīng)的驅(qū)動(dòng)程序模塊化,以便于將其應(yīng)用到環(huán)境監(jiān)測、電力監(jiān)測、交通監(jiān)控等領(lǐng)域[9]。
但是,本系統(tǒng)仍然有問題需要解決,基于花生殼的免費(fèi)動(dòng)態(tài)解析域名服務(wù)有時(shí)候會(huì)出現(xiàn)不穩(wěn)定的現(xiàn)象。因此如果數(shù)據(jù)中心的IP地址是動(dòng)態(tài)變化的,最好的解決方法是上位機(jī)以短信的形式將變化的服務(wù)器IP地址發(fā)送給GPRS客戶端,如此的方案需要配備專門的上位機(jī)軟件,支持直接通過Internet向SIM卡發(fā)短信。或者,服務(wù)器端增加一個(gè)GSM模塊,由該GSM模塊將監(jiān)控中心變化的IP地址以短信的形式發(fā)給GPRS DTU,下位機(jī)客戶端一旦收到短信,就向新的IP地址發(fā)起連接[10]。然而如此的改進(jìn),無疑增加了系統(tǒng)的設(shè)計(jì)開發(fā)難度和費(fèi)用成本。
圖6 通信設(shè)置模塊
圖7 數(shù)據(jù)通信模塊運(yùn)行結(jié)果
[1]聶明新,鄒宇,莫奎.基于動(dòng)態(tài)IP的 GPRS遠(yuǎn)程監(jiān)控系統(tǒng)[J].武漢理工大學(xué)學(xué)報(bào),2011,5(33):685-688.
[2]郭志偉.基于GSM的農(nóng)田氣象信息遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2009,40(3):161-166.
[3]李明軍,尹文明.基于 GPRS的大棚智能監(jiān)控系統(tǒng)[J].電子技術(shù)應(yīng)用,2006,32(8):83-85.
[4]余義德,王飛.基于SDHC卡陣列的大容量存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].應(yīng)用科技,2011,12(38):36-39.
[5]GURTOV A,PASSOJA M.Multi-Layer protocol tracing in a GPRS network[C].IEEE Vehicular Technology Conference,2006,56(3):1612-1613.
[6]孫鳴,吳鈺.基于 TC45模塊的 GPRS無線抄表系統(tǒng)[J].電子技術(shù)應(yīng)用,2005,31(6):29-31.
[7]沈建華,楊艷琴.MSP430系列16位超低功耗單片機(jī)原理與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008.
[8]KALDEN R,MEIRICK I.Wireless internet access based on GPRS[J].IEEE Personal Communications,2000,7(2):8-18.
[9]喬曉軍,沈佐銳,陳青云.農(nóng)業(yè)設(shè)施環(huán)境通用監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].農(nóng)業(yè)工程學(xué)報(bào),2000,16(3):77-80.
[10]TSENG C L,JIANG J A,LEE R G,et al.Feasibility study on application of GSM-SMS technology to field data acquisition[J].Computers and Electronics in Agriculture,2006,53(1):45-59.