APP下载

基于物联网的农业墒情监测系统的设计与实现

2018-04-18姚凯学

计算机应用与软件 2018年3期
关键词:监测站墒情温度传感器

金 文 姚凯学

(贵州大学计算机科学与技术学院 贵州 贵阳 550025)

0 引 言

我国农业的信息化和智能化水平与西方国家相比起步较晚,随着计算机技术、通信技术和物联网技术的发展,“智慧农业”、“精准农业”等词逐渐出现[1]。如何合理地利用有限的土地资源提高农作物的产量成了一个亟待解决的问题。目前国内农业生产活动依旧以粗狂的种植方式为主,对于像茶叶、棉花等经济作物这种传统的种植方式已经不能满足日常生产的需要。和其他类似的气象监测系统相比,农业墒情监测系统具有更强的针对性,并且所监测的环境信息更完整,主要包括光照强度、CO2浓度、土壤温湿度、降雨量、气压、海拔等和农作物生长息息相关的多种墒情信息[2]。

而基于SpringMVC框架实现的后台管理系统,可以让数据的管理更加方便,也便于使用者随时随地查看监测数据,进而采取相应的应对措施,具有一定的实际应用价值。

1 系统总体结构设计

1.1 概要设计

随着物联网浪潮的到来,农业物联网技术得到了很好的发展,将计算机技术、通信技术应用在农业信息化进程中可以促进传统农业向智慧农业的转型[3]。因此,本文设计了一个能对农田环境信息进行实时感知的监测系统。该系统包括前端硬件和后台软件两个部分,现简单介绍如下:

硬件设计部分采用嵌入μC/OS-II操作系统的STM32F103ZET6芯片作为硬件系统的MCU,主要负责控制各个传感器对农业墒情数据进行采集。考虑到前端数据采集站可能会被长期安装在田间地头,所以该监测系统采用太阳能的方式进行供电,并通过GPRS无线通信技术与后台软件进行数据交互。

软件部分采用B/S架构进行开发,采用主流的SpringMVC框架进行代码编写,数据库采用开源的MySQL数据库,软件系统在MyEclipse集成开发环境下开发完成,最终部署在Tomcat上运行,而用户仅需要安装IE内核的浏览器就可查看前端监测站传回的墒情数据。后台软件部分主要包括数据收发模块、数据显示模块和统计分析模块等。除此之外,当后台接收到前端传回的数据时,会采用Kalman滤波算法对源数据进行校正。系统整体框架结构,如图1所示。

图1 农业墒情监测系统整体框架结构图

1.2 通信协议

通信协议是前端采集站和后台软件进行通信的基础,虽说目前已经有很多通信协议可用于上位机与下位机之间的通信,但大都不够灵活且冗余度高。为了保证系统硬件和软件部分能进行安全可靠的数据传输,特制定了一套可变长度的通信协议。该协议中规定字节采用串行传输格式,双方使用数据帧的形式进行数据的交互,每帧数据包括帧头、地址域、控制域、数据长度域、数据域、CRC校验域和帧尾7个部分构成[2]。数据帧的格式如表1所示。

表1 通信协议数据帧格式表

2 硬件设计

农业墒情监测系统能够得以实现的前提是有一个能采集到农业墒情数据的前端采集站,该采集站能够按时采集诸如土壤温度、土壤湿度、气压海拔、空气温湿度、风速、风向、降雨量、光照强度、CO2浓度、PM2.5浓度等影响农作物生长的因子[4]。为了能够准确采集到这些数据,就需要一个数据采集仪来控制各个传感器定时采集墒情数据,并且能够按照给定的通信协议与后台软件系统进行安全稳定的通信。所以,农业墒情采集站应包括各种气象传感器、数据采集仪、GPRS通信模块和太阳能供电系统等。

2.1 数据采集仪

农业墒情监测系统的核心是感知层数据的采集,而采集站的核心是数据采集仪,此次设计选用嵌入μC/OS-II实时操作系统的STM32F103ZET6芯片作为采集模块的MCU,它是基于ARM Cortex-M3内核的32位微控制器,供电电压是2.0~3.6 V,最高工作频率可达72 MHz。由于采集仪搭载的传感器较多,而且通信类型和工作电压不尽相同,所以设计了RS485、I2C两种传感器接口,其中RS485工作电压为12 V,主要负责光照传感器、风速风向传感器、CO2浓度传感器等的通信,而工作于3.3 V~5 V的I2C数字总线负责空气温湿度、大气压强、土壤湿度等传感器的通信[5]。而与后台的通信是通过STM32F103ZET6芯片的串口1结合MAX3232芯片的RS232电路连接GPRS通信模块完成的。

2.2 传感器选型

