摘 要: 针对我国目前农村水费计收存在的不合理性,以及农田灌溉中的大漫灌浪费水资源问题,介绍了一种农田节水灌溉监控系统的实现技术,描述了系统的结构、监控中心的功能和实现方法;并应用Java技术设计了一套远程监控中心系统软件,该设计方案应用Java面向对象的技术,可方便地跨平台应用,具有较高的可扩展性。实践表明:该系统使用方便,并且能够满足各项性能指标要求,显示了Java技术在灌溉监控系统中广阔的应用前景。
关键词: Java技术;数据库;节水灌溉;监控系统
节水农业是我国今后农业发展的方向,对缓解我国农业干旱缺水,实现农业和整个国家经济的可持续发展具有重要的意义和深远的影响。尤其对西北干旱区来说,更是一个难得的机遇[1]。黄河下游引黄灌区水费收缴普遍采用按灌溉面积或农业人口分摊收费的方法,这也是目前我国农业水费计收普遍采用的办法[2]。所以,在灌溉期节不节水跟农民的利益没多大关系,农民仍然习惯于大水漫灌淌“大锅水”,进而造成田间灌水量大,水资源浪费非常严重。为此,本文设计了一套闭环控制的节水灌溉监控系统,将数据采集技术、无线传感器网络技术、GPRS通信技术、灌溉控制技术及短消息通信相结合,实现一种按需调节用水量的低功耗、低成本、传输可靠、管理方便的灌溉模式。
目前许多节水灌溉系统的管理为巡视方式,管理人员不能在第一时间了解田间土壤湿度状况和系统中元器件的工作状态[3]。为了实现对田间墒情和系统工作状态的实时监控,设计了基于Java技术的远程监控中心软件,不仅可以实现对灌溉以及器件状态的实时监控,使用户可以在监控室通过监控系统对田间的灌溉进行控制;还嵌入了收费管理系统,通过对用水量的精确记录实现水费计收的合理管理。
1 Java技术的优势
对于网络监控系统所要求的实时、准确和无漏控等指标,B/S三层体系结构是最佳解决方案[4],目前B/S模式的技术支持主要有最早的CGI技术、微软的ASP技术和Sun公司的Java技术,但不是所有的方案都适合监控系统的设计。
CGI虽然有其通用性的优点,但也有其自身的缺点,如运行慢、开销大且降低系统性能;Web服务器不能用数据库级特权来控制存取权限,对用户的访问权限难以控制[5]。微软的ASP技术虽然可以产生和运行动态的、交互的Web服务应用程序,但依附微软的NT平台受UNIX或LINUX而受到限制。
Sun的Java技术主要通过JSP/Servlet来实现,JSP除了继承ASP的优点外,有其自身的特点,如:JSP的效率和安全性更高、组件方式更方便、标签可扩充、适应平台更广,基于Java具有的平台无关性、可移植性、面向对象、多线程、安全等特点[6],本设计选择了Java技术作为B/S模式的支撑技术。
2 节水灌溉监控系统的构成
节水灌溉监控系统由底层传感器、传输基站、远程监控中心、阀门控制器以及移动终端组成。底层传感器包括温度传感器、水分传感器以及流量传感器,通过ZigBee无线通信将采集到的数据发送到传输基站进行数据处理,处理后的数据经GPRS无线通信发送到远程监控中心,并对接收到的数据结合气象信息进行分析,与专家决策系统信息按照一定算法(模糊控制)得出决策信息,来控制电磁阀的开关,以完成监控;同时,用户还可通过短消息通信向监控系统发送灌溉控制信息和系统主要器件的故障提示信息[7],也可直接控制阀门的开启或关闭,该系统结构设计如图1所示。
3 远程监控中心的设计
根据上述的需求分析,设计了既有水费管理功能又有灌溉监控功能的监控中心软件。水费管理系统能够为管理者提供充足的信息和快捷的查询手段,监控功能在整个系统运行中起着核心的作用,是数据处理的重要环节,其建立的友好的人机交互平台可以实现监管中心与底层传感器和阀门控制器的通信、数据传输及监控功能。
远程监控中心通过直观合理的用户操作界面对灌溉进行可靠控制和管理,具有实时观测作物生长情况、土壤水分、土壤温度、灌水量以及水费管理等功能。监管中心主要包括收费系统、控制系统、查询系统、用户管理、智能施肥和参数设置模块,其结构框图如图2所示。
远程监控中心的主要功能有:(1)水费管理,管理人员可根据系统记录的精确灌水量来收取水费,使水费的收取更加合理;(2)智能灌溉,专家系统对采集到的数据信息进行分析,得出灌溉时间和灌水量,达到精确地对作物进行灌溉的目的;(3)移动灌溉,利用GSM的SMS短消息业务实现向用户发送灌溉控制信息;同时,用户可向监管中心发送强制灌溉控制指令和土壤墒情数据提取指令,完成对灌溉的远程监控[7];(4)监控功能,能实时显示底层设备及阀门的工作状态及接收到的数据信息。
4 远程监控中心的实现方法
4.1 监控中心的软件设计
此远程监管中心基于Windows操作系统,系统采用B/S 3层结构模式,监控软件采用Java语言来实现。Servlet是处理服务器端编程的一种基于Java的解决方案,使用Servlet API及相关类和方法的Java程序在Java Web Server上运行,Java Web Server提供Servlet API[8]。
用户通过浏览器登陆服务器,向服务器发送HTTP请求,将请求分配给相应被请求的Servlet,被请求的Servlet通过JDBC访问Web数据库,将用户和数据间接链接,起到保护数据的作用,最后通过服务器将结果送到浏览器。实现客户端与服务器通信的关键代码为:
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 数据库设计
为了便于日后的数据分析处理,灌溉现场采集的信息及水费管理信息需存储到监控系统的数据库中,数据库为系统业务提供数据支撑。数据库存储使数据的存储结构化,不仅增加了存储的效率,还使数据查询更加高效。SQL Server数据库管理系统可以很好地支持B/S模式,能够满足各种类型系统的要求[9]。本系统采用SQL Server 2008数据库,数据库中建立了如下几类表:农户信息表、地块信息表、土壤信息表、水费信息表、传感器数据表、气象信息表、阀门状态信息表、操作历史信息表等。
本文设计了一套基于Java技术的智能灌溉监管系统,该系统可实现精准的农田灌溉,从而大大改善农民大漫灌现象;并采用Java技术,设计和实现了通过TCP协议实时采集下位机数据的远程监管中心系统,管理员通过该系统不仅能够实时监控农田灌溉,还可更方便地管理用户的水费缴纳,使本系统更具有实用性。当然,任何一个实用性系统都需要不断在实践中加以检验、加以完善,该系统还需做模型参数校正、完善智能施肥模块等方面的工作,为系统的大面积推广奠定基础。
参考文献
[1] 李吉均,王乃昂,史正涛,等.西北干旱区农业可持续发展问题[J].生态经济,2000(9):38-41.
[2] 王晓芳,朱珊珊.引黄农业灌区水费征收难的原因及对策分析[J].宁夏农林科技,2011,52(5):94-95.
[3] 连翔,张小军.基于GSM模块TC35i的机房温度测控系统[J].电子工程师,2008,34(9):65-67.
[4] 胡葭,方勇.基于Java的嵌入式远程监控系统[J].遥测遥控,2005,26(5):62-65.
[5] 尹小勇.基于Java技术的B/S模式研究及应用[D].南宁: 广西大学,2002.
[6] 张丹.Java技术研究与应用[D].西安:西安石油学院,2002.
[7] 李瑞芳,徐晓辉,温阳,等.短消息在节水灌溉中的应用[J].农机化研究,2013(8):196-199.
[8] HUNTER J,CRAWFORD W.Java servlet programming[M].O’Reilly﹠Associates,Inc,2001.
[9] 程有娥,钱冬云.SQL Server 2000数据库管理系统[M].上海:华东师范大学出版社,2007.