基于IoT的智慧农业环境控制管理系统设计与实现

作者: 胡美富 杜瑾

基于IoT的智慧农业环境控制管理系统设计与实现0

摘要:为了解决传统温室环境控制依赖人工操作、效率低下的问题,文章设计并实现了一种基于物联网(IoT) 和Spring⁃Boot的智慧农业环境控制管理系统。该系统利用传感器实时采集温室环境数据,并通过MQTT协议将数据传输至系统后台。系统后台基于SpringBoot框架构建,集成了用户管理、温室数据处理、日志管理、异常播报和自动控制等功能模块,实现了对温室环境的精准控制、实时监控和智能化管理。系统已在阿里云服务器上稳定运行一年,拥有一定规模的用户群体,能够有效提高种植效率,降低人工成本。

关键词:智慧农业;物联网;SpringBoot;智能控制

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2024)31-0134-06

开放科学(资源服务)标识码(OSID) :

0 引言

随着物联网、云计算、大数据等新一代信息技术的快速发展,智慧农业作为农业现代化发展的重要方向,近年来在全球范围内得到了广泛关注和应用[1-2]。智慧农业通过将先进的信息技术与农业生产过程深度融合,实现了农业生产的精细化、智能化和高效化管理,有效提高了农业生产效率和产品质量[3]。例如,中科三安于2019年建成并投产的山西长治育苗工厂取得了较快发展和显著成效,其自动化室内智慧育苗车间较传统育苗技术相比,缩短了育苗时间10~20天。

温室环境控制是实现农业精细化管理的重要环节,传统温室环境控制主要依赖人工操作,存在效率低下、控制精度差、人力成本高等问题[4]。为解决上述问题,本文设计并实现了一种基于物联网(IoT) 和SpringBoot 的智慧农业环境控制管理系统。该系统提供了温室的实时数据监控、历史数据查询、温室环境因子控制调节、异常数据告警等应用功能,为农业生产过程监测提供便利。项目基于最新的SpringBoot 架构,结合VUE3+ElementUI技术,优化了页面展示效果,同时提供的定时拍照模块为病虫害监测实现和农产品可信溯源系统构建提供了技术支撑。

1 系统分析

1.1 系统开发目标

本研究的总体目标是设计一套能够保障植株高质量生长,同时尽可能减少人工干预的温室系统。其应用场合主要是研究型企业、学校实验室、研究所等小型试验场地。在系统实现中,设计基于SpringBoot 后台的管理系统。该系统能够接收MQTT服务器发送的环境因子数据[5],对数据进行解析和持久化存储,并将获取的数据与专家知识库进行比对,判断是否偏离动态阈值[6]。如有偏离则发送控制指令进行矫正。系统交互过程如图1所示。

项目以食用菌为种植作物,实验室内已具备植株生长所需的基本内部条件和养分,实验过程仅考虑影响植株生长的外部环境因素。实验温室的基本要求是:房间内须设置能够采集温度、湿度、二氧化碳浓度、光照强度的传感器,并配备调节温室环境的风扇、加热器、加湿器和照明设备。本项目使用的温室面积约3平方米,内部划分为3个小型种植间,每个房间采用相同的控制策略,以增强系统控制能力的可信度,如图2所示。

1.2 系统用例分析

用例图用于描述用户与系统的交互方式,展示用户与系统功能单元之间的关系,以及不同用户与用例之间的关联。如图3所示,智慧农业环境控制管理系统的用例图定义了三种用户角色,分别是超级管理员(SuperAdmin) 、普通管理员(Admin) 和普通用户(User) 。

上述用例图描述了三种角色所具有的权限模块,具体分析可知:超级管理员具有全部权限;普通管理员具有切换网关权限,可以管理网关下的全部房间,对应于农场主的角色;普通用户仅能查看特定网关下的房间环境数据,对应于农场员工的角色。

1.3 功能性需求分析

功能性需求分析涉及对系统必需的功能进行详细审查和阐述,是软件开发流程中的核心部分。

