APP下载

基于Lora的智慧农业移动端系统设计

2020-01-03张伟

计算机测量与控制 2019年12期
关键词:服务器终端监控

,张伟

(1.湖北大学 计算机与信息工程学院,武汉 430062; 2.烽火通信科技股份有限公司,武汉 430073)

0 引言

传统农业生产主要依赖人工,生产效率难以提高,极易受环境气候的约束,难以形成产业化、规模化[1]。为了减小以上限制,实现生产的现代化,智能农业物联网应运而生。智能农业物联网依托物联网、大数据、云计算等技术[2],实现对农业生产、加工、销售等各个方面的优化。

现今,农业物联网在我国的产业化仍处在进行中。当前农业物联网面临的主要问题是无论是前期开发还是后期维护都需要投入大量成本,并且实际的农业生产人员难以准确使用农业物联网系统。基于Android平台的农业物联网系统,通过LoRa无线网络结合以太网/4G网络,将感知层采集的传感器信息、实时监控视频等数据上行发送至农业物联网智能云服务器[3],通过云服务器将数据分发至移动终端。Lora网络成本低、可靠性高,结合农业物联网智能云平台使得开发及维护成本降低。科研人员及农业生产人员通过Android手机、平板等移动设备远程查看并控制智能农业物联网,避免了系统复杂难以操作等问题。

本文基于Android平台对农业物联网移动终端软件进行设计,使用户能在具备网络的任何时间、任何地点对农业生产进行查看以及控制。

1 系统设计

1.1 系统整体设计

系统整体架构可分为感知层、传输层和应用层。智慧农业系统通过感知层收集农业大棚内的各项环境数据、监控视频,感知层的数据使用Lora无线网络进行传输,每个LoRa基站可以传输多个农业大棚内收集的数据。系统将感知层收集的数据经过有线、无线网络发往应用层。应用层包括云服务器、云数据库及移动终端。云服务器实现对上下行各项数据的处理,云数据库实现对相应数据的存储管理,移动端实现对数据的展示实现与用户的交互。系统整体架构如图1所示。系统支持对数据的上行下行双向传输。从下自上时,传感器收集各个农业大棚的环境数据,经过Lora自组网络发往Lora基站,Lora基站经过有线、无线、3G/4G网络传输将数据发送至云服务器,云服务器对数据进行处理,用户通过移动客户端实现对数据的访问。自上而下时,用户通过移动端发出指令,云服务接收指令并处理发放,云服务器通过有线、无线、3G/4G网络将指令发往Lora基站,Lora基站通过Lora网络将指令发往对应控制设备。

图1 系统整体架构

1.2 通信协议设计

系统上下级以不同的协议传输数据。Lora节点与Lora基站以Lorawan协议传输数据,Lora基站与云服务器以tcp/ip协议传输数据,云服务与移动端以http,websocket等协议传输数据。系统设计5种通用帧结构用于系统数据的上行下行传达。分别为上行数据帧、上行到达应答帧、上行执行应答帧、下行控制指令帧和下行设备扫描帧。其中上行数据帧携带感知层采集的各项数据;上行数据帧发出后,上行到达应答帧向下层反应数据到达情况;下行控制指令帧携带从移动端发出的指令;指令到达下层,上行执行应答帧向上层反应指令到达情况;下行设备扫描帧用于启动感知层各个各个设备。

Lora基站、云服务器和移动端等各层的通信协议上荷载通用数据帧,每层对数据帧进行拆包、数据处理、装包然后发出。通用数据帧格式如图2所示,包括开始、类型、站点id、大棚id、设备类型、数据内容、校验位和结束字节。

图2 数据帧格式

2 移动端设计

2.1 移动端系统设计

Android平台发展迅速,2019年安卓系统的份额已经达到87%。本文旨在实现移动终端与云平台之间的数据交互,使得用户在远程状态下可以通过网络对农业生产数据进行访问和控制,即实现一个C/S架构的应用系统。

基于Android平台的移动终端是用户对农业物联网进行操作的入口。依据主要功能可以划分为用户管理、数据监控块、设备控制和系统设置共4个模块。

用户管理模块实现用户登陆与用户权限管理。数据监控模块采集并实时地显示农业大棚外内的光照强度、风力大小、降水强度、温度、湿度、二氧化碳浓度等影响农业生产的环境数据,各个设备运行状态以及监控视频。设备控制模块通过数据采集模块采集到的各项数据对农业大棚中生产设备[5],包括对内外遮阳、顶通风、水帘补水、苗床灌溉、肥料搅拌、施肥泵、增氧机、照明和热风机等,进行手动或者自动控制,并对各种设备进行添、删除等管理操作。系统设置主要是对农业大棚的各项参数如环境数据阈值、设备控制参数进行设置。功能模块如图3所示。

