基于ZigBee 和云平台的大棚环境监测系统设计与实现

2024-03-01 08:39徐镇辉谢淑丽
通化师范学院学报 2024年2期
关键词:客户端大棚阈值

徐镇辉,谢淑丽

信息技术的快速发展,改变了传统农业依靠经验种植的生产管理方式.目前,我国农业物联网技术在设施农业应用方面已经取得了显著成效[1−2].

农业生产环境监测是发展设施农业的基础,建立温室大棚环境远程监测系统,采集大棚环境数据和作物生长状况,对大棚农业生产进行实时监测和精细化管理,保证温室大棚作物始终处于最适合的生长环境中,不仅有利于提高大棚农业生产效率,也有利于提高作物产量和品质,增加生产效益.

ZigBee 是一种无线传感网络通信技术,具有高可靠、高速度、低功耗、低成本和灵活组网等特征[3−4],可用于农田环境监测系统.基于ZigBee 和GPRS 的大棚环境监测系统,能够有效解决环境信息采集和传输过程布线困难、成本高、不稳定等问题[5−9],云平台服务具有可扩展性强、安全性高、性价比高等特点[10].本文设计了基于ZigBee 和云平台的大棚环境远程监测系统,充分发挥ZigBee 无线传感器网络技术和云服务的优势,搭建云服务器,开发移动客户端,降低了系统的开发成本,提高了系统稳定性和安全性[9],部署灵活,便于操作.

1 系统总体设计

大棚环境监测系统由大棚采集端、云平台和移动客户端组成,系统总体框架设计如图1所示.

图1 大棚环境监测系统框架

大棚采集端主要由采集节点、ZigBee 协调器、STM32 主控节点、GPRS 通信模块等组成,大棚可以根据面积大小设置一个或多个采集节点,采集节点通过ZigBee 无线网络将空气温湿度、土壤温湿度、CO2浓度、光照强度等传感器数据传送给协调器,协调器汇集大棚节点数据并通过串口通信传送给主控节点[9],主控节点对数据进行分析处理并通过GPRS无线通信将数据发送到服务器云平台.云平台包括服务器和MySQL 数据库,服务器接收和处理大棚数据并存储到云数据库,提供客户端请求服务并对数据库数据进行操作.移动客户端与服务器进行交互,实时监测大棚环境状态,并依据设定的阈值及时发出警报通知信息.

2 系统功能设计

本系统实现了在移动客户端实时监测大棚内空气温湿度、土壤温湿度、光照强度、CO2浓度等环境指标,拍照采集主要种植环节的作物生长状况,对监测数据进行分析处理和报警提示,主要功能如下:

实时环境监测.提供各个大棚的实时环境数据,以动态折线图的形式显示近1 小时内空气温度、空气湿度、CO2浓度、光照强度等环境指标的变化情况.

环境阈值设置.根据不同的作物或不同的生长时期,设置适合生长的环境指标最大值和最小值.

历史数据查询.提供各个大棚选定时间内的历史环境数据查询,可以选择近1 天、3天、5 天及选定时间段的历史数据.

天气信息查询.提供当天及后面6 天的天气信息查询,方便用户对比查看天气情况.

生长记录管理.记录农作物种植过程重要节点信息,包括育种、施种、松土、除草、施肥、除虫、采摘等重要种植环节,便于今后种植过程改进和农产品生产溯源.

预警通知提示.当环境数据超出设定阈值范围,能够发出声音、任务栏提示等警报信息,以便工作人员及时采取相应措施.

3 系统硬件设计

系统硬件设计部分主要包括采集节点、主控节点、网络通信等部分,主要体现在大棚采集端.

3.1 采集节点设计

采集节点主要功能是对大棚内的环境数据进行采集,它由CC2530 核心模块、各种传感器、电源模块、无线发射模块等构成.CC2530芯片集成了增强型8051 单片机,支持Z−STACK协议栈,主要用于ZigBee 无线网络组建与数据传输.系统采用的传感器包括DHT11 空气温湿度传感器、MH−Z14A 二氧化碳浓度传感器、BH1750FVI 光照强度传感器、FDR 型土壤湿度传感器.采集节点采用电池供电,系统设定工作周期,定时唤醒采集节点,收集环境状态数据,在非工作时间采集节点进入休眠状态,减少电池功耗.

3.2 主控节点设计

主控节点是大棚采集端的控制核心,主要负责采集数据的收集、分析、处理和发送,系统采用STM32F103 增强型控制芯片,该系列芯片使用ARM32 位Cortex−M3 微控制器,最高工作频率72 MHz,内置高速闪存和SRAM 存储器,具有I2C、USART、USB 等多种通信 接口,以及多个定时器、模数/数模转换器,支持多路串行通信和睡眠、停机、待机三种省电模式[11],定时器设定采样周期,定时唤醒STM32给采集节点发送采样信号.STM32 数据实时处理能力强,功耗低,可以满足采集层设计要求.STM32 主控节点通过串口与协调器进行数据通信,是传感器数据和各种控制指令到云服务器的中转.