1) 用户登录与安全认证。系统应提供用户登录界面,并通过JWT认证机制确保安全访问。登录过程中应包含验证码认证,以防止恶意尝试和攻击。

2) 用户管理。支持查询用户信息,以便超级管理员监控和审核用户。实现用户的增加、修改、删除功能,满足系统用户管理的需求。支持重置密码功能,保证用户账户安全。

3) 环境信息管理。实现房间环境信息的查询和导出功能,便于监控和管理房间数据。

4) 房间控制参数管理。该功能允许具有相应权限的用户查询、添加、修改和删除房间控制参数。在开启自动控制后,系统将根据设置的温湿度、二氧化碳浓度、光照时间等参数智能调节房间的环境因子,使得房间的环境因子稳定在设定值。

5) 摄像头管理。实现首页中摄像头的添加、修改和删除功能,同时支持定时拍照功能。

这些功能性需求是环境智能控制系统的核心组成部分,保证系统能够有效、准确地支撑环境控制管理平台的常规运营和管理。

1.4 非功能性需求分析

非功能性需求分析涉及对系统或软件的性能、安全性、可靠性、可用性、可维护性以及兼容性等方面的详细分析和描述。这种分析对系统的设计、开发、运行至关重要,与功能性需求同等重要,因为它们共同决定了系统的整体表现和用户满意度。

1) 设计系统时,应确保其具有高度可用性,以支持业务的持续运行,减少系统故障可能引起的运营中断。

2) 系统应能够准确执行各项功能,确保数据的一致性和准确性,防止数据在传输过程中丢失和损坏。

3) 系统设计需要考虑到未来的扩展性,包括添加新功能、增加用户数量以及处理更大的数据量。系统应能够无缝集成新的服务或模块,以满足未来的业务发展需求。

4) 系统的界面设计应直观、用户友好,确保用户可以简单明了地操作系统。

1.5 系统开发技术栈

1) 前端开发部分。Vue3:Vue 3引入了许多新特性和改进,包括更快的渲染性能、更小的打包体积以及更好的TypeScript 支持。引入了Composition API,提供了一种新的方式来组织和重用逻辑,使得代码更加清晰和易于维护。ElementUI:该组件库专门针对Vue 3的响应式系统和组合式API进行了优化,确保了与Vue 3的完美兼容性和高性能表现。Echarts:专门用于构建可视化图表的JavaScript库工具,在项目中用于呈现首页的环境信息变化曲线。

2) 后端开发部分。后端代码的开发工具为IDEA(IntelliJ IDEA) ,系统采用Maven、Git等进行项目管理,具体技术栈如下:SpringBoot:作为本项目的主要架构,SpringBoot简化了Spring应用程序的配置和部署过程,使开发者能够快速构建独立的、生产级别的Spring应用。其能够快速集成其他框架,本项目通过集成Spring Security实现了用户操作数据时的权限管理。MyBatis Plus:用于实现数据的CRUD(增删改查)操作,MyBatis Plus具有丰富的内置功能,包括分页和事务等。Websocket:项目采用Websocket技术实现报警信息传输。与HTTP协议相比,Websocket支持双向通信,具有更高的灵活性和效率。

2 系统设计

2.1 系统软件总体架构

系统自上而下分为用户层、视图层、业务逻辑层和数据库层。用户层将用户分为三类,分别赋予不同的权限。视图层负责渲染数据,为用户提供直观界面。业务逻辑层根据业务需求划分功能模块,处理用户请求并与数据访问层交互。数据层负责数据存储。智慧农业环境控制管理系统的总体架构如图4所示。

系统通过订阅MQTT服务器实现环境因子的数据采集,经过一系列数据处理与分析,完成数据展示、智能控制和异常告警等功能,具体流程如图5所示。

总体包括数据的格式化处理、持久化存储、基于知识库的智能调节和异常告警等功能,符合主流环境控制管理系统的设计需求,系统功能简洁实用。