图3 移动端功能模块

2.2 开发环境

云平台服务器使用JAVA语言进行开发,使用jdk8在IDEA软件进行开发,使用mysql数据库,1核cup、2G内存的阿里云服务器。

Android移动终端使用JAVA语言进行开发,使用jdk8在Android studio软件进行开发。调试环境为一台Android8.1.0系统版本的小米手机。

3 功能模块实现

3.1 用户管理模块

用户登陆模块需要实现用户登陆和用户注册功能[6]。当用户登陆时,移动终端发起请求时,云服务器接收用到请求,并在云数据库中查找用户信息进行验证。第一次使用的用户需要进行注册。移动端使用MVP架构使得登陆注册的界面与数据的交互分类。MVP架构可以分为以下三个层面:

View层:Android 的Activity或Fragment通常用作View层,负责对登陆注册页面进行数据展示,便于实现界面交互功能。

Model层:即图3中的Repository,Model层将通过网络请求云服务器,取得数据库信息,验证用户登陆。

Presenter层:对View层和Model层进行逻辑连接与处理。

View层和Model层不直接进行交互,在Presenter层以面向接口编程方式实现功能。View层和Model层以接口形式引入到Presenter层。Presenter层将View层和Model层隔离,并将具体实现代码交由Presenter接口实现类处理,保证View层和Model层解耦合,易于测试和维护[7]。其实现过程如图4所示。

图4 用户登陆/注册流程图

3.2 用户权限管理

智慧农业移动端系统拥有查看各项环境、设置环境参数阈值、查看监控视频、查看设备运行状态、控制设备运行状态及管理设备等功能。不同用户的使用需求不同,并且出于对智慧农业移动端系统的安全保障,需对用户进行权限分类管理。普通用户可以查看当前数据监控模块中的环境数据和监控视频。一级管理员可以查看数据监控模块的所有数据并拥有设备控制操作权限。二级管理员拥有设备控制管理权限和系统设置权限。三级管理员可对账户管理、站点管理等进行操作。每级管理员拥有当前及以下等级用户权限。权限管理流程如图5所示。

图5 权限管理流程图

3.3 数据监控模块

数据监控模块包括环境数据、监控视频和设备运行状态监控,图6为数据监控模块流程图。

图6 数据监控流程图

视频监控使用HLS协议,延时在可接受范围内。HSL协议的特性使得客户端在不同的网络情况下,可以依据网速对视频流在不同的码率中进行切换,使用户能更方便在远程查看农业大棚中情况。监控视频在移动终端上通过HTML5播放,HTML5的VIDEO标签支持HLS协议[8]。

环境数据监控和设备运行状态监控使用WebSocket协议。感知层将底层的各项数据通过网关/DTU发送到云服务器。云服务器将收到的数据解析为不同的环境信息,并持久化到数据库,同时通过WebSocket协议与移动终端传输信息。

WebSocket协议是HTTP/1.1协议的升级,可以实现基于服务器推送并保持长连接[9]。在移动终端对服务器发起请求时,服务器读取HTTP请求首部,读取相应的WebSocket请求字段,服务器将请求识别为WebSocket请求并与移动终端建立连接。

云服务器端实现WebSocket的onopen, onmessage, onclose和onerror消息。当成功接收到一个WebSocket请求后,建立一个WebSocket连接接收onopen消息并将这个WebSocket连接加入队列。当WebSocket连接接收 onclose和onerro消息[10],表明连接出现错误或已经关闭。服务器将当前WebSocket连接从连接队列中移除。当收到传感器信息时发送当前队列所有WebSocket连接的onmessage消息,将传感器信息发送至移动终端。

移动终端在用户登陆成功后,立刻发送一个Webocket请求建立与云平台建立连接,等待推送消息。为了保证WebSocket连接能持续运行在后台,移动终端使用Android四大组件之一的Service组件。通过Service组件保持WebSocket连接的使用方法如下:

1)Activity组件在收到服务器返回的登陆成功信息后,通过startService()启动服务,Service服务在生命周期的onStartCommand,服务开始运行。

2)Service组件在Android系统中优先级比较低,当内存不足时会被系统回收。通过startForeground()开启前台服务,将Service通过通知的方式运行在后台。

3)在onStartCommand()中对WebSock- et连接进行初始化并发起连接。当WebSo- cket接收到服务器发送的onMessage消息,Service组件发送广播,向展示环境信息的Activity和Fragment发送消息。

4)当用户退出登陆,Service进入onDestroy状态,WebSocket发起onClose消息,断开WebSocket连接。

3.4 设备控制模块

设备控制模块包括设备控制和设备管理,设备控制模块流程如图7所示。

图7 设备控制流程图

