基于云平台的大田农业土壤墒情数据采集监测系统设计

2023-11-14 01:15刘晓霞商国旭赵东方
赤峰学院学报·自然科学版 2023年10期
关键词:墒情大田服务器

刘晓霞,李 航,商国旭,王 勋,赵东方

(赤峰学院,内蒙古 赤峰 024000)

1 引言

“强国必先强农,农强方能国强”。习近平总书记在二十大报告中指出,“全面推进乡村振兴、加快建设农业强国,没有农业农村现代化,社会主义现代化就是不全面的[2]。”

随着我国农业与通信、计算机、物联网等多学科交叉融合,农业生产模式逐渐由传统的粗放式经营管理模式向精细化的智慧农业转变。其中,信息感知作为智慧农业的基础支撑和精准决策的数据保障,变得尤为重要[3]。

土壤墒情监测即土壤的湿度监测,是农田植被生长的重要监测因子之一。通过开展土壤墒情监测预报,了解土壤水分状况,提高土壤监测能力和抗旱减灾能力,为指导农民适墒播种、抗旱保墒、高效节水灌溉提供科学依据[4]。目前,人们对土壤墒情预测不重视,我国的土壤墒情监测系统数量不足,直接造成了土壤墒情信息的匮乏。漆永前等[5]基于甘肃省土壤墒情现状,分析了土壤墒情信息采集与远程监测系统的结构及功能,介绍了其技术组成,并提出了该系统的应用价值;王丽杰等[6]设计了一款基于云计算平台的农田土壤墒情信息系统,引入了云计算技术,构建了基于云计算平台的农田土壤墒情信息系统,通过对土壤墒情信息系统的功能需求分析,完成了信息系统总体架构的设计,并对土壤墒情信息处理流程进行了优化分析;刘代勇等[7]设计了一套以土壤墒情传感器作为土壤含水量测量传感器、以遥测终端机作为监测数据自动采集的核心、以GPRS 通信作为数据传输方式、以太阳能供电作为电源系统的土壤墒情自动测报系统,实现了土壤墒情数据的自动采集、传输等功能。

本文使用土壤检测传感器随时监测土壤湿度、温度以及PH 值并且定位到具体的地理位置,通过DTU 定时向数据服务器发送采样数据,经过服务器处理后存入数据库供前端查询显示。建立了一套高效、快速、准确的土壤墒情自动监测系统。工作人员能够及时地掌握具体的土壤墒情,对于农作物播种、预测产量、科学指导农业灌溉、提高农业用水效率具有重要现实意义。

2 系统架构设计

本系统包含大田农业土壤墒情数据采集系统和大田农业土壤墒情数据管理应用系统两个子系统。大田农业土壤墒情数据采集系统的主要功能是按照系统预设定时采集大田农业土壤墒情的数据,并实现数据序列化存储到平台数据库。大田农业土壤墒情数据管理应用系统对采集系统获得的数据进行应用和管理。

大田农业土壤墒情数据采集系统分为采集端和服务端两个部分。采集端由土壤墒情采集传感器、MQTT 透传DTU、 电源管理系统等硬件设备组成。服务端部署于服务器上,通过MQTT 协议[8]识别采集端并实现与采集端长连接,接收采集端上传的大田农业土壤墒情数据,并对数据进行格式化存储到云数据库。大田农业土壤墒情数据采集系统如图1 所示。

图1 大田农业土壤墒情数据采集系统示意图

大田农业土壤墒情数据管理应用系统包含系统设置管理和数据查看应用两个部分。系统设置管理包含对系统的设置,对DTU、采集器的配置等。数据查看应用部分包含对管理员的管理,对地区的管理,对地片、地块/采集点的管理,对采集数据的统计和展示查看部分。

3 大田农业土壤墒情数据采集系统

3.1 大田农业土壤墒情数据采集系统采集端

