《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Java的農(nóng)田節(jié)水灌溉監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于Java的農(nóng)田節(jié)水灌溉監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
來(lái)源:微型機(jī)與應(yīng)用2013年第22期
王福平,劉 芳,馮盼盼
(北方民族大學(xué) 創(chuàng)新創(chuàng)業(yè)教育中心,寧夏 銀川750021)
摘要: 針對(duì)我國(guó)目前農(nóng)村水費(fèi)計(jì)收存在的不合理性,以及農(nóng)田灌溉中的大漫灌浪費(fèi)水資源問(wèn)題,介紹了一種農(nóng)田節(jié)水灌溉監(jiān)控系統(tǒng)的實(shí)現(xiàn)技術(shù),描述了系統(tǒng)的結(jié)構(gòu)、監(jiān)控中心的功能和實(shí)現(xiàn)方法;并應(yīng)用Java技術(shù)設(shè)計(jì)了一套遠(yuǎn)程監(jiān)控中心系統(tǒng)軟件,該設(shè)計(jì)方案應(yīng)用Java面向?qū)ο蟮募夹g(shù),可方便地跨平臺(tái)應(yīng)用,具有較高的可擴(kuò)展性。實(shí)踐表明:該系統(tǒng)使用方便,并且能夠滿足各項(xiàng)性能指標(biāo)要求,顯示了Java技術(shù)在灌溉監(jiān)控系統(tǒng)中廣闊的應(yīng)用前景。
Abstract:
Key words :

摘  要: 針對(duì)我國(guó)目前農(nóng)村水費(fèi)計(jì)收存在的不合理性,以及農(nóng)田灌溉中的大漫灌浪費(fèi)水資源問(wèn)題,介紹了一種農(nóng)田節(jié)水灌溉監(jiān)控系統(tǒng)的實(shí)現(xiàn)技術(shù),描述了系統(tǒng)的結(jié)構(gòu)、監(jiān)控中心的功能和實(shí)現(xiàn)方法;并應(yīng)用Java技術(shù)設(shè)計(jì)了一套遠(yuǎn)程監(jiān)控中心系統(tǒng)軟件,該設(shè)計(jì)方案應(yīng)用Java面向?qū)ο蟮募夹g(shù),可方便地跨平臺(tái)應(yīng)用,具有較高的可擴(kuò)展性。實(shí)踐表明:該系統(tǒng)使用方便,并且能夠滿足各項(xiàng)性能指標(biāo)要求,顯示了Java技術(shù)在灌溉監(jiān)控系統(tǒng)中廣闊的應(yīng)用前景。
關(guān)鍵詞: Java技術(shù);數(shù)據(jù)庫(kù);節(jié)水灌溉;監(jiān)控系統(tǒng)

    節(jié)水農(nóng)業(yè)是我國(guó)今后農(nóng)業(yè)發(fā)展的方向,對(duì)緩解我國(guó)農(nóng)業(yè)干旱缺水,實(shí)現(xiàn)農(nóng)業(yè)和整個(gè)國(guó)家經(jīng)濟(jì)的可持續(xù)發(fā)展具有重要的意義和深遠(yuǎn)的影響。尤其對(duì)西北干旱區(qū)來(lái)說(shuō),更是一個(gè)難得的機(jī)遇[1]。黃河下游引黃灌區(qū)水費(fèi)收繳普遍采用按灌溉面積或農(nóng)業(yè)人口分?jǐn)偸召M(fèi)的方法,這也是目前我國(guó)農(nóng)業(yè)水費(fèi)計(jì)收普遍采用的辦法[2]。所以,在灌溉期節(jié)不節(jié)水跟農(nóng)民的利益沒(méi)多大關(guān)系,農(nóng)民仍然習(xí)慣于大水漫灌淌“大鍋水”,進(jìn)而造成田間灌水量大,水資源浪費(fèi)非常嚴(yán)重。為此,本文設(shè)計(jì)了一套閉環(huán)控制的節(jié)水灌溉監(jiān)控系統(tǒng),將數(shù)據(jù)采集技術(shù)、無(wú)線傳感器網(wǎng)絡(luò)技術(shù)、GPRS通信技術(shù)、灌溉控制技術(shù)及短消息通信相結(jié)合,實(shí)現(xiàn)一種按需調(diào)節(jié)用水量的低功耗、低成本、傳輸可靠、管理方便的灌溉模式。
    目前許多節(jié)水灌溉系統(tǒng)的管理為巡視方式,管理人員不能在第一時(shí)間了解田間土壤濕度狀況和系統(tǒng)中元器件的工作狀態(tài)[3]。為了實(shí)現(xiàn)對(duì)田間墑情和系統(tǒng)工作狀態(tài)的實(shí)時(shí)監(jiān)控,設(shè)計(jì)了基于Java技術(shù)的遠(yuǎn)程監(jiān)控中心軟件,不僅可以實(shí)現(xiàn)對(duì)灌溉以及器件狀態(tài)的實(shí)時(shí)監(jiān)控,使用戶可以在監(jiān)控室通過(guò)監(jiān)控系統(tǒng)對(duì)田間的灌溉進(jìn)行控制;還嵌入了收費(fèi)管理系統(tǒng),通過(guò)對(duì)用水量的精確記錄實(shí)現(xiàn)水費(fèi)計(jì)收的合理管理。
