周海莲,张军国,杨睿茜,赖小龙,吕静霞
(北京林业大学工学院,北京 100083)
我国人均水资源匮乏,被列为世界上13个贫水国家之一。农业灌溉是水资源消耗的重要组成部分[1-2]。据统计,近几年我国农业灌溉用水量占农业总用水量的90%,占全国总用水量的63%。传统农业灌溉主要依靠经验进行定时灌溉,存在水资源利用率低下的问题。
精准农业灌溉技术实现了灌溉的精准性及可控性,有效地解决了这一问题。物联网技术是一种新型的信息处理方式,具有覆盖范围广、数据处理效率高等优点,广泛应用于环境监测、智能家居领域[3]。本文基于物联网技术构建了精准农业灌溉系统,重点对系统监控软件进行了开发,以实现对灌溉系统的远程监测控制。
基于物联网技术构建的精准农业灌溉系统由五部分组成,分别为:传感器网络、电磁阀阵列、灌溉监测控制器、GPRS(General Packet Radio Service,通用分组无线服务技术)模块、远程监控计算机。系统结构如图1所示。
图1 精准农业灌溉系统结构图
图1中,传感器网络由数百个土壤水分传感器组成,用于监测不同区域、不同深度的土壤水分。灌溉监测控制器控制土壤水分传感器是否采集数据以及电磁阀是否打开。由于农田面积大,需要控制的土壤水分传感器及电磁阀多,因此采用分区控制的方法,每个控制区域设有一个灌溉监测控制器。当某一控制区域内传感器测得土壤水分超出设定的灌溉阈值时,灌溉监测控制器控制电磁阀打开或关闭。远程监控计算机使用户能够远程监测控制农田的灌溉状况,它与灌溉监测控制器通过GPRS进行通信。
作为用户与精准灌溉系统进行信息交互的平台,远程监控计算机监控软件的好坏决定系统是否能够准确按照既定灌溉方案执行灌溉。本文基于监控软件的设计展开详细讨论。
该监控软件需要实现对电磁阀的远程控制、实时显示土壤含水量、存储历史数据及报警数据、切换系统灌溉模式。同时,由于监控软件实现人机交互,因此需要有友好的人机交互界面[4-5]。
监控软件分为四大模块,分别为:用户设置、参数设置、数据管理、采集控制,如图2所示。
图2 监控软件组成图
用户设置模块的功能包括多用户登录、添加新用户、删除用户、修改密码[6]。用户登录程序的流程如图3所示。
图3 用户登录程序流程图
系统初始化时存在两个已有用户:一个默认用户,一个超级用户对监控系统进行特权级操作。系统登录时,程序获取用户输入信息,并与已有用户的信息进行比对。若二者一致,登录成功[7]。其中,已有用户信息按统一格式保存在文档中。
超级用户不仅具有监控系统运行状态等权限,还可以进行多用户信息的管理,例如添加新用户、删除用户等。删除用户程序的流程如图4所示。首先,将待删除用户的用户名及密码组合成用户信息保存的标准格式。逐行读取用户信息并与待删除的用户信息进行比对,若不同,表明该用户不是待删除用户,将该用户信息保留;若相同,则该用户即为待删除用户,该用户的信息不再写入保存用户信息的文档。
图4 删除用户程序流程图
添加新用户程序的流程如图5所示。添加用户对话框需要用户输入新添加用户信息,包括用户名、真实姓名、密码、确认密码。确保超级用户输入的信息有效后,逐行读取已有用户信息与待添加用户的用户名进行比对。若出现相同用户名,则提示用户该用户名已存在;若没有出现相同用户名,则将待添加用户的用户名及密码写入保存用户信息的文档中。
图5 添加新用户程序流程图
用户设置模块还可以实现密码的修改。密码修改程序的流程如图6所示。修改密码时需要用户输入原始密码、新密码、确认密码。另外,超级用户可以修改普通用户的密码,因此在修改密码时需要输入用户名。系统确认所有信息均有效后,逐行读取用户信息,找到待修改密码的用户,用新密码替代原有密码,密码修改完成。
图6 修改密码程序流程图
参数设置模块是对短信设备、灌溉监测控制器、传感器参数的设置。参数设置模块组成如图7所示。远程计算机监控系统与灌溉监测控制器间通过短信设备进行通信时需要设置通信的参数,例如选择短信设备接口和波特率。初始化系统时,系统将可选择的短信设备接口及波特率加载到下拉列表中。短信设备接口可以选择COM1、COM2、COM3、COM4。波特率可以选择9 600 bps、14 400 bps、19 200 bps、38 400 bps。
图7 参数设置模块组成图
灌溉监测控制器控制流程如图8所示。灌溉监测控制器的主要参数包括工作模式、灌溉任务等。每个灌溉监测控制器都有特定的通信手机号,与远程计算机间通过GPRS通信。灌溉监测控制器设有两种工作方式:手动控制、自动控制。若用户选择自动控制模式,灌溉监测控制器自行决策灌溉开始或结束,不需要用户通过远程计算机发送命令打开或关闭电磁阀。灌溉任务是自动控制模式下灌溉监测控制器自行决策的一个依据。相反,若用户选择手动控制模式,用户通过读取灌溉监测控制器传回的实时土壤含水量决定是否开始灌溉。用户发送灌溉开始命令后本次灌溉持续时间由灌溉时间长度决定。
图8 灌溉监测控制器的控制流程图
每个控制区域内设有多个电磁阀及传感器。用户可以设置传感器的含水量报警上限、含水量报警下限、灌溉阈值。当传感器检测到某一时刻的土壤含水量低于(高于)含水量报警下限(上限)时,灌溉监测控制器向远程监控计算机发出报警信号,提示用户决策是否灌溉。在自动控制模式下,除灌溉任务外,灌溉阈值是灌溉监测控制器自行决策的又一依据。
数据管理模块管理灌溉监测控制器发送至远程计算机的所有数据。数据管理模块的组成如图9所示。
首先,管理传感器采集的不同时间下土壤含水量。传感器采集到土壤含水量后传送至灌溉监测控制器,灌溉监测控制器将其控制区域内所有传感器采集的数据汇总后传送至远程计算机。由于同一控制区域内传感器的位置及埋放深度不同,因此采集的数据具有可对比性。远程计算机接收到数据后将其保持至数据库中,方便用户统计某天或某周的土壤不同深度下含水量变化,以便考量精准灌溉系统的有效性。
图9 数据管理模块组成图
其次,管理报警信息,包括报警控制器、报警区域、报警类型、报警时间以及是否已进行处理。报警信息主要针对手动控制模式,提示用户进行决策。若用户在某段时间里没有进行监控,可以通过查看历史报警信息得到未处理的报警信息并做出处理。
采集控制模块的功能是向灌溉监测控制器发送控制命令,包括打开或关闭灌溉电磁阀及传感器开始采集数据。采集控制模块工作流程如图10所示。
图10 采集控制模块工作流程图
控制命令的发送以控制区域为单位。在手动控制下,用户通过向灌溉监测控制器发送命令对执行机构电磁阀进行操作。同一小区内有多个阀门,用户进行操作时需依据传感器采集的土壤含水量情况决定打开或关闭阀门的个数,使灌溉更加精准。
用户可以根据需要控制传感器开始采集数据。同一控制区域内埋放的数个传感器的区别不仅在于埋放位置,而且埋放深度也不相同。用户对传感器采集数据的控制以控制区域为单位,当用户发送开始采集数据的命令时,某一控制区域内所有传感器均开始采集数据。用户可以根据传感器采集到的某一控制区域不同位置、不同土壤深度下土壤水分决定是否开始灌溉。这种决策方式比只依据埋放在不同位置传感器采集的数据决定某一控制区域是否灌溉更合理。
监控软件实验运行时的界面见图11、图12。
图11 传感器属性设置
图12 传感器采集数据列表
基于物联网的精准农业灌溉系统具有实时控制系统运行状态的优势,现代精准农业灌溉多采用此方法。本文介绍了一种基于物联网的精准农业灌溉系统监控软件的开发方案,提出该监控软件的设计需求及各模块的实现方案。实验表明,本文介绍的精准农业灌溉系统监控软件运行良好,实现了多用户管理、节水灌溉系统硬件设置、历史数据管理及采集控制功能。然而,在不间断工作一定时间后,系统性能的稳定性问题还有待进一步改进。
[1]章军富,陈峻崎,胡剑非.基于GPRS/SMS和μC/OS的都市绿地精准灌溉控制系统[J].农业工程学报,2009,25(9):1-6.
[2] 蒋 毅,赵燕东,陈峻崎,等.精准灌溉自动控制系统的应用研究[J].湖南农业科学,2009,(5):136-138,142.
[3] Wenbin L I,Zhang JG,Zhang JM.The Monitoring of Host Computer for Forest Fire Detection System based on Wireless Sensor Network,The 5th International Conference on Wireless Communications,Networking and Mobile Computing,September 24-26,2009,Beijing,China.
[4] 匡秋明,赵燕东,白陈祥.节水灌溉自动控制系统的研究[J].农业工程学报,2007,23(6):136-139.
[5]邹 升,毛罕平,左志宇.基于VB的灌溉施肥机上位机软件系统设计[J].安徽农业科学,2011,39(7):1494-1497.
[6] 戚艳艳,肖新棉.基于labview的温室灌溉自动控制系统的研究[J].湖南农业科学,2010,(11):153-155.
[7] 邵维忠,刘 昕.可视化编程环境下人机界面的面向对象设计[J].软件学报,2002,13(8):4237-4240.