监测站搭载的传感器较多,所以传感器选型的好坏不仅决定了系统的可靠性和稳定性,也会影响系统的生产成本。笔者通过对比各厂家传感器的测量参数和综合性能,最终选取的传感器型号如下:

(1) 空气温湿度传感器选用的是瑞士Sensirion公司的SHT10数字式温湿度传感器,其测量空气温度的范围-40~120 ℃,精度为±0.5 ℃;测量空气相对湿度的范围是0~100%RH,精度为±4.5%RH,供电电压2.4~5.5 V。具有超低功耗、小尺寸、测量精度高、自动休眠等优点。

(2) 气压海拔传感器选用的是德国BOSCH公司生产的BMP180压力传感器,其测量范围为300~1100 HPa(-500~9000 m),转换速率可达128次每秒,由于该传感器是基于压阻技术设计生产的,其精度和稳定性都表现良好。此外,该传感器能通过气压进行海拔高度的准确换算。

(3) 风速、风向传感器选用的是武汉新普惠科技有限公司生产的三风杯结构的PHWS型风速传感器和风向标结构的PHWD风向传感器。这两个传感器都可以根据用户需求输出脉冲、电流、电压、RS485、RS232、TTL等多种类型的信号,此次设计中选择的输出信号为RS485。当风速大于0.3 m/s时风速传感器即可启动,风速测量范围在0~45 m/s之间;而当风速大于0.5 m/s时即可启动风向传感器,测量范围是0~360度。

(4) 雨量传感器选用的是武汉新普惠科技有限公司生产的PH—YL翻斗式雨量传感器,能够测量的降水强度范围小于4 mm/min,误差范围±4%。

(5) 光照强度传感器选用的是武汉中科能慧科技发展有限公司的NH207光照度传感器,其测量范围在0~200 klx,测量精度为±5%,具有测量精度高、稳定性强等优点。

(6) 土壤温度传感器选用美国Dallas Semiconductor公司的数字式温度传感器DS18B20进行土壤温度的测量,其特点是体积小、测量精度高、抗干扰能力强。DS18B20温度传感器的量程是-55~125 ℃。在-10~85 ℃,其测量精度为±0.5 ℃。

(7) 土壤湿度传感器土壤湿度传感器的测定对农业生产具有重大意义,选用武汉新普惠科技有限公司生产的PHTS土壤湿度传感器进行土壤水分的测量。该传感器采用频域反射法测量土壤的介电常数实现土壤容积含水量的测量,是一款高精度、高灵敏度的测量土壤水分的传感器。

(8) PM2.5传感器选用的是Nova Fitness公司生产的激光型PM2.5传感器SDS011,该传感器能够通过激光散射的原理,能够有效的对空气中直径为0.3~10 μm的悬浮物颗粒物的浓度进行测量,其测量范围在0~999.9 μg/m3测量精度为±15%,测量数据的更新频率为1 Hz。

(9) CO2浓度传感器选用的是广州龙戈电子公司的MG811电化学型CO2浓度传感器,其测量范围为0~5 000 ppm,具有使用寿命长、灵敏度高等特点,探头的有效预热时间为2~5分钟。

2.3 太阳能供电系统

考虑到前端监测站大多安装在野外,所以采用太阳能供电系统。主要包括蓄电池、太阳能电池板和太阳能充电控制器三个部分。由于铅酸蓄电池具有价格低廉、电源保护电路简单等特点,选用两个12 V-20 AH的铅酸蓄电池并联成为一个12 V-40 AH的电池组作为蓄电装置。太阳能板为50 W的单晶硅太阳能电池板,额定电流为2.8 A,在阳光充足的条件下可在14小时内将选用的蓄电池充满。而太阳能充电控制器,可以为数据采集仪提供12 V的稳定直流电压。

2.4 GPRS通信模块

该系统使用GPRS无线通信方式实现监测站与后台管理系统的通信,GPRS是一种基于GSM系统的无线分组交换技术,能提供广域网的无线IP链接,具有接入迅速、实时在线、按流量收费等特点。采用的是DF-1005 GPRS DTU无线通信模块,该模块不仅能提供全透明的数据通道,还具有功耗低、体积小、稳定性高、抗干扰能力强等优点。

2.5 下位机软件程序的主要任务

农业墒情监测系统下位机采用的是μC/OS-II实时操作系统,该系统会根据任务的优先级合理的调度提前编写好的任务程序。首先是对硬件和操作系统进行初始化操作;其次是创建Main_Task任务并开始由GPRS应答任务接收上位机传递过来的配置信息,包括采集站ID设置、休眠时间设置、时间校准和传感器配置等;再次就是控制各个传感器对农业墒情信息进行采集和储存;最后则是将采集到的数据通过GPRS主动发送给后台。大致处理流程如图2所示。

