基于ASP.NET技术的荔枝园智能灌溉远程监控系统的设计与实现
2016-10-27余国雄王卫星谢家兴陆华忠林进彬莫昊凡
余国雄,王卫星,4,5*,谢家兴,4,5,陆华忠,林进彬,莫昊凡
(1. 华南农业大学电子工程学院,广东 广州 510642;2. 广州市农情信息获取与应用重点实验室,广东 广州 510642;3. 华南农业大学工程学院,广东 广州 510642;4. 广东省农情信息监测工程技术研究中心,广东 广州 510642;5. 华南农业大学南方农业机械与装备关键技术省部共建教育部重点实验室,广东 广州 510642)
基于ASP.NET技术的荔枝园智能灌溉远程监控系统的设计与实现
余国雄1,2,王卫星1,2,4,5*,谢家兴1,2,4,5,陆华忠3,5,林进彬1,莫昊凡1
(1. 华南农业大学电子工程学院,广东广州510642;2. 广州市农情信息获取与应用重点实验室,广东广州510642;3. 华南农业大学工程学院,广东广州510642;4. 广东省农情信息监测工程技术研究中心,广东广州510642;5. 华南农业大学南方农业机械与装备关键技术省部共建教育部重点实验室,广东广州510642)
为了实现荔枝园环境的远程监控和智能化管理,设计了基于ASP.NET技术的荔枝园智能灌溉远程监控系统,包括终端监控设备、网关和网络监控系统。终端监控设备定时采集荔枝园的温度、湿度和土壤含水率等环境信息,通过Zigbee无线通信技术传输到网关,网关通过互联网将环境数据传输到网络监控系统,网络监控系统基于B/S模式,运用ASP.NET技术,实时显示荔枝园环境参数以及做出智能灌溉决策。用户可以通过系统实时掌握荔枝园的土壤环境信息、各个节点剩余能量、控制灌溉状况和学习荔枝种植知识。试验表明,系统在荔枝园中的平均丢包率仅为3.87%,通信效果良好;当环境信息超出正常范围时,系统会向果农发出预警信号;通过智能灌溉方法,使得灌溉区域土壤含水率平均值为17.85%,高于荔枝生长的最佳土壤含水率的下限,满足荔枝生长的要求。系统运行稳定,界面友好,操作简单,能够实现远程实时监控荔枝园环境并及时做出智能灌溉决策。
灌溉;ASP.NET技术;监控系统;远程;智能;荔枝园
从20世纪80年代末至今,我国的荔枝种植面积和总产量都大大增加,荔枝栽培面积由1987年的12.75万hm2,增加到2012年的55.33万hm2;荔枝总产量由1987年的11.68万t,增加到2012年的190.66万t[1-2]。但是目前绝大多数荔枝园仍然采用传统的人工管理方式,灌溉方式也采用传统的灌溉方式,如漫灌等,由此浪费了大量的水资源[3]。现代精细农业要求管理者通过实时掌握农作物信息的方式准确地监控农作物的生长环境[4]。远程监控技术的快速发展使得管理者可以随时随地地远程监测和控制农作物的生长环境[5],而基于ASP.NET技术的荔枝园智能灌溉远程监控系统将荔枝园环境监测、智能灌溉与互联网连接,实现了对荔枝园环境的远程实时监控,使得果农能远程掌握荔枝园的实时环境信息并及时作出灌溉决策。
1 系统开发需求和主要技术分析
1.1系统开发需求分析
为了提高水资源利用率,增加荔枝产量,果农需要时刻关注荔枝园的环境状况和荔枝树的生长状况,并及时作出相应措施,而开发基于ASP.NET技术的荔枝园智能灌溉远程监控系统,不仅可以帮助果农实时获取荔枝园的多种环境信息,还可以做出智能灌溉决策,节约水资源,帮助果农科学地对荔枝园进行生产管理。
1.2系统主要技术分析
远程监控系统的开发主要运用了Zigbee无线通讯技术、ASP.NET技术、AJAX技术和ADO.NET技术,并结合B/S模式和选择C#作为编程语言。
1.2.1系统动态网页开发技术系统需要使用动态网页开发技术,常用的动态网页开发技术有PHP(Hypertext Preprocessor)、ASP(Active Server Pages)和JSP(Java Server Pages)。由于JSP是一种较新的技术,目前国内应用得比较少,而PHP缺乏规模支持和多层结构支持,使得它更适合应用于小型网站,而ASP则简单易懂,可快速完成网站的开发。但ASP技术存在着程序可重用性差等缺点[6-7]。ASP.NET技术是ASP的拓展和延伸,克服了ASP具有的缺点,通过文件形式把界面开发和后台开发隔离开,支持多种编程语言,使得系统的开发周期大大缩短,并且ASP.NET技术具有的隐秘安全性高和易于操控数据库等特性,较好地满足了系统的高安全保密性和频繁操作数据库的功能需求,因而系统选择ASP.NET技术进行开发。
1.2.2AJAX技术为了让用户有更好的体验感觉,系统选择使用AJAX(Asynchronous JavaScript and XML)技术[8]:AJAX技术的特点是利用局部刷新技术更新页面而不是更新整个页面,这样才能更快地操作数据,导致用户的体验感觉良好。
1.2.3网络结构模式选型网络结构模式有B/S(Brower/Server)模式,即浏览器/服务器模式和C/S(Client/Server)模式,即客户端/服务器模式[9-10]。C/S模式要求用户在电脑上安装相关的应用程序,而在B/S模式下用户只要通过浏览器就可以访问系统,进行相关操作。因而,系统采用B/S模式可以大大减轻客户端的负担和降低服务器端的维护成本。
1.2.4选择编程语言常用编程语言有VB(Visual Basic)、C、C++和C#等。由于VB语法很随便和运行效率低,而C#已经成功解决了很多C和C++的编程错误[11],并且安全度高、容易掌握和稳定性良好,并且C#可以基于.NET架构进行开发,使得系统的开发和维护变得简单快速。
1.2.5选择数据库访问技术常用的数据库访问技术有ODBC(Open Database Connectivity)、DAO(Data Access Object)和ADO (ActiveX Data Objects)[12-13]。由于系统需要频繁地访问数据库,如执行插入、删除和更新等数据库操作,而使用ODBC访问数据库的速度比使用DAO或者ADO的要低,效率不高,但DAO会导致较多的兼容性问题,所以系统使用ADO非常方便灵活地访问和操作数据库。
2 系统设计
2.1总体架构
基于ASP.NET技术的荔枝园智能灌溉远程监控系统主要由终端监控设备、网关和网络监控系统3个部分组成,其监控系统的总体架构见图1。
2.1.1终端监控设备终端监控设备包括众多传感器节点和电磁阀节点。系统启动后,各个传感器节点和电磁阀节点自动搜索并加入由网关组建的Zigbee自组网中[14],各个传感器节点定时自动地采集荔枝园的温度、湿度和土壤含水率等实时环境信息,通过Zigbee无线通讯技术将数据包发送到网关上。电磁阀节点通过Zigbee无线通讯技术接收并解析来自网关的命令数据包后,控制电磁阀开启或关闭。
2.1.2网关网关是整个监控系统的协议转换设备,一方面,网关通过Zigbee无线通讯技术接收传感器节点数据包,分析、压缩和融合数据后,通过互联网将数据发送到网络监控系统,另一方面,网关通过互联网接收并解析来自网络监控系统的命令后,通过Zigbee无线通讯技术将命令数据包传输给电磁阀节点,进而控制电磁阀开启或关闭,其工作流程如图2所示。因而,网关实现了无线传感网-互联网协议的转换。
2.1.3网络监控系统网络监控系统是整个荔枝园智能灌溉远程监控系统的核心,网络监控系统通过图表的形式让果农直接掌握荔枝园的实时环境信息数据,方便果农对荔枝园环境进行实时监测并及时作出灌溉决策。
2.1.4网络监控系统设计基于ASP.NET技术的荔枝园智能灌溉远程监控系统的网络监控系统设计包括6个模块,分别为:服务器模块、登录模块、实时监控模块、历史数据操作模块、荔枝专业知识模块和系统管理模块。根据各个模块的具体情况,又分为荔枝园当前信息显示与报警、设置上下限及控制电磁阀、荔枝园历史数据查看和绘制荔枝园历史状态波形图等局部功能。具体设计框图如图3所示。
2.1.5数据库设计与实现本文选择SQL Server 2008作为数据库,在数据库管理系统中建立荔枝园的数据库MyData,在该数据库里分别建立了表Information、Warning、User,其中表Information中包含了荔枝园环境的主要信息,如温度、湿度和土壤含水率等,具体设计见表1。
表1 荔枝园环境信息
表Warning中包含了荔枝园主要环境信息的上下限,以节点号作为标识,将接收到的数据与表中的数据逐项进行比较,根据结果做出是否需要报警的决定,具体设计见表2。
表2荔枝园环境信息上下限
Table 2Upper and lower limits on control conditions forlitchi orchard
表User中包含了网络监控系统的用户信息,以用户名作为标识,将用户登录信息与表中的用户信息进行比较,用以判断是否允许该用户登录,具体设计见表3。
表3 用户信息
3 系统设计网络监控系统功能模块实现
3.1服务器模块
服务器模块不断监听是否有来自网关的连接请求,如果接收到网关的连接请求,就和网关建立起基于TCP/IP协议的连接,并创建一个Socket对象来存储网关相关信息,如网关的IP地址和端口号。由于系统对实时性要求比较高,因此服务器模块和网关间的通信采用C/S(Client/Server)模式。
3.1.1数据通信协议服务器模块和网关间的数据通信是整个系统的数据交互核心,为了保证系统能正常运行,必须规定服务器模块和网关间的数据通信协议,服务器模块和网关间的通信数据包主要有荔枝园实时环境信息数据包、监控系统决策结果命令包和数据包重发命令包等,每个数据包或者命令包均包含包头、标志位、数据位和包尾等,例如,如荔枝园实时环境信息数据包的数据格式如图4所示,其中,包头起到数据包从该处开始的作用,包尾起到数据包在此处结束的作用。
3.1.2数据交互方式由于服务器模块和网关间的数据通信协议是确定的,即已经协商好数据的解析方式,所以服务器模块通过字符流形式和网关进行数据交互,并将荔枝园实时环境信息、各节点剩余电量等数据保存到数据库的对应表格中,供网站部分调用。网站进行智能决策后,将决策结果存储到数据库的对应表格中,服务器读取该表格中的决策结果后,将命令数据包发送给网关。服务器模块和网关间的数据交互方式如图5所示。
3.2用户登录模块
由于涉及系统安全性,所以只有管理员才能注册账号,普通用户从管理员处得到账号后,输入正确的用户名和密码即可通过验证进入该网络监控系统。
此模块中使用了验证码,使用了C#里的rand.Next方法从数字0到9,字母A到Z里随机选取4位组成验证码字符串。
3.3实时监控模块
实时监控模块包括实时数据预警和荔枝园当前信息显示两部分。
3.3.1智能灌溉决策用户通过智能灌溉决策界面设定荔枝的品种、荔枝树所处生长周期等。系统会根据用户所选荔枝品种和荔枝树所处的生长周期,智能地从数据库里读取与用户所选条件匹配的荔枝品种的土壤含水率上下限,作为其智能灌溉决策的依据。当监测到荔枝园的实时土壤含水率高于上限时,系统自动控制电磁阀关闭,当实时土壤含水率低于下限时,系统自动控制电磁阀开启,当实时土壤含水率处于上限和下限之间时,电磁阀状态维持不变。
用户还可以通过智能灌溉决策界面设定温度、湿度等荔枝园主要环境信息的上下限。当温度、湿度等主要环境信息的状态显示为“超过上限”时,就表示该信息的当前值高于设定的上限;反之某个环境信息的状态显示为“低于下限”时,就表示当前值低于设定的下限,只有当某个环境信息的状态显示“正常”时,该环境信息才在正常范围内。果农就可以通过该界面直接掌握荔枝园的各个环境信息是否在正常范围内和判断是否做出急救措施(如是否喷水等)。
3.3.2荔枝园当前信息显示荔枝园当前信息显示界面主要显示荔枝园主要环境信息的当前数据与电磁阀状态。例如,要实现显示荔枝园的实时温度、湿度、光照度和土壤含水率、节点电压和电磁阀状态,网络监控系统先通过ADO.NET连接对应的数据库,然后通过数据表Information,把需要显示的数据绑定到网页的数据显示控件上。
该界面利用的数据显示控件是ASP.NET的GridView控件,该控件需要将表Information设定为GridView的数据源;当前信息显示界面采用一起使用AJAX Library提供的ScriptManager和UpdatePanel控件的方法,实现了异步局部更新页面中数据显示部分的效果,此方法对提高页面的更新速度至关重要。
3.4历史数据查询模块
历史数据查询模块包括荔枝园历史数据查看和绘制荔枝园历史状态波形图两部分。
3.4.1荔枝园历史数据查看用户可以通过选择传感器节点号和时间段对荔枝园的历史数据进行查看,也可以导出数据到Excel表或者Word文档里,如图6所示。
3.4.2绘制荔枝园历史状态波形图用户可以通过选择节点号、时间段、波形图类型(如折线图、平滑线图等)和荔枝园的某个环境信息,绘制荔枝园历史状态波形图,帮助用户预测荔枝园中主要环境信息的变化状况。其中,绘制波形图采用了微软的OWC11。OWC是一组具有电子表格、图表、数据透视表等功能的COM控件的集合。服务器可以通过OWC动态地创建一个图表,接着通过GIF图形的形式将该图表传输给客户端。客户端能看到的只是一般的图形文件。如图7所示,该坐标图为节点1,在2015年8月11日0时27分10秒到2015年8月11日19时30分30秒的时间段内,所采集的温度值和时间点的对应关系折线图,其中横坐标为多个时间点,纵坐标为时间点对应的空气温度。
3.5荔枝种植知识模块
此模块中,用户可以查看关于荔枝种植的专业知识,例如不同时期不同荔枝品种在用药、施肥以及灌溉上需要注意的事项和荔枝病虫害知识,即不同时期不同荔枝会遇到的病虫害,对荔枝产生的影响,需要施用的药物以及对荔枝产生的影响等,有利于提高果园的生产管理效率。
3.6后台管理模块
后台管理模块包括数据编辑、注册用户和修改用户密码3个部分。
只有管理员才能登陆此模块,进行数据编辑(数据删除和修改等)、注册用户和修改密码。
其中数据删除使用的SQL语句为:DELETE FROM 数据表 WHERE 节点号=所选节点号 AND 时间=所选时间。
4 系统试验
从2015年8月24号至9月7号,基于ASP.NET技术的荔枝园智能灌溉远程监控系统在阳江市阳西县新圩镇的龙翔果场荔枝园里进行试验。
4.1系统丢包率测试
系统通信的稳定性是系统正常运行的重要部分,在试验时间的15 d内,传感器节点每隔30 min采集1次数据,测试结果如表4所示,其中,每个节点的丢包率的计算如式(1)所示。
(1)
其中,S为节点发送数据包总数,R为网关接收到的数据包总数,由表4可得,单个节点最低丢包率为2.63%,最高丢包率为4.03%,因此,所有节点丢包率都比较低,满足系统通信的基本要求。
整个网络的平均丢包率的计算如式(2)所示。
(2)
其中,分子部分为各个节点丢包总数,分母部分为各个节点发送数据包总数。试验中,系统具有9个节点,故p取为1,m取为9。由式(2)得,整个系统的平均丢包率仅为3.41%,说明该系统网络传输稳定可靠。
表4 网络丢包率统计
4.2系统实时监测功能测试
试验期间,用户可以通过该系统实时地获知荔枝园环境信息,当环境信息超出范围时,系统发出预警信号,果农能及时作出相应对策。其中,实时监测界面如图8所示。
4.3系统智能灌溉性能测试
在荔枝园里的2个区域进行系统智能灌溉性能测试,其中1个区域(A区)部署1个传感器和电磁阀节点,传感器节点每隔30 min监测1次土壤含水率,当土壤含水率高于荔枝树的最佳生长土壤含水率上限19.14%时,电磁阀节点则关闭电磁阀,当土壤含水率低于15.55%时[15],电磁阀节点则开启电磁阀,当土壤含水率在15.55%~19.14%时,电磁阀节点不改变电磁阀工作状态。另一个区域(B区)部署一个传感器节点,用来监测该区域的土壤含水率,但B区不灌溉。2015年8月24号至9月7号土壤含水率变化曲线如图9所示。
由图9的测试结果表明,在试验期内,A区通过智能灌溉方法,使得该区的土壤含水率平均值为17.85%,均高于荔枝生长的最佳土壤含水率的下限,即15.55%,达到预期灌溉效果,并且高于不灌溉的B区的土壤含水率平均值7.75%。A区每次灌溉时,其土壤含水率均会迅速上升,然后缓慢下降,说明系统实时性强,反应速度快,较好地满足荔枝生长的需要。
5 讨论与结论
荔枝园智能灌溉远程监控系统中网络监控部分使用了AJAX技术实现页面局部刷新,减轻了服务器的工作量,大大提高了系统的速度;网络监控部分采用服务器和网站分离模式,充分利用了C/S结构和B/S结构各自的优点,提高了系统的稳定性和可拓展性;将传统的无线传感器网络与互联网相结合,采用远程方式实现对荔枝园环境进行监测和智能灌溉,提高了荔枝园的管理水平。
在荔枝园中进行系统丢包率测试,试验表明,系统的平均丢包率仅为3.87%,通信效果良好。系统实时监测功能的测试表明,当环境信息超出正常范围时,系统会向果农发出预警信号,让果农及时作出对策。系统智能灌溉性能的测试表明,每次灌溉时,其土壤含水率均会迅速上升,说明系统实时性强,反应速度快;通过智能灌溉方法,使得灌溉区域土壤含水率平均值为17.85%,高于荔枝生长的最佳土壤含水率的下限,满足荔枝生长的要求。
该系统性能稳定,实时性强,操作灵活简单,界面友善,很大程度节约了人力物力和时间,为荔枝树的生长和提高荔枝产量提供大量的数据来源,在荔枝园智能生产管理方面有着非常大的应用价值。
远程监控系统的下一步研究方向是:深入研究空气温度、湿度和土壤含水率等因素对系统灌溉决策模型准确性的影响。
[1]刘洋,周灿芳,万忠,等.2008年度广东省荔枝龙眼产业发展现状分析[J].广东农业科学,2009,(2):110-112.
[2]庞新华,张继,张宇.我国荔枝产业的研究进展及对策[J].农业研究与应用,2014,(4):58-61.
[3]贾文君,万景刚,徐冰,等.根际交替灌溉技术在荔枝上的应用效果研究[J].福建农业学报,2013,28(2):129-133.
[4]齐文娥.2013年我国荔枝市场形势特征及其影响因素分析[J].中国热带农业,2014,(2):33-36.
[5]王建新,杨世风,史永江,等.远程监控技术的发展现状和趋势[J].国外电子测量技术,2005,(4):9-12.
[6]明日科技.ASP.NET从入门到静态:第3 版[M].北京:清华大学出版社,2012.
[7]熊一君,唐斌,刘海欧.基于ASP.NET与ArcServer的水资源GIS研究设计[J].四川环境,2009,(4):131-135.
[8]RYAN ASLEXON, NATHANIEL T SCHUTA. Foundation of Ajax [M].Appress,2005.
[9]吴丽娜,卢会国,牛永红,等.基于Web的智能农业大棚监控系统的设计[J].气象水文海洋仪器,2014,(4):75-77.
[10]于少波,李新明,刘东.基于B/S和MVC模式的武器装备体系评估系统设计[J].太赫兹科学与电子信息学报,2015,(4):635-640.
[11]KARLI WATSON, CHARISTIAN NAGEL.C#入门经典:第3版[M].北京:清华大学出版社,2008.
[12]胡超,闫玉宝.SQL Server 2008从入门到精通:第2版[M].北京:化学工业出版社,2011.
[13]谢家兴,王卫星,陆华忠,等.基于CC2530的荔枝园智能灌溉系统设计[J].灌溉排水学报,2014,33(4-5):189-194.
[14]李昕,常革新,崔杰.基于ADO.NET的ASP.NET页面程序[J].辽宁工程技术大学学报,2006,25(2):250-252.
[15]邹战强, 蓝莎. 荔枝需水量和灌溉制度试验研究[J]. 节水灌溉,1999,(3):8-9.
(责任编辑:黄爱萍)
ASP.NET-based Design and Implementation of Remote Monitoring and Control System for Litchi Orchard Irrigation
YU Guo-xiong1,2, WANG Wei-xing1,2,4,5*, XIE Jia-xing1,2,4,5, LU Hua-zhong3,5, LIN Jin-bin1, MO Hao-fan1
(1.CollegeofElectronicEngineering,SouthChinaAgriculturalUniversity,Guangzhou,Guangdong510642,China; 2.KeyLaboratoryofInformationAcquisitionandApplicationinAgriculture,GuangzhouScienceTechnologyandInnovationCommission,Guangzhou,Guangdong510642,China; 3.CollegeofEngineering,SouthChinaAgriculturalUniversity,Guangzhou,Guangdong510642,China; 4.GuangdongEngineeringResearchCenterforMonitoringAgriculturalInformation,Guangzhou,Guangdong510642,China; 5.KeyLaboratoryofKeyTechnologyonAgriculturalMachineandEquipment,MinistryofEducation,SouthChinaAgriculturalUniversity,Guangzhou,Guangdong510642,China)
Forremotemonitoringandintelligentmanagingtheirrigationatlitchiorchards,acomputerizedsystembasedonASP.NETtechnologywasdesignedandtestedforimplementation.Thesystemconsistedofsensingterminals,computergateway,andnetworking.Thesensingdevicescollecteddataonambienttemperatureandhumidity,moisturecontentinsoil,andotherrelevantinformationattheorchard,transmittedthemthroughthegatewayusingZigbeewirelesscommunicationtechnology,andreachedthenetworkviaInternetfordataanalysisandworkorderexecution.OnaB/Smode,theASP.NET-basedsystemdisplayedrealtimemeasurementsandmadedecisionforacontrolledirrigationattheorchard.Beinguser-friendly,thecontrolsystemcouldbeeasilymasteredwithtraining.Allinformationonthesoil,environment,residualenergyateverynode,aswellaslitchicultivationwasinstantaneouslyavailableonthecomputer.Testrunsonthesystemshowedanaveragepacketlossrateatmerely3.87%withaccurateandeffectivecommunication.Wheneveramonitoringdatumwasoutofitscontrolrange,awarningsignalwouldbesent.Theintelligentirrigationmanagementbythissystemallowedtheaveragemoistureinthesoilattheorchardmaintainat17.85%,whichwasslightlyabovetheminimumrequiredforaproperplantgrowth.Thus,thisnewlyestablishedsystemappearedtobereliable,stable,user-friendly,water-conserving,andeasytooperatewithitsremote,real-timemonitoring,precisecontrol,andintelligentdecision-makingfunctionsfortheorchardirrigation.
irrigation;ASP.NETtechnology;monitoringsystem;remote;intelligent;litchiorchard
2016-02-22初稿; 2016-05-17修改稿
余国雄(1990-),男,硕士生,主要从事无线传感器网络和电子信息技术在农业上的应用研究(E-mail: 15989153268@163.com)
王卫星(1963-),男,教授,博士,博士生导师,主要从事无线传感器网络、电子信息技术在农业上应用的研究(E-mail: weixing@scau.edu.cn )
国家荔枝龙眼产业技术体系建设专项(CARS-33-13);国家级星火计划项目(2013GA780046);华南农业大学大学生创新创业训练计划项目(201510564214)
TP 311.52
A
1008-0384(2016)07-770-07
余国雄,王卫星,谢家兴,等.基于ASP.NET技术的荔枝园智能灌溉远程监控系统的设计与实现[J].福建农业学报,2016,31(7):770-776.
YU G-X,WANG W-X,XIE J-X,et al.ASP.NET-based Design and Implementation of Remote Monitoring and Control System for Litchi Orchard Irrigation[J].FujianJournalofAgriculturalSciences,2016,31(7):770-776.