大田农业土壤墒情数据采集系统采集端即部署于采集点的硬件系统。每个采集点设置一套大田农业土壤墒情数据采集系统,一个采集系统配置一个DTU 和两个土壤墒情采集传感器,分别采集土壤10cm 和20cm 两个深度的土壤墒情数据。此硬件系统可通过土壤墒情采集传感器采集土壤墒情数据,并将数据通过RS485 发送给DTU,DTU 使用MQTT与服务端实现长连接,将采集器采集的数据发布到服务端实现数据存储。硬件系统实物图如图2 所示。

图2 大田农业土壤墒情数据采集硬件系统实拍图

3.1.1 土壤墒情采集传感器

土壤墒情采集传感器使用精迅畅通公司的485 型土壤综合传感器JXBS-3001-TR,该传感器适用与测量土壤温度、水分及土壤PH。经与德国原装高精度传感器和土壤实际烘干称重法标定数据比较,本传感器精度高,响应快,输出稳定,受土壤含盐量影响较小,适用于各种土质[9]。长期埋入土壤中,耐长期电解,耐腐蚀,抽真空灌封,防水效果好。外观如图3 所示,其测量参数及硬件参数见表1。

表1 土壤墒情采集传感器参数[10]

图3 土壤墒情采集传感器

土壤墒情采集传感器使用前需使用485 传感器配置工具V3.21 进行配置才能与系统进行连接。使用485 传感器配置工具V3.21 进行配置传感器设备从站号时要注意,一套采集系统连接的两个土壤墒情采集传感器必须使用不同的从站号,将两个采集器的从站号分别设置为1 和2。从站号1 对应10cm 土壤深度,从站号2 对应20cm 土壤深度,设备安装时也要按照对应深度进行安装。土壤墒情采集传感器通讯协议如表2 和表3 所示。

表2 土壤PH 值通讯协议[11]

表3 土壤温湿度值通讯协议[12]

通讯时采用十六进制数据进行编码,尾部设置2 字节CRC 校验。PH 值数据地址为0X06,数据长度为1 字节,获取PH 值转化为10 进制数据后需缩小100 倍即可得到当前土壤的真实PH 值。温湿度数据地址为0X12,数据长度为2 字节,前1 字节为温度值,获取温度值转化为10 进制数据后需缩小100 倍即可得到当前土壤的真实温度值(℃)。当温度为零下时将以补码的形式上传,收到数据后需进行转化。后1 字节为湿度值,获取湿度值转化为10 进制数据后需缩小100 倍即可得到当前土壤的真实湿度值(%RH)。土壤墒情采集传感器采用同步通讯模式,当接收到查询命令后可同步将数据返回。极大提升系统实时效果。

3.1.2 MQTT 透传DTU

透传DTU 采用塔石物联网提供的TAS-LTE-360 模块,DTU 支持2G/3G/4G 全网络;支持2G/3G/4G 移动、电信、联通手机卡及物联网卡;支持4 个独立网络连接,均支持TCP、UDP、MQTT 连接;每路连接支持20KB 数据缓存,连接异常断线时可选择缓存数据不丢失。支持注册包、心跳包功能;支持多种工作模式:短信透传模式、网络透传模式;支持10 条自定义轮询指令;支持自定义状态上报。TASLTE-360 模块外形如图4 所示,TAS-LTE-360 模块参数如图5 所示。

图4 TAS-LTE-360 模块

图5 TAS-LTE-360 模块参数

TAS-LTE-360 模块DTU 是采集系统的通讯模块,DTU 与服务器建立MQTT 连接,通过长连接以透传模式与服务器通讯。DTU 必须正确配置后才可与服务器成功连接,成功连接MQTT 后,需订阅服务器bwupdate 和bwget 服务。并通过bwupdate上传采集数据。通过bwget 接收命令。

TAS-LTE-360 模块DTU 配置使用TAS_GPS_395_V1.0.7 工具进行配置[13],配置方法如下:

(1)配置串口数据,波特率:9600;数据位:8;停止位:1;校验位:none;配置好后打开串口。

(2)设置自定义轮询,轮询内容为两个传感器温湿度和PH 值的查询语句,共4 条轮询语句(010 300120002640E,010300060001640B,02030012000 2643D,0203000600016438)。并设置轮询时间180S.并开启轮询。

(3)设置通道