3.3 网络通信设计

大棚采集端的网络通信包括ZigBee 通信模块和GPRS 无线传输模块.ZigBee 通信模块包括协调器、路由器、终端三种类型基本节点,各节点采用CC2530 芯片,带有RF 收发器,具有组网能力强、功耗低、抗干扰强、成本低的特点.协调器作为中心节点,负责组建ZigBee网络,路由器既可传输数据也可以中继信号,终端节点用来收发数据.节点间可以相互协调自动组成一个星形无线网络,传输距离可以从节点间几十米,扩展到上百米,能够满足农业大棚数据传输要求.终端节点作为采集节点,工作时自动搜寻ZigBee 无线网络,与协调器绑定连接,采用点播方式周期性向协调器传送数据[9].

GPRS 无线传输模块采用SIMCOM 公司的SIM900A,支持GSM/GPRS 双频通讯,具有传输距离远、性能稳定、通信可靠、资源利用率高等特点,仅在发送和接收数据时才占用信道资源.GPRS 模块通过AT 指令与云端服务器建立连接,主控节点通过GPRS 模块定期向远程服务器传送数据,由于传输数据量小,对速度要求不高,符合系统设计要求.

4 系统软件设计

4.1 大棚采集端软件设计

采集节点通电初始化后,选择信道加入ZigBee 无线网络并向协调器注册网络地址信息,然后周期性采集和存储大棚环境信息,并将采集数据发送到协调器,协调器接收到采集数据后采集节点清除环境信息.为便于获取各个终端采集数据,ZigBee 协调器与采集节点采用自定义通信协议格式对采集数据进行封装打包,数据包内容包括标识位(起始位)、数据位、校验位、终止位等,标识位用于表示采集节点设备信息,数据位包含一个或多个传感器数据信息,不同传感器数据用“_”进行分隔,数据长度根据采集的传感器信息而变化,终止位用“#”标识,采集节点流程图见图2.

图2 采集节点流程图

当协调器收到采集节点数据信息时,根据数据包标识位识别采集节点信息,并将采集的传感器数据存储到数组中.主控节点STM32 初始化后,读取存储器中的服务器IP地址、端口号等配置信息,通过GPRS 连接远程服务器.STM32 定时器设定采样周期,每5 min 向协调器发送查询命令,唤醒采集节点,接收到协调器返回数据后,将数据打包并发送给服务器,如果检测发送失败则重新连接服务器再次发送.

4.2 服务器云端软件设计

服务器云平台是大棚采集端和移动客户端的中心枢纽,负责接收和存储大棚的环境数据,对移动客户端的请求进行及时响应,并对MySQL 数据库数据进行操作.由于云平台扩展性强,用户可以直接在网络上申请软硬件资源,不受空间限制,并可以根据用户需求变化及时调整平台资源.此外,相比传统单个服务器,云平台可靠性更强、性价比更高,当某个物理节点发生故障时,云平台可以自动启用备用节点,用户不需要维护硬件设备,只需进行专业软件部署和服务更新,能有效降低维护成本.因此,服务器采用阿里云服务器(ECS),用Java 作为开发语言,后台用Spring Boot 框架搭建,该框架内置Tomcat 容器,支持关系型数据库和非关系型数据库,自动配置的starter 项目对象模型(pomS)简化了Maven配置,可以创建独立的Spring 应用程序,并生成可执行的JAR 和WAR 文件,使得项目程序的搭建和开发过程更加简便.服务器对每个业务处理程序进行封装并提供相应接口,系统提供了用户注册insertUserInfo、获取环境数据getEnvironmentData、设置环境阈值SetSensor⁃Value、添加生长记录insertGrowthRecord 等一系列接口.部分API 接口如表1 所示.

表1 部分API 接口信息

本系统选用MySQL 数据库管理系统作为数据中心,存储系统相关数据,用户可以进行身份验证、数据查询、阈值设置等相关操作.

4.3 移动客户端设计

由于系统面向用户群体相对固定,客户端程序用Android Studio 集成工具开发,利用客户端APP 程序能更好地实现预警信息接收、作物生长状况拍照记录等实时处理功能,用户可以使用Android 手机作为客户端发送HTTP 请求与服务器进行信息交互.

4.3.1 主界面设计

