APP下载

基于NB-IoT的农业数据采集系统的设计

2020-04-15王英强张卫钢王红刚

计算机技术与发展 2020年2期
关键词:插件农作物联网

王英强,张卫钢,王红刚

(西安思源学院 电子信息工程学院,陕西 西安 710038)

0 引 言

随着中国农业信息化的发展,精准农业、智慧农业逐渐成为农业发展的新需求,农业数据也呈现出爆炸式的增加,数据从存储到挖掘应用都面临巨大挑战。物联网、云计算在农业领域的应用已经成为农业信息技术发展的必然趋势[1-2]。中国也非常重视农业信息化的建设。2016年12月31日,农业部发布了《关于推进农业农村大数据发展的实施意见》,在意见中制定了发展目标:到2020年底前,逐步实现农业部和省级农业行政主管部门数据集向社会开放,实现农业农村历史资料的数据化、数据采集的自动化、数据使用的智能化、数据共享的便捷化[3]。农业信息化的建设需要有大量的数据作为支撑条件,这些数据不单纯作为统计数据,更重要的是基础数据,例如农作物生长环境的数据等。如何收集农作物的生长环境数据,对农作物的生长环境进行监控,进行数据预警、分析等等,成为当前农业现代化的一个重要话题。

目前,大部分地区农业数据的采集主要集中在数据统计方面,也进行了相应的信息化建设,但是在农作物的生长环境的数据自动采集上,中国还处于比较落后的阶段。目前,国内的诸多学者也对如何采用无线网络[4-5]、物联网等技术实施农业数据采集进行了研究。例如,采用GPRS与LoRa无线物联网技术,对农作物进行全天候、全方位、立体化的动态实时监测与采集[6],实现农业节水灌溉远程监控系统[7],农业区进行自动气象站监测[8]。

在现阶段对农作物生长环境数据的采集,主要采用GPRS、ZigBee、LoRa等技术,存在功耗大、开发成本高、难度大等缺点,而采用物联网(IoT)可以有效提高数据的采集效率,增强农业的运营效率[9]。同时,国内农业数据采集的研究主要侧重于采集设备的研究,缺少对采集设备的管理及数据的管理与分析的研究。针对这种情况,文中设计了基于NB-IoT的农作物生长环境数据采集系统,实现农作物生长环境数据的自动采集,同时对数据进行管理、分析,对检测设备进行管理维护,对设备异常、环境数据异常进行提醒报警,为农业大数据提供基础数据服务。

1 解决方案

为了有效解决数据的采集问题,在该系统中,采用NB-IoT物联网作为数据传输网络。数据的采集过程如下:数据采集设备在采集到数据后,通过NB-IoT网络将数据传输到中国电信的物联网平台,应用系统从电信物联网平台上获取数据,进行数据管理及分析[10]。

1.1 NB-IoT网络

NB-IoT是一种全新的基于蜂窝网络的窄带物联网技术,是3GPP组织定义的国际标准,可在全球范围内广泛部署,聚焦于低功耗广域网,基于授权频谱的运营,可直接部署于LTE网络,具备较低的部署成本和平滑的升级能力[11],并且具有覆盖能力强、成本低、功耗低、超强链接等特点[12],可以广泛应用于智慧农业、智能设备、智慧城市、车辆跟踪、智能计量、环境检测等方面[13-14]。目前,国内也对NB-IoT物联网的应用进行了一些研究。例如:NB-IoT在云平台无线数据监控、智能井盖终端、农产品供应链、温室温度智能调控、WEBGIS能源管控系统、城市智慧路灯监控、监测管理系统的应用[15-21]。

1.2 系统优点

通过与目前的数据采集系统相比较,该系统具有以下优点:

(1)系统扩展性强,采用“插件式”的设计思路,可与地理信息系统和办公自动化系统实现无逢连接,为农业信息系统的整合打下良好的基础。