工作模式:MQTT 模式;

服务器IP:39.98.176.36;

端口:10009;

类型:TCP;

(4)单机进入配置状态,发送AT+GSN 获取设备IMEI。

(5)设置MQTT 信息。

MQTT 地址:39.98.176.36

端口:10009;

ClientID:设备IMEI

使能订阅:ClientID/bwget

使能推送:ClientID/bwupdate

MQTT 心跳:60

SSL 参数:不启用SSL

(6)点击一键配置参数,配置成功后重启设备。

成功配置TAS-LTE-360 模块DTU 后即可成功连接服务器并于服务器进行数据通讯。TASLTE-360 模块上电后POWER 灯亮起,初始化完成后WORK 灯亮起,DTU 开始工作搜索移动网络,搜索到移动网络后自动连接,成功连接移动网络后NET 灯亮起并向服务器发送MQTT 连接请求,与服务器验证成功建立MQTT 长连接后LINK 灯亮起,LINK 灯亮代表DTU 与服务器长连接正常连接中,如果LINK 灯灭则代表DTU 与服务器长连接已经断开。长连接建立后DTU 会向服务器发起订阅请求,服务器验证成功后订阅即会成功,并搭建起采集端和服务器端的透传通道,DTU 根据配置定时轮询传感器数据,传感器即会同步返回查询结果并通过bwupdate 服务透传到服务器。完成数据定时采集并上传服务器。

TAS-LTE-360 模块DTU 断网可自动连接,设置有硬件看门狗,检测到通讯错误自动重启重新联网。TAS-LTE-360 模块DTU 联网稳定,与服务器程序完美适配。通讯链路[10]如图6 所示。

图6 通讯链路图示

3.1.3 电源管理系统

电源管理系统由蓄电池、太阳能发电板、电源控制器、稳压器、电源开关构成。太阳能板采用60w单晶板,电池采用40 安三元锂电池组,电压容量12V/40AH, 充放电次数1500 次以上,工作温度-40—80℃。太阳直晒4.5-7 小时充满电池,可连续供电4-6 天。

电源控制器可稳定输出12V 直流电源,可接16-23V 光伏板充电,带有电量显示器。可实现智能充电,输出断开停止工作。内置短路保护、开路保护、过流保护、过充保护、过放保护、反接保护等多重保护。电池和控制器内置封闭,防水防尘。12V 大电流稳压器,可使用电设备电压稳定,保护用电设备。太阳能发电系统如图7 所示。

图7 太阳能发电系统

3.2 大田农业土壤墒情数据采集系统服务端

大田农业土壤墒情数据采集系统服务端是采用php+swoole 协程框架开发的物联网平台,服务器采用linux 操作系统MYsql 数据库。服务端采用MQTT TCP 通讯协议将采集点IOT 设备接入网络。并实现IOT 设备接入、订阅、数据交换、断开等操作。

3.2.1 server.php 服务

服务端通过后台server.php 服务接收IOT 设备各类请求,并通过后shell 脚本监控服务始终开启运行。

server.php 服务开启客户端请求连接到服务器、PING 请求、客户端正在断开连接、发布消息、客户端订阅请求、取消订阅请求等主要IOT 设备请求处理功能。

部分核心代码:

$server->on ('receive', function (SwooleServer$server, $fd, $from_id, $data) {

try {

$data = V3::unpack($data);

if (is_array($data) && isset($data['type'])) {

switch ($data['type']) {

case Types::CONNECT: //1 客户端请求连接到服务器

// Check protocol_name

if ($data ['protocol_name'] ! ='MQTT') {

$server->close($fd);

return false;

}

if(! isset($data['client_id']) || $data['client_id']==''){

$server->close($fd);

return false;

}

$server->send(

$fd,

V3::pack(

[

'type'=>Types::CONNACK,//

2 连接确认

'code'=>0,

'session_present'=>0,

]

)

);

*****

省略

*****

break;

case Types::PINGREQ://12 PING 请求

$server->send ($fd, V3::pack(['type'=> Types::PINGRESP]));//13 PING 响应

*****

省略

*****

break;

case Types::DISCONNECT://14 客户端正在断开连接

if ($server->exist($fd)) {

$server->close($fd);

}

*****

省略

*****

break;

case Types::PUBLISH://3 发布消息

if ($data['qos'] === 1) {

$server->send(

$fd,

V3::pack(

[

'type' => Types::PUBACK,//4

公开承认

'message_id' => $data['mes

sage_id'] ?? 0,

]

)

);

}

*****

省略

*****

break;

case Types::SUBSCRIBE://8 客户端订阅请求

$payload = [];

foreach ($data['topics'] as $k => $qos) {

if (is_numeric($qos) && $qos < 3) {

$payload[] = $qos;

} else {

$payload[] = 0x80;

}

}

$server->send(

$fd,

V3::pack(

[

'type' => Types::SUBACK,//9 订阅确认

'message_id' => $data ['mes

sage_id'] ?? 0,

'codes' => $payload,

]

)

);

*****

省略

*****

break;

case Types::UNSUBSCRIBE://10 取消订阅

请求

$server->send(

$fd,

V3::pack(

[

'type' => Types::UNSUBACK,//11 取

消订阅确认

'message_id' => $data['message_id']

?? 0,

]

)

);

*****

省略

*****

break;

}

}

}

});

?>

接到IOT 设备连接到服务器请求时,首先判断是否为系统授权设备,通讯协议是否正确,判断正确后查询IOT 设备系统信息并注册到设备数组,返回设备连接成功。

接到IOT 设备PING 请求时更新设备登录状态。返回ping 成功。

接到IOT 设备客户端正在断开连接后注销系统设备连接状态,删除设备连接信息,返回设备断开命令。

接到IOT 设备发布消息后先解析消息数据,对消息进行CRC 验证成功后通过$fd 获取IOT 设备信息,查找到IOT 设备信息后根据订阅服务约定的协议转码传输数据内的温湿度/PH 值信息,将数据格式化后每30 分钟存入一组数据到云数据库。并返回接收成功命令。

接到IOT 设备客户端订阅请求后判断设备合法后进行设备订阅操作,并返回订阅成功操作。

接到IOT 设备取消订阅请求请求后判断设备合法后进行设备取消订阅操作,并返回取消订阅成功操作。

server.php 服务可实现24 小时不间断服务,并支持多线程高并发的物联网服务,高效实现IOT 设备联网服务。

3.2.2 MYSQL 数据库

数据库是土壤墒情信息采集和远程监测系统稳定运行不可缺少的。土壤墒情系统数据存储采用MYSQL 数据库,通过php-mysqli 技术连接,MySQL数据库部署于云服务器上可以方便各个端同时访问。

随着系统不断运行,地块采集点会不断增多,同时会产生大量的土壤墒情信息数据,为了方便浏览并提高数据的应用程度,我们需要对大量数据分类妥善存储。根据数据的基础性质、重复率和应用特性不同,可将数据分为两大类,一类存储平台配置、地块、采集点、传感器等的配置空间数据库部分,另一类是存储采集的土壤湿度、土壤温度、土壤酸碱度等的土壤墒情数据库部分[11]。

土壤墒情信息采集平台可以自主运行,可以安装多个数据采集器。每个数据采集器使用前需对其进行配置,再将配置信息存储到配置空间数据库部分,当数据采集器开机联网后将自动与土壤墒情信息采集平台通讯,并将采集的数据上传平台,存储于土壤墒情数据库部分。每个数据采集器都可以独立、自动对不同区域的土壤墒情进行监测。数据产生后,平台控制端后台可以经过一定的算法对数据进行统计和分析,从而全面掌握土壤墒情信息采集与远程监测系统监测区域内的土壤墒情信息[11]。

4 大田农业土壤墒情数据管理应用系统

本系统采用B/S 架构,使用了MySQL、JavaScript和HTML 及PHP 等技术,利用云服务器进行研究及开发,以农田土壤墒情数据为控制对象,编写云端(服务器)和终端(PC 端)的程序。将采集系统采集到的土壤墒情参数(包括土壤湿度(Vol%)、土壤温度(℃)和土壤酸碱度参数(PH)进行汇总、处理和分析并以列表、图形和地图等形式进行显示,便于云端用户在不同时间和范围内查看土壤墒情的监测数据[12]。大田农业土壤墒情数据采集系统登录界面如图8 所示。

图8 大田农业土壤墒情数据采集系统登录界面

4.1 系统设置管理

系统设置主要用于人机交互界面样式的管理和对DTU、采集器的配置。系统支持在“系统设置”板块中配置系统名称、logo、 背景及主题颜色等信息,便于使系统人机交互体验更加友好。

关于DTU、采集器的配置主要体现在系统“采样点位” 板块,需在编辑点位信息时设置正确的DTUCODE、传感器数量及订阅、推送设置。采集设备与采样点绑定通过添加和修改采样点内的通讯信息进行。通讯模块名称自定义即可;DTUCODE必须填写配置DTU 时的ClientID;传感器数量配置为2;订阅和配置DTU 时订阅的连接相同(ClientID/bwget);推送和配置DTU 时推送的连接相同(ClientID/bwupdate);当IOT 采集设备上线后会查询数据库内采样点信息自动进行采集设备与采样点绑定,绑定成功后采样点即可正常查看和接收采样数据。

4.2 数据查看和应用

关于数据查看和应用,系统支持在“账户管理”配置不同的管理员账户。因采样大田不止一片,遂应首先在“村镇管理”板块中设置数据采集目标大田的所属行政村镇区划,在国家行政区划省市区的基础上可自定义编辑村镇及下属村落。采集到土壤墒情数据后可以此为条件进行数据统计。村镇管理界面如图9 所示。

图9 村镇管理界面

在实际应用中经常存在一片面积较大的田地虽然分属不同村落,但田地相邻或相近,存在一定共性的情况。所以系统可在“地片管理”板块中设置大片采样地片的面积、采样深度、地图定位中心点等信息,如设置首页关注,则可在登录系统时第一时间查看到此地片土壤墒情图表。与地片管理相似,在“地块管理”板块中除设置其面积、采样深度、地图定位中心点等基础信息外还可以选择与已设地片的相关从属关系。在一个采样地片(地块)内可配置多个采样点。采样点越多,测得数据则更有说服力。配置采样点时除选择所属地片、地块信息外应合理选择采样点位置,并上传实际定位。

开始采样后,可随时根据地片、地块查看系统数据统计,也可直接查看采样点详细数据。其中,地块、地片统计数据为平均值,采样点详细数据为实际值。如图10 所示。

图10 采样统计详细数据

除数据统计外,系统登录首页可直观绘制采样地片、地块的平均温度、湿度及酸碱度图表,还可以通过地图直接显示田地所在位置,如图11 所示。

图11 采样地块地图显示

点击选择某一具体地片后,可查看该采样地片的详细数据,如该地片的10cm 处温度、 湿度、PH值以及这一段时间的变化曲线,修改图标时间区间可以绘制同一地片不同季节的土壤墒情变化情况,如图12 和图13 所示。

图12 采样点平均温度、湿度及PH 值

图13 采样点位温度湿度及PH 值变化曲线

5 结语

基于云平台的大田农业土壤墒情数据采集监测系统主要针对农田土壤墒情监测的需求,可以实现对土壤的温度、湿度及PH 值的纵向分梯度实时监测。该系统操作简单,功能齐全,界面清晰,便于推广。相关农业技术人员可以通过该系统对历史数据进行分析整理,能够为农作物的生产管理提供有效的数据支撑,且为后续的实现土壤墒情的智能决策、 自动预备和自动水肥一体化等功能提供依据,并且对指导旱作节水农业生产、抗旱减灾、农作物的科学补给用水等具有极其重要意义。

猜你喜欢
墒情大田服务器
墒情会商,助力备耕春播
“大田后生仔”歌唱家乡
通信控制服务器(CCS)维护终端的设计与实现
土壤墒情监测的意义与技术规范
小田变大田破解农地零碎化
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
“小田并大田”要有序推进
开封市土壤墒情监测系统建设研究