设备控制主要实现移动端控制用于农业生产的设备,如灯光、通风、水帘、肥料搅拌等。当用户通过移动终端对任意一个控制设备进行操作时,移动终端会对云服务发送一个POST请求,并带有操作类型id的JSON请求体。

设备管理主要实现对设备的添加、删除等操作。在实际农业生产的不同时期,对各类设备的需求有所不同,因此涉及到设备的添加、删除管理。移动终端会对云端发送POST请求,发送带有操作设备id和操作类型的JSON请求体。

移动终端的网络请求架构使用Square公司的Retrofit2。Retrofit2是常用于移动端开发的OkHttp网络请求框架的升级。通过Retrofit2构建网请求的方法如下:

1)创建一个实体类,用于接收服务器端发送的数据。

2)创建一个用于Http请求的java接口,接口标注表示Http请求方法和参数的注解。方法注解与请求方法同名,用户登陆使用POST请求方法,用于登陆的接口使用@POST标注。接口使用@Body标注为非表单请求体,请求体为JSON类型。

3)构建网络请求实例。创建Retrofit事件,设置网络请求的URL(统一资源定位符)设置OkHttp请求的连接超时等参数,设置Gson数据解析器用于处理服务器返回的数据,通过retrofit.create(ApiService.class) 创建网络请求。

4)转换线程,发送网络请求,并对服务器返回数据进行处理。

3.5 系统设置模块

系统设置模块主要实现对底层设备包括数据监控设备和控制设备进行初始化设置和各项参数调整。对环境数据可以进行采集频率设置,采集频率包括秒、分钟、小时等单位;对数据精度进行设置,如对光照强度单位设置;对环境数据阈值进行区间设定,当高于或低于阈值区间时,云服务器向移动终端推送警报信息。对设备控制可以设置设备的运行情况,如运行速度、运行方向等。根据生产人员的经验,在系统运行初期进行初始化系统设置。系统进入稳定运行后,分析已产生的数据对系统参数进行相应的调整以根据满足生产。系统设置流程如图8所示。

图8 系统设置流程图

移动终端会依据系统设置内容通过Retrofit2向服务器发送http请求,请求体为包括设置设备和设置内容的JSON字符串。

4 系统测试

4.1 系统功能测试

移动终端主要测试对服务器的请求能否正常提交,云服务器是正常接收传感器数据并通过WebSocket与移动终端进行连接各项传输数据,视频监控监控能否实时传输到移动终端,移动端控制指令能否正确发送。

测试时以测试用户test登陆,如图9所示。当test用户登陆成功时,移动终端开启与云服务器的WebSocket连接。如图10所示,建立WebSocket连接成功,移动终端接收的消息可以在数据监控模块查看,表明数据上行成功。

图10 部分环境数据

移动终端可以对底层多个控制设进行多项操作。如图11所示,测试用户控制外遮阳1开启正转,说明数据下行成功。

图11 外遮阳正转指令

如图12所示,移动终端可以在任意时间查看监控视频。

图12 视频监控夜间情况

4.2 系统性能测试

系统功能测试主要测试websocket连接传输数据的频率和移动端发起http请求控制底层设备的延时。

在系统设置页面将数据采集设备的设采集频率设置为为3分钟。以一天中四个时间段测试,记录每个时间段平均时间间隔,测试结果如表1所示。

表1 采集频率测试结果

从移动端发起对控制设备的操作请求,记录每组请求从发起请求到完成操作的平均时间,测试结果如表2,用户从移动端发起指令到底层设备响应延时在合理范围以内,用户使用感流畅。

表2 设备控制延时

测试结果表明,移动终端对服务器的请求,与服务器的WebSocket连接以及视频监控的传输等功能都正常运行,能够满足农业物联网的各项需求。

5 结束语

本文旨在设计基于Lora的智慧农业Android移动终端系统。移动终端实现功能帮助农业生产人员或研究人员,在任何时间、任何地点可通过数据采集模块查看农业大棚的各项环境数据,通过视频监控模块掌握作物的生长情况。通过对各项环境数据实时情况的分析,农业生产人员或研究人员可以使用设备控制模块调整农业大棚的环境以满足作物生长。经测试,智能农业移动终端系统运行稳定。通过对环境数据的长时间收集,可以实现对各项设备的自动控制,软件具有较强的可扩展性。

猜你喜欢

服务器终端监控
The Great Barrier Reef shows coral comeback
复杂线束在双BCI耦合下的终端响应机理
基于无人机的监控系统设计
X美术馆首届三年展:“终端〉_How Do We Begin?”
PowerTCP Server Tool
BlackJumboDog
基于声波检测的地下防盗终端
2018年全球服务器市场将保持温和增长
“吃人不吐骨头”的终端为王
科学训练监控新趋势——适时监控