图2 下位机软件程序的主要任务处理流程图

3 软件设计

3.1 数据库设计

数据库设计是软件设计的重要一环,高效可靠的数据结构设计是系统稳定性和安全性的前提,而合理规范的数据库设计不仅能提高数据的查询效率也是后期大数据分析应用的重要保障。监测系统的后台基于MySQL数据库建立,主要包括Sensor_SourceData、Sensor_Type、Monitor_Station、Operating_Record、Return_ErrorCode和User表。其中Sensor_SourceData表是核心表,主要包括各个传感器采集的数据和采集数据的时间等字段。

3.2 软件整体设计

农业墒情监测系统除了包括前端负责采集墒情信息的采集站之外,还包括一个后台管理系统,后台系统能够对监测站传回的数据进行持久化的存储、合理的统计分析和可视化显示。该后台系统采用基于Java语言的SpringMVC框架进行设计,为了方便用户随时随地查看墒情信息,采用了C/S架构进行设计,以主流的MVC开发模式进行代码的编写。后台管理系统主要包括实时数据显示模块、数据统计分析模块、监测站配置模块和用户管理模块等。整个系统是在MyEclipse2014集成开发环境下完成的,并选用了开源的MySQL5.5作为数据库,服务器使用的是免费的Tomcat7.0服务器。

当用户登录到后台管理系统后,可以查看自己权限范围内的监测站的实时墒情数据。监测站每2分钟会向后台系统发送一次各个传感器采集到的数据[5],后台系统通过Socket网络编程技术将接收到的数据帧按照事先约定的通信协议进行解析,将解析后的数据存入数据库,供后期数据的统计分析使用。当用户选定设备号后数据显示模块可以显示该监测站的各项墒情信息。统计分析模块能以直观的方式向使用者展示对历史数据进行统计分析的结果。监测站管理模块能对监测站基本信息进行必要的配置,包括添加、删除监测站,配置IP地址、设置休眠时间等。

3.3 Socket套接字编程

网络编程主要解决两大问题,其一:如何定位网络上的一台或多台主机;其二:找到对应的主机后如何进行可靠的传输。在TCP/IP协议中IP层主要负责网络主机的定位,由IP地址可以唯一确定一台主机。而TCP层则提供面向应用的可靠(tcp)或非可靠(udp)的数据传输机制,所以Socket网络编程不需要关心IP层是如何处理数据的。只需配置每一台监测站GPRS通信模块的目标IP地址和端口号,即可将采集到的数据发送到对应的主机上。后台软件系统作为Socket网络编程的服务器端,需要时刻保持监听指定的端口,并通过Serversocket对象的accept()方法获取下位机传递过来的socket对象,以实现和监测站的通信。

3.4 卡尔曼滤波算法的实验与仿真

3.4.1卡尔曼滤波算法简介

卡尔曼滤波算法由匈牙利数学家Kalman,在1960年提出,通常与时间序列和高斯白噪声有关或者能建立类似模型的系统,都可以利用Kalman滤波来处理噪声问题[6]。发展至今Kalman滤波在定位导航、导弹追踪、机器人控制、传感器数据融合、计算机图像处理等领域得到广泛应用。

在卡尔曼滤波算法的应用中通常用线性随机微分方程来描述一个离散控制过程的系统:

Xk=AXk-1+BUk+Wk

(1)

Zk=HXk+Vk

(2)

式中:Xk是k时刻的系统状态,Zk是k时刻的测量值。Wk和Vk分别表示过程噪声和测量噪声,对应的协方差分别是Q和R。卡尔曼滤波算法可以分为两个明显的更新过程,其中时间更新过程包括式(3)和式(4)。

Xk|k-1=AKk-1|k-1+BUk

(3)

Pk|k-1=APk-1|k-1AT+Q

(4)

Xk|k-1是利用上一状态预测的结果,Pk|k-1是先验状态估计的协方差。观测更新过程包括式(5)、式(6)和式(7)。

Kgk=Pk|k-1HT/(HPk|k-1HT+R)

(5)

Xk|k=Xk|k-1+Kgk(Zk-HXk|k-1)

(6)

Pk|k=(I-KgkH)Pk|k-1

(7)

式中:Kg为卡尔曼增益,I为单位矩阵,对于单模型单测量I=1。

3.4.2卡尔曼滤波算法在大气温度传感器中的应用