1 Java技術(shù)的優(yōu)勢(shì)
    對(duì)于網(wǎng)絡(luò)監(jiān)控系統(tǒng)所要求的實(shí)時(shí)、準(zhǔn)確和無(wú)漏控等指標(biāo),B/S三層體系結(jié)構(gòu)是最佳解決方案[4],目前B/S模式的技術(shù)支持主要有最早的CGI技術(shù)、微軟的ASP技術(shù)和Sun公司的Java技術(shù),但不是所有的方案都適合監(jiān)控系統(tǒng)的設(shè)計(jì)。
    CGI雖然有其通用性的優(yōu)點(diǎn),但也有其自身的缺點(diǎn),如運(yùn)行慢、開(kāi)銷大且降低系統(tǒng)性能;Web服務(wù)器不能用數(shù)據(jù)庫(kù)級(jí)特權(quán)來(lái)控制存取權(quán)限,對(duì)用戶的訪問(wèn)權(quán)限難以控制[5]。微軟的ASP技術(shù)雖然可以產(chǎn)生和運(yùn)行動(dòng)態(tài)的、交互的Web服務(wù)應(yīng)用程序,但依附微軟的NT平臺(tái)受UNIX或LINUX而受到限制。
    Sun的Java技術(shù)主要通過(guò)JSP/Servlet來(lái)實(shí)現(xiàn),JSP除了繼承ASP的優(yōu)點(diǎn)外,有其自身的特點(diǎn),如:JSP的效率和安全性更高、組件方式更方便、標(biāo)簽可擴(kuò)充、適應(yīng)平臺(tái)更廣,基于Java具有的平臺(tái)無(wú)關(guān)性、可移植性、面向?qū)ο?、多線程、安全等特點(diǎn)[6],本設(shè)計(jì)選擇了Java技術(shù)作為B/S模式的支撐技術(shù)。
2 節(jié)水灌溉監(jiān)控系統(tǒng)的構(gòu)成
    節(jié)水灌溉監(jiān)控系統(tǒng)由底層傳感器、傳輸基站、遠(yuǎn)程監(jiān)控中心、閥門(mén)控制器以及移動(dòng)終端組成。底層傳感器包括溫度傳感器、水分傳感器以及流量傳感器,通過(guò)ZigBee無(wú)線通信將采集到的數(shù)據(jù)發(fā)送到傳輸基站進(jìn)行數(shù)據(jù)處理,處理后的數(shù)據(jù)經(jīng)GPRS無(wú)線通信發(fā)送到遠(yuǎn)程監(jiān)控中心,并對(duì)接收到的數(shù)據(jù)結(jié)合氣象信息進(jìn)行分析,與專家決策系統(tǒng)信息按照一定算法(模糊控制)得出決策信息,來(lái)控制電磁閥的開(kāi)關(guān),以完成監(jiān)控;同時(shí),用戶還可通過(guò)短消息通信向監(jiān)控系統(tǒng)發(fā)送灌溉控制信息和系統(tǒng)主要器件的故障提示信息[7],也可直接控制閥門(mén)的開(kāi)啟或關(guān)閉,該系統(tǒng)結(jié)構(gòu)設(shè)計(jì)如圖1所示。

