基于混合架构的智能农业远程监控系统设计*
2022-01-19徐镇辉郭里城王燕贞彭震川
徐镇辉,郭里城,王燕贞,彭震川
(漳州职业技术学院 信息工程学院,福建 漳州 363000)
信息化、智能化的农业生产管理方式,有利于加快现代农业生产体系的构建,促进乡村产业振兴.现阶段我国农业主要是小规模生产模式,精细化管理方面比较不足,农业生产监测和自动控制技术推广应用程度还比较低,农业物联网产品稳定性不高[1],因此,推动农业环境监控平台普及化、智能化、标准化、云端化是国内农业物联网发展的重要任务之一.
国内外在温室环境测控技术方面开展了不少研究工作[2],有线传输方式功耗高、成本较大、可扩展性不强,无线传输方式有利于降低成本,但通信性能、节点及传感器的稳定性受环境影响较大[3];基于ZigBee和GPRS设计的温室环境远程监测系统,能有效解决环境信息采集和传输过程布线困难、成本高、不稳定等问题[4-6],但系统主要采用B/S或C/S架构,有的缺乏环境控制模块;基于B/S和C/S混合架构的温室环境远程测控系统[7,8],综合考虑了系统的可拓展性、跨平台性和通信实时能力,但是2种架构的子系统间有的缺乏独立性,有的系统采用嵌入式Web服务器,缺乏历史信息存储和查询.为此,文章利用ZigBee无线传感网络和GPRS远程传输技术,设计了基于B/S和C/S混合架构的智能农业远程监控系统,在云端搭建服务器,充分发挥云服务和2种架构的优势,汇集管理数据资源,提高系统安全性和访问速度,以利农产品生产溯源和改进种植过程,方便用户使用和推广.
1 系统架构
本系统实现对大棚内空气温度、空气湿度、二氧化碳浓度、光照强度等环境指标的实时监测和作物生长状况的采集,依据设定的阈值和报警提示信息,自动或手动控制大棚内机电设备,调节农作物生长环境.本系统采用分层设计方式,由3个部分组成,分别为感知采集层、网络服务层和用户应用层,整体架构如图1所示.
图1 系统整体架构
感知采集层通过传感器采集大棚中的环境状态数据,主控节点汇集数据,并通过GPRS无线通信上报数据和接收服务器控制信号;网络服务层主要通过服务器提供用户请求服务,把接收到的环境数据和作物生长记录存储到云数据库;用户应用层主要通过PC端和移动端监测大棚环境实时状态信息和采集作物生长状况,设置环境阈值并控制相关机电设备等.
2 感知采集层
感知采集层从结构上分为主控节点、采集节点、网络通信、执行机构等几个部分.大棚采集节点数据通过ZigBee无线网络汇集到协调器,协调器通过串口通信把数据传送给STM32主控节点.主控节点接收到服务器控制命令后,通过协调器和ZigBee无线网络传送给相应的执行机构,实现机电设备的调控.感知采集层结构如图2所示.
图2 感知采集层结构
主控节点是感知采集层的控制核心,采用的STM32F103增强型控制芯片具有数据实时处理能力强、通信接口多、功耗低等特点,可以满足采集层设计要求.ZigBee通信模块采用CC2530芯片,协调器作为ZigBee无线网络的中心节点,负责ZigBee网络组建;采集节点和执行机构作为终端节点,采集节点工作时自动搜寻ZigBee无线网络,并与对应的协调器绑定连接.GPRS无线传输模块采用SIM900A,具有传输距离远、性能稳定可靠、资源利用率高等特点,由于系统传输数据量不大,对速度要求不高,符合设计要求.
3 网络服务层
网络服务层是感知采集层与用户应用层的中心枢纽,对处理速度、安全性和可靠性等要求较高,由于传统搭建的本地服务器需提前购买硬件设备,存在投入成本高、维护管理难度大等不足,因此,本系统采用阿里云服务器(ECS),扩展性好,处理能力强,可按需付费,并根据业务需求快速部署应用程序,灵活扩展CPU、内存、硬盘等硬件资源,能较好保证系统的安全和性能要求.
网络服务层包括后台服务器和数据库存储,本系统采用C/S和B/S相结合的混合架构,以及前后端分离的开发模式,系统后端使用Spring Boot框架搭建,采用MySQL数据库进行数据存储.由于C/S架构响应速度快、安全性高、操作方便、交互性强,B/S架构升级维护较快、使用方便、易于拓展[9-11],在混合架构中,充分发挥云服务器和两种架构的优点,前端部分移动端APP和Web前端页面相互独立,而后台服务器的业务逻辑处理和数据存储共享使用,大量的业务逻辑处理在后台服务器完成,服务器提供访问接口并返回结果信息,移动端APP和Web前端页面只需进行简单数据处理,C/S和B/S混合架构如图3所示.由于系统资源和数据处理主要集中在云服务器,且采用三层体系结构,有利于提高系统安全和执行效率,降低系统升级、管理、维护的难度和成本.
针对系统不同功能模块,B/S与C/S模式发挥各自优势[12,13],C/S模式主要为大棚现场日常管理和作物生长信息采集工作服务,对大棚环境进行实时监测和预警,设置设备开关状态和自动(手动)控制模式及环境阈值,采集记录农作物播种、施肥、开花、结果、采摘等种植过程重要节点信息,有利于农产品生产溯源.B/S模式主要为系统后台管理和大棚环境历史数据查询、统计分析服务,对大棚、设备、用户和传感器等基本对象信息进行管理,对数据库中大量环境历史数据进行统计、分析,及提供详细的种植知识和作物生长记录查询,有利于种植预测、决策管理和改进种植过程.2种架构在功能上相辅相成,综合农作物历史生长状况、环境历史信息和实时监测结果,将有利于优化大棚机电设备自动控制模型,对大棚环境进行更精确调控,系统业务功能如图4所示.
图3 C/S和B/S混合架构
图4 系统业务功能
3.1 后台服务器搭建
后台服务器使用轻量级框架Spring Boot搭建,该框架基本保留了Spring框架优点,同时简化SSM框架开发的过程,省去Spring框架的XML配置文件.系统采用前端和后端分离的开发方式,使后端可以集中进行业务逻辑处理和数据处理.
业务逻辑层是后台服务器的重要部分,主要负责业务逻辑处理,不仅要响应来自表示层的请求,为表示层服务,同时也连接数据访问层,对数据访问层传输来的数据进行封装处理,实现前端用户与数据库的数据交换.由于SpringBoot框架完全支持REST开发规范,可以通过“@Rest Controller”注解对控制器进行声明和响应,用“@Configuration”注解实现用户端跨域资源共享(CORS).系统引入Shiro安全框架,管理用户登录身份认证、权限验证,对前端用户和APP用户进行统一登录认证和权限控制.部分API接口如表1所示.
表1 部分API接口信息
数据访问层是系统的数据服务层,与数据库进行交互,为业务逻辑层提供数据服务,对数据库中对象基本信息、环境状态数据、作物生长记录、作物种植知识等相关数据进行操作.在Dao层中,Mapper封装数据库的操作命令,实现对数据库数据的查询、添加、修改等操作.
3.2 数据存储设计
本系统选用MySQL数据库管理系统,数据库中创建的设备信息表device、用户信息表user、作物信息表crop、传感器信息表sensor、大棚信息表greenhouse等主要存储对象的基本信息.环境数据表environment存储每个大棚传感器的实时数据,采集层每5 min上传一次数据,为减少表中数据量,优化数据存储,环境数据表根据大棚数量保存一段时间内的实时数据,系统将较早的数据定期转移备份到历史数据表中,并建立数据索引.数据统计表statistics是以环境数据表为基础,定期存储环境数据分组统计的结果,系统设定统计周期.数据库设定备份计划,定期进行备份.主要数据表如表2所示.
表2 主要数据表说明
4 用户应用层
4.1 Web前端页面设计
本系统使用Vue作为Web前端设计框架,Vue是一套用于构建用户界面的渐进式框架,可以在声明式渲染的基础上,自选添加组件系统、客户端路由、状态管理等来构建,按照自底向上、逐层应用方式,独立完成分离式前端开发,组件化系统能较好地实现组件复用和页面快速搭建.前端开发使用MVVM(Model-View-View-Model)设计模式,通过ViewModel层建立View层和Model层联系,进行数据双向绑定和同步刷新.前端通过Axios作为中间层实现前后端请求响应与数据交互,调用后端RESTFUL API接口,向后台服务器发送GET/POST请求,使用JSON数据进行交互.Web前端的基本信息管理页面如图5所示,管理员用户可以对基本信息进行添加、修改和删除操作.
图5 基本信息管理页面
4.2 移动端APP设计
移动端APP用Android Studio集成工具开发,使用OkHttp网络框架,支持连接池和线程池复用,通过OkHttpClient创建连接对象,并在子线程中请求环境数据和配置信息,有利于减少延迟和节省内存空间,提高访问效率.为提高访问安全,移动端和服务器都设置了用户访问权限控制,当用户登录验证通过时,服务器返回用户类型标识,APP根据用户类型标识设置访问权限,普通用户对环境阈值设置、控制模式设置等功能不可用.APP主页和生长记录界面分别如图6~7所示,主页显示常用功能,各功能模块可从系统主菜单进入,MainActivity主页左侧菜单栏和右侧内容区域分别用drawerlayout+navigationview控件、gridview控件实现,单击各环境指标可进入相应实时监测界面,大棚内多节点采集则取同时刻各节点数据平均值.
图6 APP主页 图7 生长记录界面
5 系统测试
本系统安装在漳州市某农业大棚内进行测试,云服务器运行稳定,能正常接收感知采集层上传的环境状态数据,GPRS数据传输较为稳定,发出的控制信号能对远程排风扇、喷淋器等设备进行正常开关控制.用谷歌、360等桌面浏览器访问流畅,交互界面简洁,响应式布局能自动适应屏幕大小.Android移动端APP响应速度较快,能够实时监测大棚环境指标,数据超出阈值情况下,移动端能及时发出声音、震动警报提醒和任务栏通知信息,用户可以手动控制或通过系统自动控制相关机电设备.
由于外界因素干扰、传感器采集误差等原因,可能出现环境指标短时间内在阈值上下波动及个别数据丢失等问题,为避免机电设备反复重启或误判启动.自动控制状态下,当环境指标数据无缺失且连续多次超出阈值时机电设备自动启动,同时取阈值范围[a,b]区间长度10%的数值d作为设备停止的控制条件,当环境指标恢复到[a+d,b-d]数值范围时设备停止,使大棚环境保持在适合农作物生长的状态.
6 结论
文章设计兼容B/S和C/S访问方式的智能农业远程监控系统,采用当前主流的SpringBoot和Vue前后端分离服务框架,有利于缩短系统开发时间.在B/S和C/S混合架构中,移动端APP与Web前端页面相互独立,后端部分共享使用,功能上相辅相成,有利于提高系统执行效率和安全性,降低系统升级、管理、维护的难度和成本.测试表明,本设计能实现远程大棚环境的实时监测和调控,方便用户使用和推广,有利于农产品生产溯源和今后种植过程改进.本设计不足之处是历史数据积累和数据统计方式比较有限,今后,将进一步挖掘大棚环境历史数据信息和农作物生长记录信息,分析大棚环境指标变化规律与农作物生长关系,完善自动控制策略,实现按需控制和多指标控制,以提高监控系统的智能化水平和大棚农业的高质量生产.