卡尔曼滤波算法能够对前文提到的多种传感器进行滤波校验,笔者以大气温度传感器为例讲述卡尔曼滤波算法在温度测量过程中的实际应用[7]。用大气温度传感器测量大气温度时不可避免的会受到传感器测量噪声的干扰,测量结果可信度不高。为了验证卡尔曼滤波算法在温度测量过程中的有效性,选取一个高精度的温度传感器为标准传感器,其测量误差为±0.1 ℃,并认为其测量值为标准温度值。而监测站系统上装载的大气温度传感器,其测量误差为±0.5 ℃,并从说明书上查到其方差为0.25,所以该传感器的测量噪声Vk对应的协方差R=0.25。实验中忽略过程噪声的影响即Q=0,对照式(3)和式(4)控制矩阵B=0,状态转移矩阵A=1,测量矩阵H=1,模型建立好之后,我们分别用标准温度传感器和大气温度传感器对某实验室里面的大气温度值进行测量。

3.4.3大气温度传感器测量实验结果分析

将标准温度传感器和大气温度传感器以分钟为单位测量某实验室一个小时内的温度变化情况。在matlab7.0环境下对实测数据进行仿真分析,实验结果如图3所示。从图中可以明显地观察到经过卡尔曼滤波算法校正后的数据相比普通大气温度传感器直接的测量值更加接近于标准温度传感器的测量值。笔者分别将大气温度传感器测量值、卡尔曼滤波值与标准传感器测量值作差得到如图4所示的误差图。从图中可以清晰地看到卡尔曼滤波值的误差要远小于大气温度传感器测量值的误差。实验结果表明卡尔曼滤波算法能明显改善大气温度传感器的测量精度,提高了大气温度测量值的可靠性和稳定性。

图3 大气温度测量实验结果分析图

图4 大气温度测量实验误差分析图

3.5 后台系统的运行

对农业墒情进行合理的分析是整个监测系统设计的最终目的和意义所在,对于大部分的用户来说,他们仅关心分析统计的最终结果。因此设计一个简单易懂,界面友好的后台数据展示界面,将统计分析后的数据进行合理的展示是十分必要的[8]。该后台管理系统主要包括传感器实时数据显示模块、历史数据统计分析模块、用户管理模块等,系统界面如图5、图6所示。

图5 农业墒情信息实时显示界面截图

图6 农业墒情信息统计分析界面截图

该后台系统与安装在实验室楼顶的80号采集站和安装在贵州长津右七蔬菜基地的92号采集站进行了长达半年之久的数据通信任务,系统运行良好。

4 结 语

该文章实现了对影响农作物生长的各种墒情信息的采集、存储和分析。为了提高传感器采集数据的准确性和可靠性,减少异常数据对数据分析结果的影响。在数据采集过程中选用Kalman滤波算法对传感器采集到的数据进行校正,并在matlab7.0环境下对实验结果进行处理分析,分析结果表明采用Kalman算法处理后的数据的准确度更高,偏差较小。该监测系统按照自定义的通信协议,采用Socket套接字技术实现了监测站和后台系统的通信,后台系统能够对传回的各项墒情。

数据进行实时显示和统计分析等操作。将来通过对历史墒情数据的分析可以预测农作物的产量和浇水施肥时间等,进而可以指导农业的生产,提高农作物的产量,同时也能为农产品质量安全问题提供很好的解决依据。

[1] 杨智,方梓权,张永琦.我国农业信息化建设的发展现状[J]. 南方农机,2017(3):45-50.

[2] 张宇, 张厚武, 丁振磊,等. 农业小气候数据监测站的设计与实现[J]. 计算机工程与设计, 2016, 37(8):2072-2076.

[3] 王冬.基于物联网的智能农业监测系统的设计与实现[D].大连理工大学,2013.

[4] 李雪刚, 黄梦醒, 朱东海. 基于物联网技术的远程农田监控系统设计[J]. 计算机工程, 2012, 38(17):20-23.

[5] 丁振磊.农业小气候数据采集站的设计与实现[D].贵州大学,2016.

[6] 黄小平,王岩.卡尔曼滤波原理及应用-MATLAB仿真[M].北京:电子工业出版社,2015.

[7] 李峰.在农业物联网中基于卡尔曼滤波算法实现系统数据的融合处理[J].农业网络信息,2014(12):13-15.

[8] 戴克. SpringMVC学习指南[M]. 林仪明,崔毅,译.北京:人民邮电出版社,2015.

猜你喜欢

监测站墒情温度传感器
气象用温度传感器检定结果的测量不确定度评定与应用
基于HSIC的日光温室温度传感器优化配置策略
平面直角坐标系中的距离问题
全国农技中心举办首次土壤墒情监测线上培训班
土壤墒情监测的意义及技术规范
土壤墒情监测的意义与技术规范
巩义市审计局重点关注空气自动监测站运行情况
温度传感器DS18B20在温度计设计中的应用
XTR105电流变送器在温度传感器中的应用
检察版(六)