3 遠(yuǎn)程監(jiān)控中心的設(shè)計(jì)
    根據(jù)上述的需求分析,設(shè)計(jì)了既有水費(fèi)管理功能又有灌溉監(jiān)控功能的監(jiān)控中心軟件。水費(fèi)管理系統(tǒng)能夠?yàn)楣芾碚咛峁┏渥愕男畔⒑涂旖莸牟樵兪侄?,監(jiān)控功能在整個(gè)系統(tǒng)運(yùn)行中起著核心的作用,是數(shù)據(jù)處理的重要環(huán)節(jié),其建立的友好的人機(jī)交互平臺(tái)可以實(shí)現(xiàn)監(jiān)管中心與底層傳感器和閥門(mén)控制器的通信、數(shù)據(jù)傳輸及監(jiān)控功能。
    遠(yuǎn)程監(jiān)控中心通過(guò)直觀合理的用戶操作界面對(duì)灌溉進(jìn)行可靠控制和管理,具有實(shí)時(shí)觀測(cè)作物生長(zhǎng)情況、土壤水分、土壤溫度、灌水量以及水費(fèi)管理等功能。監(jiān)管中心主要包括收費(fèi)系統(tǒng)、控制系統(tǒng)、查詢系統(tǒng)、用戶管理、智能施肥和參數(shù)設(shè)置模塊,其結(jié)構(gòu)框圖如圖2所示。

    遠(yuǎn)程監(jiān)控中心的主要功能有:(1)水費(fèi)管理,管理人員可根據(jù)系統(tǒng)記錄的精確灌水量來(lái)收取水費(fèi),使水費(fèi)的收取更加合理;(2)智能灌溉,專家系統(tǒng)對(duì)采集到的數(shù)據(jù)信息進(jìn)行分析,得出灌溉時(shí)間和灌水量,達(dá)到精確地對(duì)作物進(jìn)行灌溉的目的;(3)移動(dòng)灌溉,利用GSM的SMS短消息業(yè)務(wù)實(shí)現(xiàn)向用戶發(fā)送灌溉控制信息;同時(shí),用戶可向監(jiān)管中心發(fā)送強(qiáng)制灌溉控制指令和土壤墑情數(shù)據(jù)提取指令,完成對(duì)灌溉的遠(yuǎn)程監(jiān)控[7];(4)監(jiān)控功能,能實(shí)時(shí)顯示底層設(shè)備及閥門(mén)的工作狀態(tài)及接收到的數(shù)據(jù)信息。
4 遠(yuǎn)程監(jiān)控中心的實(shí)現(xiàn)方法
4.1 監(jiān)控中心的軟件設(shè)計(jì)

    此遠(yuǎn)程監(jiān)管中心基于Windows操作系統(tǒng),系統(tǒng)采用B/S 3層結(jié)構(gòu)模式,監(jiān)控軟件采用Java語(yǔ)言來(lái)實(shí)現(xiàn)。Servlet是處理服務(wù)器端編程的一種基于Java的解決方案,使用Servlet API及相關(guān)類和方法的Java程序在Java Web Server上運(yùn)行,Java Web Server提供Servlet API[8]。
    用戶通過(guò)瀏覽器登陸服務(wù)器,向服務(wù)器發(fā)送HTTP請(qǐng)求,將請(qǐng)求分配給相應(yīng)被請(qǐng)求的Servlet,被請(qǐng)求的Servlet通過(guò)JDBC訪問(wèn)Web數(shù)據(jù)庫(kù),將用戶和數(shù)據(jù)間接鏈接,起到保護(hù)數(shù)據(jù)的作用,最后通過(guò)服務(wù)器將結(jié)果送到瀏覽器。實(shí)現(xiàn)客戶端與服務(wù)器通信的關(guān)鍵代碼為:
      URL url=new URL(server URL);
      URL Connection ut=url openConnection();