ER图设计在智慧农业环境控制管理系统中具有关键作用。ER图能够清晰展示系统中的数据实体及其属性。在智慧农业管理系统中,主要数据实体包括用户、网关和环境信息等,每个实体均具有特定属性。通过ER图(如图6所示),可直观地展现这些实体和属性间的关系,有助于理解系统的数据结构。

2.2 用户管理模块

用户管理模块主要负责账户管理及权限分配。其功能包括:超级管理员注册下级账号并按照权限分配对应的区域、网关和房间;管理员删除下级账户;账户所有人修改密码;以及账号的登录与退出登录,如图7所示。

2.3 温室数据处理模块

温室数据处理模块的主要功能包括接收、解析和存储来自MQTT网关服务器的数据。MQTT协议是专门针对物联网开发的轻量级传输协议,为连接硬件设备提供实时、可靠的消息服务,其通信原理如图8 所示。

每个农场均分配一个唯一的主题,MQTT服务器通过接收硬件端上报的主题数据,将其转发给订阅该主题的client。系统通过订阅相应主题接收硬件上报的JSON格式环境因子值后,进行数据解析和处理。完成数据解析处理与持久化后,拥有房间权限的用户可查看温室环境数据,包括最新环境因子值、房间历史数据记录、删除数据及导出Excle表格数据。如图9 所示。

2.4 日志管理模块

日志管理模块的数据来源贯穿各个业务模块,用于收集用户操作信息,包括登录日志、账户分配日志、数据操作日志、智能控制日志和控制器操作日志等。管理员可查看下级子账号的控制器操作日志、智能控制日志,并可执行日志删除操作;同时支持基于内容或账号的模糊日志查询,如图10所示。

2.5 异常播报模块

异常播报模块的主要功能是在房间环境因子偏离正常值时,执行异常播报与通知。该模块主要通过前端页面滚动展示异常的具体信息,当环境因子长时间处于异常状态时,则通过向房间所有人的邮箱发送告警信息进行通知。该模块包括获取异常信息、推送异常信息和告警通知,如图11所示。

2.6 控制参数设定模块

该模块主要用于设定智能控制的控制参数及其启用状态。开启智能控制后,系统将根据食用菌品种和专家知识库自动设定温室的适宜生长环境因子值。当温室环境偏离设定值时,系统自动向MQTT服务器发送控制指令,网关接收并解析指令后,由硬件端的控制器执行相应操作。该模块主要包括加热管、加湿器、灯光、风扇的控制及智能控制功能的启用,如图12 所示。

3 系统实现

系统用户分为超级管理员、管理员和普通用户三种角色,每类用户具有不同权限。农作物主要在各个房间内生长,一个区域下设有多个网关,一个网关下设有多个房间,管理员为普通用户分配具体的可监控房间号。每个网关均配备监控设备以实时观察农作物生长状况,每个房间均配置硬件设备,包括温度感应器、湿度感应器和二氧化碳浓度感应器等。控制传感器开关及监控摄像头需要管理员以上用户权限,智能控制标准(包括二氧化碳浓度标准、湿度标准等)由管理人员设定。系统对每个操作均生成相应日志记录,并持久化保存于数据库中。

3.1 登录页面

用户在系统登录页输入账号密码后提交,系统后台通过JWT进行密码校验和权限鉴定,验证通过后渲染该权限对应的页面栏,如图13所示。

3.2 首页

用户成功登录系统后进入首页,如图14所示。页面顶部为固定组件,包括系统名称及区域、网关、房间的切换下拉框,最右端设有用户个人中心,可进行密码修改或系统退出操作。页面左侧为系统导航栏,用户通过点击不同导航按钮可跳转至相应页面。页面中央展示农作物生长环境信息,包括温度、湿度、光照强度和二氧化碳浓度,以及当前网关下摄像头拍摄的作物生长状况监控画面,同时显示当日温室各环境因子的变化曲线图。页面右下端设置房间环境因子的异常信息警告,当登录用户所管理的房间出现异常时,系统将自动发送异常报告信息。

上一篇 点击页面呼出菜单 下一篇