程序登录界面用于完成用户身份验证,APP 主题框架使用Material Design 风格设计,分别实现侧滑菜单、底部导航栏、标题栏伸缩功能,窗口左上角图标引导用户调出隐藏的左侧边菜单,DrawerLayout 调用onSupportNavi⁃gateUp()方法展开菜单内容,APP 主界面和左侧菜单及历史数据查询界面如图3 和图4 所示.主界面直观显示空气温度、空气湿度、光照强度、CO2浓度、土壤温度、土壤湿度等环境指标数值,并对异常指标作出标识.底部导航栏引导用户进入实时监测、历史数据查询、生长记录等功能模块,导航栏控件BottomNaviga⁃tionView 通过调用setupWithNavController()方法实现内容关联,调用setLabelVisibilityMode()方法设置导航栏显示标签信息.伸缩标题栏通过布局CoordinatorLayout、AppBarLayout 和标题栏Toolbar 等实现顶部栏动态伸缩效果.

图3 主界面

图4 左侧菜单及历史数据查询界面

主界面上端的滚动提示栏实时动态显示大棚环境的异常指标,后台以通知消息形式及时提醒用户,当Service 服务捕获异常数据时,通过NotificationCompat 通知提示用户进行处理,调用setVibrate()、setLights()、setPriority()等方法设置震动、灯光和消息提醒.管理员用户可以根据权限设置各环境指标阈值,阈值设置界面如图5 所示.

图5 阈值设置界面

4.3.2 数据图表绘制

在移动端APP 用第三方图表工具MPAnd⁃roidChart 绘制环境历史数据图,并实现图表缩放、拖动、平移等操作功能.通过设置LineData⁃set 数据集、Chart 图表样式和坐标轴格式绘制环境数据统计图,用LineChart 类绘制折线图,显示各环境指标状态信息.用日期对话框控件DatePickerDialog 选择所需日期区间查询历史数据,用工具类Calendar 创建日历对象,并设置格式类型SimpleDateFormat 查询指定时间区间数据.主要代码如下:

4.3.3 本地数据存储

为减轻服务器负担,提高数据查询显示效果,在移动端APP 创建SQLite 轻量级本地数据库,存储近期环境状态信息和系统基本信息,用Android 数据库框架LitePal 创建和管理数据库,按照对象关系映射(ORM)模式建立相关数据表和操作数据,利用父类LitePal⁃Support 创建environment、history 等实体类(数据表),调用save、updateAll、deleteAll 和find 等相关方法,实现对各种环境数据的增、改、删、查操作.

5 系统测试

本系统安装在某农业大棚内进行测试,大棚内放置终端采集节点和ZigBee 协调器,GPRS 无线网络数据传输较为稳定,云平台服务器能正常接收大棚采集端上传的环境数据.Android 移动端APP 响应速度较快,能够较为准确地实时获取大棚空气温度、空气湿度、光照强度、土壤温度、土壤湿度和CO2浓度等环境状态数据.根据监测数据显示,白天各环境指标随着时间变化数值有比较明显改变,当数据超过阈值时,客户端能及时发出警报通知,方便用户查看处理.管理员用户可以根据作物生长习性灵活设置各环境指标阈值.

由于作物多样性和种植环境复杂性,以及大棚空间大小和传感器有效范围差异性,传感器放置位置会在一定程度上影响测试结果,如空气温湿度传感器不能放置于阳光直射、潮湿和喷淋区域;光照传感器应尽量放置在大棚中央位置,避免天窗阳光直射和侧面遮挡影响;CO2浓度传感器应放置在大棚一定高度处,注意避开烟囱、排风管道等,以确保能够采集准确数据.采集节点可根据大棚区域大小分组放置,利用ZigBee 无线传感器灵活组网等特点,对生长环境指标要求比较高的作物,可增加相应传感器数量,并通过多点测量取平均值方式减少误差,每个ZigBee 采集节点所搭载传感器个数也可根据现场情况进行调整.

6 结语

随着物联网、大数据、人工智能等新一代信息技术的发展,农业物联网应用不断创新,为智慧农业的生产和发展提供更加精细化管理、智能化数据分析和决策支持.本文针对远程大棚农业生产环境的实时监测问题,充分发挥ZigBee 无线传感器网络技术和云服务的优势,设计了大棚采集端、云平台和移动客户端,在阿里云搭建服务器,采用流行的Spring Boot 的服务架构,开发Android 移动端APP,支持用户移动端访问服务器.测试表明,本设计能实现远程大棚环境的实时监测,系统运行稳定,便利性好,采用云平台拓展性强,有利于降低成本,提高大棚农业管理水平.

猜你喜欢
客户端大棚阈值
大棚妹子
大棚换茬季 肥料怎么选
谨防大棚房死灰复燃
原地翻建大棚 注意啥
小波阈值去噪在深小孔钻削声发射信号处理中的应用
基于自适应阈值和连通域的隧道裂缝提取
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
比值遥感蚀变信息提取及阈值确定(插图)