韩国鑫 谭峰 马志欣
摘要:为了提高我国水稻田间管理与决策的工作水平与效率,保障我国水稻生产安全,基于Android应用平台研究了一款水稻田间管理远程辅助决策系统。利用Socket通信技术实现了手机终端与云服务器的无缝对接,云平台利用无线通信模块实时获取农业现场传感器采集的信息,通过自定义的通信协议与移动终端进行通信,实现了田间农情信息的实时查看与农田管理的辅助决策,并在黑龙江省杜尔伯特蒙古族自治县农业示范区进行了应用试验,结果表明,该系统能够有效提高水稻田间管理者调查与指导的工作效率,加强农业技术人员的决策能力,对提高农业信息化水平具有重要意义。
关键词:Android系统;田间管理;辅助决策;云平台
中图分类号: S126 文献标志码: A 文章编号:1002-1302(2019)02-0221-05
水稻是我国主要粮食作物之一,确保水稻生产质量是保障我国粮食安全的关键环节。在水稻种植和生产过程中,田间管理是极其重要的工作,如田间作业、病虫害预防以及生长环境监测等各个环节都会对水稻产量与质量产生重要影响。因此,加强水稻生长的田间管理具有十分重要的意义[1-2]。目前,我国农民对田间管理工作技术标准了解不足,农业技术人员对田间管理工作调查不充分,导致我国水稻田间管理工作模式落后、粗放,为农业生产埋下隐患[3]。随着农业信息化的快速发展,针对移动终端的水稻田间管理决策系统已有研究,但这些平台大多应用于Windows系统,不但价格高昂、功能局限、人机交互性能较差,且不具备开源免费的开发环境[4-6]。因此,针对农业工作者设计一种界面友好简单、人机交互性强的水稻田间管理辅助决策系统,对于我国传统水稻田间管理模式的革新以及农业新科技向农业生产一线普及有着十分重要的意义[7-8]。
本研究基于Android应用平台研究了一种水稻生长田间管理远程决策辅助系统的设计方法,构建了开源免费的开发环境[9-10]。该系统利用Socket通信技术实现了Android智能移动终端与云服务器的数据上传与下载,实现了农业技术人员在田间管理工作中对作物生长信息、田间环境信息、水稻病虫草害监测信息的远程获取与上报;实现了农业管理者对于水稻生长环境信息的远程监测以及对农业生产与田间管理的远程指导,提高了水稻田间管理的工作效率。
1 系统组成与功能设计
整体系统主要由作物生长信息采集设备、云服务器以及Android智能移动终端设备3个部分组成。首先由作物生长信息采集设备通过3G/4G工业无线路由器将水稻田间生长的农业数据信息上传至云服务器,再由Android智能移动终端设备通过Socket通信的方式访问云服务器从而获取作物生长状况与实时环境信息,进而辅助农业技术人员及时作出决策。笔者介绍主要内容是系统客户端的设计,系统客户端采用Android平台研发,主要分为田间农业信息采集和辅助决策这两大功能模块,农业田间信息采集部分包括田间环境信息采集、作物长势图像采集、水稻病虫草害分类查询以及灾害情况上报等功能;辅助决策部分主要包括水稻长势与环境信息的远程查看、受灾情况查看以及基于地理位置的水稻田间生长管理信息综合查看。系统总体设计见图1。
1.1 客户端总体功能设计
为了提高农业技术人员的田间管理水平,辅助农场领导与农业专家对田间情况进行决策,系统客户端設计了农业信息采集以及田间管理辅助决策系统2个子系统,每个子系统分别含有一级、二级功能模块。系统整体功能模块的构建见图2。
1.2 农业信息采集系统功能设计
该子系统主要针对农业技术人员进行设计,根据水稻田间管理业务分析与研究将该部分系统划分为四大功能模块,分别为田间信息采集、水稻病虫草害信息浏览、灾害上报、辅助功能,每个功能模块还细分为若干子模块。
1.2.1 田间信息采集部分功能设计 田间信息采集模块是农业信息采集系统的重要组成部分,其中包含水稻长势与生长环境的监测、图像显示与历史、田间作业与历史3个部分,农业技术人员能够利用该模块的功能完成对所负责区域调查记录的存储与上传工作。
1.2.1.1 水稻长势与生长环境的监测 在水稻田间管理工作当中,及时获取水稻生长信息从而快速作出正确决策对于保障水稻的生产安全具有重要的意义。农技人员通过水稻生长监测功能,能够实时获取与水稻生长环境相关的数据,包括水稻长势监测、气象信息监测、水位高度监测、渠流量监测、田间环境监测、水肥药一体微喷监测等6类信息。其中长势监测包括水稻株高、出叶、分蘖以及叶绿素含量;气象监测数据包括风向、风速、空气与土壤温湿度、降水量与蒸发量等;流量监测数据包括微喷、晒水池出入水和各格田出入水流量的瞬时与累计值;田间环境监测包括各田块的水位、温度、作物生长阶段、田间进出水阀门状态等;水肥药一体化微喷包括各喷灌开闭状况、喷药与施肥微喷阀门状态;水位高度监测包括渠水位和蓄水池水位高度。水稻生长监测模块见图3。
1.2.1.2 图像显示与历史 图像显示部分能够呈现当前环境下水稻病菌的孢子图像、捕虫灯图像以及水稻长势图像,农技人员可以通过孢子图像反映的细菌种类、捕虫灯显示的害虫种类与数量以及作物长势图像,从而对作物病虫害进行预判,并及时采取防治措施。
1.2.1.3 田间作业与历史 为了确保水稻田间管理工作的有序进行,保障粮食生产安全,设计了田间作业信息获取与历史查询模块,其中包括对各格田灌溉时间与次数的统计、施肥量与用药量的统计,农技人员可以通过该模块对作业的类型及详情、时间地点等数据进行记录,在填报数据的同时现场拍摄照片,填写完毕后保存并上传数据至云平台,上传后的数据历史可以随时供用户查询。
1.2.2 水稻病虫草害信息浏览 水稻病虫草害信息浏览模块可以实现水稻病虫草害信息的分类查看,其内容包含各类灾害的发病症状、发病原因、防治与传播方式等,能够迅速帮助农技人员针对当前水稻发生灾害的特点进行正确诊断,也可以针对灾害种类进行快捷查询,有效预防灾害的发生或进一步恶化,提高了农技人员对于灾害调查与上报的工作效率。
1.2.3 灾害上报与历史查询 农技人员可以通过该功能模块快速上报灾害情况,其功能包括对受灾地区的时间、地点以及受灾面积的登记,并对当前地区灾害的基本信息以及具体情况进行录入,在填报数据的同时现场拍摄照片,记录完毕后点击上报上传数据至云平台,以便农业管理者快速作出决策。
1.2.4 辅助功能 辅助功能模块主要针对水稻品种、田间作业类别、地理位置与时间、灾害种类等信息类别进行预先设置,农技人员可以提前通过该功能设置自身所负责田块的信息类别,以便在工作过程中快捷地对一系列田间管理信息进行录入,实现农场系统对不同地域田块的分类管理。同时,农技人员还可以通过查询功能输入水稻当前灾害的关键信息,快速搜索出相关的病虫草害,有利于第一时间对灾害作出诊断并上报,减少灾害损失。
1.3 辅助决策系统功能设计
该系统主要针对农业管理决策者进行设计,其作用能够帮助管理人员迅速获取一定范围内各地区与水稻生长相关的田间信息,以便及时作出应对并分配任务,保证了数据反馈的真实性和时效性。通过对农业管理者工作需求的实际调查,将该子系统的一级功能模块分为3个部分,包括水稻生长信息、灾害详情以及结合地理位置的水稻田间管理数据的分类浏览。
1.3.1 生长信息与灾害信息浏览 该模块可以实现田间信息和灾害信息的动态远程查看,使农业管理者更加全面、直观地获取水稻生长环境与田间作业信息,及时获悉各区域农业生产一线的受灾程度与详情,有利于农业管理人员及时把握田间管理工作进程,提高田间管理与指导的工作效率以及对田间灾害的预防能力。
1.3.2 基于地理位置的水稻生长田间管理数据分类获取 系统将水稻生长状况、灾害详情、环境数据等信息嵌入地理信息系统中,农业管理者可以通过不同区域地理条件与环境的差异性生成适应性较强的工作方案与应急预案。同时,还将在地理信息系统中生成多层农田空间信息分布图,并将其纳入水稻生长田间管理辅助决策系统,有利于管理者结合不同地区田间作物生长的情况进行分区管理和科学布局。其功能流程见图4。
2 系统功能实现
系统基于Windows 7操作系统完成了对Java JDK 1.8.0、Android SDK、MyEclipse10以及Android Development Tools 23.0.7插件的安装, 成功建立了开源免费的开发环境。系统的界面布局采用TableLayout类,每1行都包含1个TableRow,在每个TableRow中包含了单个或多个View对象。实现了不同内容之间的快速切换以及界面空间的灵活运用。
2.1 通信功能的实现
利用Socket通信技术实现智能移动终端与云平台的数据传输,该通信方式相比于Http通信更加快捷,效率更高。Socket通信封装了TCP/IP协议,是一种“open-send/write-close”通信模式的实现,首先在系统移动客户端建立一个Socket,建立后云服务器会时刻进行网络监听,一旦发现地址与端口号一致的客户端连接请求便迅速反应并予以连接,然后对所需的信息和数据进行及时传输并予以储存。
通过利用JAVA中Socket通信包含的getInputStream()和getOuputStream()所对应的输入与输出流来进行数据的send/write等传输操作。在传输结束时,服务器調用close功能断开连接并恢复监听状态。经传输后,Android移动终端利用ExpandableListView类实现了数据的列表分组管理与动态显示。系统的信息采集主界面与田间管理生长监测信息见图5。
2.2 数据的存储与调用
在系统实际应用的过程中,会出现网络故障以及网络信号较弱等问题,为避免采集和录入的数据丢失,系统采用了Android智能操作系统中自带的SQLite数据库,建立了水稻田间管理信息、作业信息以及病虫草害信息的数据库表,同时实现了相关图片的存储与调用,完成了数据的保存与更新。SQLite数据库是一个标准的嵌入式数据库,系统通过利用其提供的零配置运行模式,屏蔽了数据库使用和管理的复杂性,提高了系统的运行效率和可靠性。
在实现过程中,通过调用SQLiteOpenHelper中getWritabeDatabase()方法创建崭新的数据库表,成功建立后调用SQLiteDatabase类的insert()、update()等方法来完成数据的添加或更新等操作,新增的数据子类的内容会显示在不同的View中,用户可以根据不同的类别进行数据的录入。最后,利用布局文件中Spinner控件的添加,便可以触发SQLiteDatabase类的query()方法来实现用户对信息数据的查看与调用。
2.3 病虫草害信息查看功能的实现
水稻病虫草害数据结构化程度不高,利用XML这种具有较强可扩展性及交互性的半结构化的数据格式来编写更为合适。系统严格按照XML语言的编写方法建立了水稻病虫草害文件rice.xml,实现了对于水稻生长的40多种以上主要病害与草害以及90多种以上主要虫害的分类浏览,且每种灾害的详细信息与图谱都能够条理清晰地显示在客户端中。水稻灾害XML文件的部分内容与结构见图6。
系统通过调用资源对象的getXml()方法中XmlPullParser技术来解析上述XML文件,PULL解析器利用事件运行过程中触发特定代码的方式来判断解析各项事件开始与结束的时间,相比于SAX和DOM解析方式具有占用内存小、解析速度更快的优点。定义后的事件类型与含义见表1。
在解析实现过程中,XML解析事件的首次触发记为int eventType=parser.getEventType(),当读取开始后,程序将通过关键的parser.next()方法来获取到高级的解析事件,并通过对比确定事件类型,然后通过调用getAttributeCount()和getAttributeName()方法来获取元素的属性值与名称,最后将属性值整理成需要显示的信息。解析后的水稻病虫草害信息查看功能见图7。
2.4 基于地理信息的水稻生长田间管理数据分类查看功能实现
该功能选用百度地图,并利用GPS定位技术来实现其基本功能。首先将百度地图生成的Key填写在Android Manifest.xml文件中,然后下载百度地图API的jar包并导入libs文件夹中即可使用百度地图API。在录入的过程中,系统会自动检测GPS功能所处的状态,如果检测到该功能开启系统便会自动通过LocationManager来获取某一特定时间地理位置的相关信息。在对田间信息与地理位置调用的过程中,系统通过在MapView上添加覆盖层的方法对地理位置进行注解,其原理是创建新的itemzedOverlay类将对应的图片和数据信息与相应的地点进行匹配并标注,点击该定位便可以显示当前位置田间的详细信息。其功能主界面与地图显示界面见图8。
2.5 系统云平台服务器的实现
系统服务器是基于云平台技术运用Delphi7进行开发。相比于VC和VB,Delphi7具备程序设计思想便捷、性能稳定、开发周期短、数据库支撑强大等优点。系统云服务器安全稳定性强,可实时获取多处异地的水稻田间管理信息,克服了有线网络环境和空间的制约,为移动客户端的稳定运行提供了可靠的基础与支撑。云服务器的主界面见图9。
3 系统集成与测试
系统综合考虑了不同种类用户在田间管理工作中的需要,结合表格布局、框架布局以及相对布局等多种布局方式的优点构建了人机交互界面,增强了系统的可用性和用户友好性。同时运用了多种Android关键技术与高端控件,实现了系统的基本功能和稳定运行。
系统于黑龙江省杜尔伯特蒙古族自治县、依安县等地多个农业示范园区进行应用试验,通过试验过程中不断的调整与优化,系统的运行与维护已经十分成熟。经过实际运行与应用效果表明:(1)系统数据显示准确,条理分明,图片显示
清晰完整,且功能具有多样性和针对性,满足了用户的实际需求。(2)界面操作简便且实用性强,农技人员只需进行简单培训便能够掌握全部操作功能。(3)在实际应用过程中,大部分地区信息传输的通信效果良好,能够满足各类数据传输的时效性。小部分地区由于基站覆盖面积不足,图片的传输情况会有一定延迟。
4 结论
基于Android智能移动终端研发了水稻田间管理与决策辅助系统,系统运用云平台技术开发服务器,使其具备强大的数据存储与信息调用功能,采用Socket通信方式实现了客户端与云平台服务器的无缝对接,解决了有线网络环境制约的问题。系统能够满足不同用户对水稻田间管理工作的实际需求,革新了传统的田间管理工作模式,具有较强的适用性和必要性,同时也保证了田间信息获取的真实性与时效性,适合在我国农业生产一线推广应用。
参考文献:
[1]郑纪业,阮怀军,封文杰,等. 农业物联网体系结构与应用领域研究进展[J]. 中国农业科学,2017,50(4):657-668.
[2]唐光海,马素英. 农业物联网应用创新探析[J]. 陕西农业科学,2017,63(1):97-100.
[3]缪 玲. 基于Android平台的智慧农业信息采集系统的开发[D]. 南京:南京郵电大学,2015.
[4]赵路欢,张玉波. 农业害虫专家系统信息化平台的构建[J]. 安徽农业科学,2016,44(15):255-256,270.
[5]陈 棚. 基于Android平台的专家系统研究与应用[D]. 西安:西安工业大学,2014.
[6]刘小军,曹 静,汤 亮,等. 基于模型和GIS的水稻生产管理决策支持系统构建与应用[J]. 中国水稻科学,2010,24(3):297-302.
[7]孙乐义. 基于Android系统的智能无线控制系统的设计与实现[D]. 合肥:安徽大学,2016.
[8]王 斌. 基于Qt for Android的移动GIS应用开发与研究[D]. 郑州:郑州大学,2016.
[9]尚明华,秦磊磊,王风云,等. 基于Android智能手机的小麦生产风险信息采集系统[J]. 农业工程学报,2011,27(5):178-182.
[10]陈桂鹏,严志雁,瞿华香,等. 基于Android手机的农业环境信息采集系统设计与实现[J]. 广东农业科学,2014,41(13):178-181,219.