(2)系统对采集设备进行24小时监测,可实时掌握数据采集运营情况,为设备管理提供科学依据。

(3)具有预警提示功能,系统对农作物生长环境进行实时采集,当低温、缺水、缺肥时,管理部门可在第一时间做出处理反应,对提高农作物的产量具有重要意义。

2 系统设计

本节将对基于NB-IoT的农作物环境数据采集系统进行设计,主要从系统结构、数据库、编解码插件、实时数据接收系统、Web端管理系统等几个方面进行阐述。

2.1 系统结构设计

文中利用传感器采集农作物环境的数据,例如土壤的温度、湿度、养分等,通过NB-IoT网络将采集数据上传到电信的物联网平台,编解码插件将上传的数据解析为Json数据后,接收数据系统将Json数据存入到系统数据库,系统Web端应用系统对数据进行展示、分析[22]。系统结构如图1所示。

图1 系统结构

下面对系统的各个组成部分进行说明:

(1)传感器节点:主要负责采集农作物生长的各项环境数据,土壤的温度、湿度、养分等,按照相应的通信协议生成相应格式的二进制数据。

(2)NB-IoT网络:主要负责将传感器采集到的数据传输到电信物联网平台。

(3)电信物联网平台:通过该平台的编解码插件将传输的数据转换为Json格式;下发相应的指令到相应的传感器设备上。

(4)获取数据系统:主要负责将电信物联网平台的Json格式的数据存入到Web端应用系统的数据库中。

(5)Web端应用系统:为用户的应用系统,主要有设备的管理、数据展示、数据分析、预警、基础数据字典的维护,例如用户管理、区域管理等功能。

2.2 数据库结构设计

在该系统中,数据库主要负责数据的存储与管理。在该平台中,除了要存储通过NB-IoT采集到的各种数据外,为了方便管理,还要存储设备信息、区域信息、预计信息等。系统中主要包含以下数据表:用户信息(UserInfo)、区域信息(AreaInfo)、设备信息(DeviceInfo)、设备状态(DeviceState)、采集数据(CollectData)、预警参数(WarningPara)等。系统数据库结构如图2所示。

图2 系统数据库结构表

2.3 编解码插件设计

在该系统中,插件系统与下位传感器监测设备紧密配合,对农作物的土壤各项数据进行检测报警,并对设备本身状态,例如电池电压等进行监测和预警。下位传感器在采集数据后,通过NB-IoT网络,将数据传输到电信的物联网平台。电信的物联网平台则通过编解码插件按照设计的格式将数据转换为相应的Json数据。对于每一种传感器,都需要根据相应的通信协议,编写相应的编解码插件。这为电信的物联网平台提供了非常好的开放性。该系统的编解码插件由两部分组成:

(1)Profile说明。描述一款设备的能力特征,包括设备类型、厂商、型号、协议类型名称以及提供的服务类型。在该编解码插件中,主要包括BasicInfo(基础信息)、Connectivity(连接信息)、DeviceInfo(设备信息)、DeviceState(设备状态)、CollectData(定时上报)等服务。

(2)编解码插件,主要实现设备和应用之间的语言转换。在该编解码插件中,主要实现以下数据的解析:

基础数据:主要包括电池的电压、电量数据。

连接信息:主要包括信号强度、信噪比等数据。

设备信息:主要包括设备ID、设备类型、设备SN、心跳时间、报警周期、采样周期等数据。

设备状态:主要包括设备的报警状态、布防状态、无线模块状态、电池状态、云端应答状态等数据。

土壤数据:主要包括设备采集到的土壤温度、湿度、有机质、碱解氮、有效磷、速效钾含等数据。

2.4 实时数据接收系统

实时数据接收系统主要实现从电信物联网平台获取数据,并将数据存储到平台数据库中。该系统采用Java编程语言,MySql数据库进行开发。为了提高数据接收效率,采用了多线程的方式来进行。在系统主要使用的线程有:

(1)GetDeviceList:主要负责从电信平台上实时获取设备列表,并在内存中维护系统的设备列表。在获取设备时,检测该设备在数据库与设备列表中是否存在。根据检测结果,决定是否将该设备存入到平台数据库,以及是否需要更新内存中的设备列表。

(2)GetDeviceData:主要负责从电信平台上获取设备上报的实时数据,并将获取到的实时数据(Json格式)解析为平台数据库的格式,并将数据存入到平台数据库中。因为同时会有多个设备上报数据,为了提高效率,采用批量写的方式,解决数据存储的效率问题。

2.5 Web应用平台系统设计

Web应用平台实现的主要功能有:

(1)设备管理:借助百度地图实现数据采集设备的添加、修改、删除等,利用百度地图获取设备安装的经度、纬度和具体的位置名称,并对设备的状态进行实时监控。

(2)数据监控:该功能负责从电信物联网平台获取采集到的实时数据,并将数据存放到系统数据库相应的数据表中。

(3)预警提醒:该功能首先设置土壤的湿度、温度、有机质含量阈值,如果检测到的数据超出阈值范围将进行报警,从而提醒进行浇水灌溉、保温、施肥等措施。

(4)数据分析:该功能主要负责对采集到的农作物环境数据进行分析,产生实时动态曲线变化图,实时状态图,报表等。

(5)区域管理:对采集设备所在的地方进行区域划分,方便对设备的定位与管理,同时为每个区域分配相应的负责人。

(6)用户管理:实现系统用户的增加、删除、修改、更新以及权限管理。

Web端应用平台的系统结构如图3所示。

图3 Web应用平台系统结构

3 系统实现与结果

在该系统中,编解码插件与实时数据接收系统采用Java编程语言实现;Web应用平台系统采用Spring MVC+Hibernate+Easyui(UI库)+Jquery+Ehcache等基础架构,数据库采用Mysql5.7进行开发。该系统使用的框架是Spring MVC框架,该框架是一个封装servlet层的框架,具有功能强大、业务代码可重用等特点。

下面以Web应用平台的数据实时采集为例,给出实现过程的源代码及采集数据结果。

public void datagrid(DqjlsjEntitydqjlsj,HttpServletRequest request,HttpServletResponse response,DataGrid dataGrid,Integerpage,IntegerpageSize) {

String sbSn="",sbMc="",qyBh="";

//获取查询参数

pageSize=dataGrid.getRows();

//调用dqjlsjMimidaoDao类中的方法,获取数据

Integer count=dqjlsjMimidaoDao.getCount(sbSn,sbMc,qyBh);

dataGrid.setTotal(count);

//设置dataGrid的数据源,显示数据

dataGrid.setResults(maplist);

}

通过该系统采集到的部分数据如表1所示。

表1 农作物生长环境部分采集数据

通过测试,该平台能够有效获取到农作物生长环境的实时数据及检测设备的状态数据,并且能够对异常数据进行报警提示,系统运行稳定,功能完善。

4 结束语

针对目前农作物生长环境数据采集的状况,提出了基于NB-IoT的农作物生长环境数据采集系统。通过物联网,采集设备将数据传输到IoT平台,解决了数据实时采集的问题;然后将数据实时接收到Web平台中,解决了采集设备管理、数据实时监控、分析与预警等问题。该系统运行稳定,功能完善,为有农作物生长环境数据的自动采集提供了一种有效的解决方案,同时也可以为NB-IoT在其他行业的应用提供参考和借鉴。

猜你喜欢

插件农作物联网
脐橙连上物联网 扫码便知“前世今生”
高温干旱持续 农作物亟须“防护伞”
俄发现保护农作物新方法
夏季农作物如何防热害
“身联网”等五则
《物联网技术》简介
《物联网技术》简介
厉害了!农作物“喝”上环保酵素
用好插件浏览器标签页管理更轻松
请个浏览器插件全能管家