//輸出流
      DataOutputStream Flush=new DataOutputStream
(ut.getOutputStream());
    Flush writeBytes(querystring);
    Flush flush();
    Flush close();    //接收流
    InputStreamRead inFlush=new InputStreamReader
(ut.getInputStream());
4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)

 


    為了便于日后的數(shù)據(jù)分析處理,灌溉現(xiàn)場(chǎng)采集的信息及水費(fèi)管理信息需存儲(chǔ)到監(jiān)控系統(tǒng)的數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)為系統(tǒng)業(yè)務(wù)提供數(shù)據(jù)支撐。數(shù)據(jù)庫(kù)存儲(chǔ)使數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)化,不僅增加了存儲(chǔ)的效率,還使數(shù)據(jù)查詢更加高效。SQL Server數(shù)據(jù)庫(kù)管理系統(tǒng)可以很好地支持B/S模式,能夠滿足各種類型系統(tǒng)的要求[9]。本系統(tǒng)采用SQL Server 2008數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中建立了如下幾類表:農(nóng)戶信息表、地塊信息表、土壤信息表、水費(fèi)信息表、傳感器數(shù)據(jù)表、氣象信息表、閥門(mén)狀態(tài)信息表、操作歷史信息表等。
    本文設(shè)計(jì)了一套基于Java技術(shù)的智能灌溉監(jiān)管系統(tǒng),該系統(tǒng)可實(shí)現(xiàn)精準(zhǔn)的農(nóng)田灌溉,從而大大改善農(nóng)民大漫灌現(xiàn)象;并采用Java技術(shù),設(shè)計(jì)和實(shí)現(xiàn)了通過(guò)TCP協(xié)議實(shí)時(shí)采集下位機(jī)數(shù)據(jù)的遠(yuǎn)程監(jiān)管中心系統(tǒng),管理員通過(guò)該系統(tǒng)不僅能夠?qū)崟r(shí)監(jiān)控農(nóng)田灌溉,還可更方便地管理用戶的水費(fèi)繳納,使本系統(tǒng)更具有實(shí)用性。當(dāng)然,任何一個(gè)實(shí)用性系統(tǒng)都需要不斷在實(shí)踐中加以檢驗(yàn)、加以完善,該系統(tǒng)還需做模型參數(shù)校正、完善智能施肥模塊等方面的工作,為系統(tǒng)的大面積推廣奠定基礎(chǔ)。
參考文獻(xiàn)
[1] 李吉均,王乃昂,史正濤,等.西北干旱區(qū)農(nóng)業(yè)可持續(xù)發(fā)展問(wèn)題[J].生態(tài)經(jīng)濟(jì),2000(9):38-41.
[2] 王曉芳,朱珊珊.引黃農(nóng)業(yè)灌區(qū)水費(fèi)征收難的原因及對(duì)策分析[J].寧夏農(nóng)林科技,2011,52(5):94-95.
[3] 連翔,張小軍.基于GSM模塊TC35i的機(jī)房溫度測(cè)控系統(tǒng)[J].電子工程師,2008,34(9):65-67.
[4] 胡葭,方勇.基于Java的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)[J].遙測(cè)遙控,2005,26(5):62-65.
[5] 尹小勇.基于Java技術(shù)的B/S模式研究及應(yīng)用[D].南寧: 廣西大學(xué),2002.
[6] 張丹.Java技術(shù)研究與應(yīng)用[D].西安:西安石油學(xué)院,2002.
[7] 李瑞芳,徐曉輝,溫陽(yáng),等.短消息在節(jié)水灌溉中的應(yīng)用[J].農(nóng)機(jī)化研究,2013(8):196-199.
[8] HUNTER J,CRAWFORD W.Java servlet programming[M].O’Reilly﹠Associates,Inc,2001.
[9] 程有娥,錢(qián)冬云.SQL Server 2000數(shù)據(jù)庫(kù)管理系統(tǒng)[M].上海:華東師范大學(xué)出版社,2007.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。