基于Laravel框架的农业物联网数据采集管理系统开发及应用

2019-09-18 06:46:52籍延宝姚鑫锋刘士辉田明璐李琳一
上海农业学报 2019年4期
关键词:页面报警框架

籍延宝,姚鑫锋,刘士辉,马 超,田明璐,袁 涛,李琳一*

(1上海市农业科学院农业科技信息研究所,上海数字农业工程技术研究中心,上海201403;2湖南农业大学,长沙410128)

随着物联网技术的飞速发展,在农业领域应用物联网技术已不再是难题。农业物联网就是将物联网技术应用在农业生产、经营、管理和服务中[1-9]。物联网的应用离不开数据,数据是实现生产环境控制和智能化管理的基础,数据采集管理系统在整个数据的生命周期中扮演了重要的角色,它既可以缩短一个数据的“数据里程”,即数据从采集到决策使用的整个持续过程的长短,又可以方便数据的分发和共享,是数字化农业生产的重要基础环节。

目前,国内外无线传感器网络技术取得了很大进展,在农田信息采集方面发挥着重要的作用。但现有的研究主要侧重于田间观测信息采集和信息传输等前端技术的研究,而在后端对观测获取的数据处理、数据应用等方面的研究较为薄弱。此外,基于物联网的数据采集系统繁多,但每个公司生产的设备大部分只能结合各自的硬件设备进行设计,用户对产品的选择空间大大降低、更换设备的成本升高,使用成本也居高不下。部分物联网系统由于架构设计不适合扩展和迭代,导致新功能扩展困难。随着物联网的快速发展,硬件部分已经不是技术难题,但是针对软硬件结合,并把数据采集到后端进行应用处理,对合作社、普通种植户仍是一个不小的挑战。

开发基于Laravel框架的农业物联网数据采集系统,可满足以下三方面的需求。第一,系统采用轻量化、易扩展架构设计,并适合针对小型农场用户按需迭代。物联网数据采集系统面对着大量数据的采集和存储,物联网硬件厂商的服务器端软件为了通用化或标准化考量,平台多为Java语言开发,功能固定,代码量大,在小农户的使用过程中,迭代困难,价格高昂。第二,针对农业领域应用场景多样、数据产品众多的特点,设计一套统一的数据录入接口。在物联网信息采集中,由于传感器和无线传输网络等设备厂商众多,存在着感知数据格式多样、数据组织形式不同[10]的问题,如何把感知数据转换为格式统一、便于后续利用的形式是当前遇到的问题。若使用统一的硬件管理接口,管理所有农业物联网硬件设备,即兼容市面上主流的物联网采集硬件,这在很大程度上降低了用户的准入门槛和硬件产品选择空间。第三,采用开源的组件设计,降低成本,同时提供物联网服务。市面上已有的物联网系统,在农业领域应用,价格相对较高,中小规模农业用户很难接受。但是物联网服务对这些用户很有必要,例如系统内置阈值设置,能够根据实时的传感器数据主动判断分析数据,如有异常可以及时告知用户。

1 系统总体框架

系统总体框架由感知层、数据层、服务层和应用层组成(图1)。

图1 系统总体框架图Fig.1 Overall framework of the system

感知层是用于数据的存储,包括了用户填报的数据、控制设备数据、以及气象站、数据采集器等设备的数据。此外还有系统应用过程中涉及到的图像和文档数据。

数据层是用于存储感知和用户上报的数据,以及系统中报警配置信息。

服务层是以Nginx和Workerman作为服务器,PHP语言作为内容动态解析语言,整个服务层为系统的数据接收、存储和分析提供支持。

应用层是整个系统的核心,提供可视化界面和用户功能。包括基于Bootstrap前端框架的系统页面,以及数据管理、设备管理和组织管理等功能。

2 关键技术

2.1 统一的设备管理编码

同一个组织或部门会有不同的监测区域,系统中将这样的一个区域定义为一个节点,节点包含了多个网络类型,每个网络中有多个设备(感测设备或控制设备)。采用组合编码方式设计采集设备的设备号[11](图2),长度共22位,分为组织码、节点码、网络类型、网络编号和采集点编码等部分,其中网络类型长度2位,取值范围是01—99,不同的数值代表不同的物联网类型,例如01代表设施物联网,02代表水产物联网。

图2 物联网设备编码结构图Fig.2 Coding structure diagram of internet of things devices

2.2 统一的数据管理接口

不同公司的物联网采集设备中用到的数据组织形式不同,系统基于面向对象原理,集成了主流数据采集设备的数据采集接口,每一个采集接口作为一个计划任务在系统中运行,结合Laravel框架自带的队列(Jobs)管理机制,系统会根据不同厂商的数据采集协议自动匹配相应的数据采集逻辑,将数据按照统一的格式存储到数据库中。数据按照统一格式入库,便于后续的分析和利用,解决了不同厂商数据格式和接口结构不同带来的系统兼容性不足的问题。

2.3 报警阈值的设定与告警

在作物的种植过程中,温室内的空气温度、空气湿度不能过高,需要设定报警阈值以提示种植者进行简单的环境控制。因此,系统中每一个物联网传感器都可以设置阈值限制,例如光合作用是一个光生物化学反映,所以光合速率随着光照强度的增加而加快。在一定范围内几乎是呈正相关。但超过一定范围之后,光合速率的增加转慢,当达到某一光照强度时,光合速率就不在增加,这种现象称为光饱和现象。各种作物的光饱和点不同,这就决定在光照强度过高的时候需采取必要的人工措施进行干预,防止过高的光强引起植物萎蔫或光合作用效率降低。实际生产中完全可以根据作物的不同来设计光强的阈值,通过开启内遮阳或外遮阳进行控制。图3反映出系统中添加环境报警配置信息。

图3 报警流程Fig.3 Alarm process

3 系统设计

3.1 系统功能设计

系统总体上分为数据管理、组织管理、节点管理、感测设备管理、控制设备管理、报警管理、用户管理和配置管理8个模块(图4)。其中,组织管理是管理用户所属组织的模块,包括种植户、生产合作社、公司等团体。节点管理用于管理某一个组织所拥有的物联网节点信息。同样,感测设备管理和控制设备管理分别是管理某一个节点中所布设的传感设备或控制设备。报警管理是数据的超阈值、设备的掉线等报警信息的管理。配置管理包含了系统常用的功能配置信息的管理。

图4 系统结构图Fig.4 Diagram of system structure

3.2 数据库设计

系统的数据库设计如图5所示,系统包含了农场、基地、地块3个管理级别,同时针对传感设备和控制类设备均有报警设置和消息的管理。

图5 数据库实体关系图Fig.5 Relationship graph of database entities

4 系统实现

为了采集、分析和利用温室环境数据,系统应具有接收温室内传感器、环境控制设备传递回来的数据的能力,并将这些数据进行与历史数据、作物生长模型进行比对或模拟,最终做出决策,实现温室设备的管理、作物生长管理的辅助决策功能。

4.1 后台工具组件

为了实现系统的稳定性强、易扩展、快捷开发和部署、低成本、并适合针对小型农场用户按需迭代的需求,系统采用轻量化、易扩展架构设计,完全采用开源组件进行开发。总体基于LNMP(Linux、Nginx、MySQL、PHP)架构,采用PHP框架Laravel 5.3开发。Laravel框架是一个在众多Web应用项目中被广泛使用的语法优雅的PHP语言框架,它具有大量的帮助方法,并且基于MVC(Model-View-Controller)模式[12],通过Composer进行代码包管理,具备了系统开发中大多数需要,并且跨平台移植非常方便,能够快捷的开发和部署应用。特别是针对系统重构和迭代频繁的应用,此框架能够很好胜任。

4.2 服务器端数据接收功能

研究在田间生产环境下,利用无线采集节点,基于GPRS技术将数据发送到后台指定端口。后台采用开源框架Workerman作为通讯组件与硬件进行通讯,Workerman是一款纯PHP开发的开源高性能的PHP socket服务器框架。被广泛的用于手机App、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。拥有异步Mysql、异步Redis、异步Http、异步消息队列等众多高性能组件。

Laravel有便捷的命令管理功能,同时具有很强的可扩展性。利用这个特性,Laravel自带artisan命令工具,通过扩展artisan命令,创建workerman服务的管理命令,使得后续的开发、部署、调试应用程序变得非常方便。

4.3 用户接口

系统采用Javascript、HTML5、CSS3以及Bootstrap前端框架设计用户接口(图6),遵循自适应的页面设计原则,使得系统页面会根据用户使用的媒体设备的屏幕尺寸进行自动的调整页面内容展示方式和大小,即无论是手机、平板电脑还是普通桌面电脑访问该系统都能够取得良好的用户体验。

图6 后台管理页面Fig.6 Background management page

后台管理页面主要用于管理组织、节点、人员、设备和报警信息。管理员能够较新增、修改、删除和查询任意的组织、节点、人员、设备等信息,同时能够管理报警信息和处理设备异常和环境异常。

数据图表显示页面用于对监测数据的可视化管理,系统能够针对任意一个传感器的数据构建曲线图(图7),便于管理人员掌握这个生长过程的环境数据信息。同时,该功能也能够查看控制设备的整体控制记录生成的控制图表,便于管理人员后期优化整个生产过程的设备控制。

图7 数据图表显示页面Fig.7 Data graph disp lay page

图8 报警信息页面包含传感器等监测设备和环境控制设备的管理,其中包括报警的传感设备或控制设备、阈值范围以及建议采取的措施。

图8 报警信息管理页面Fig.8 Alarm information management page

5 结论

通过系统压力测试结果显示(图9—11),Workerman能够同时服务100个并发线程,连接Workerman 100万次,每次连接发送短连接请求,经证明该架构能够实现吞吐量2.3万次/s,完全满足大多数情况下田间环境数据采集的应用需要。

图9 压力测试环境信息Fig.9 Stress test environment information

图10 压力测试逻辑Fig.10 Stress test logic

针对小型农场用户的物联网需求,基于开源组件构建了基于Laravel框架的农业物联网数据采集管理系统,系统具备轻量化、成本低、易迭代的特点,能够针对不同的传感器进行数据的采集和存储,并对温室设备进行统一管理,实现了农田温室环境的基础性信息采集,为后续的数据分析、利用和共享奠定了基础。此外,该系统能够监测设施内的环境状况,在必要的时候能够发出报警告知用户。尤其是数据管理功能,减少了用户的设施巡查时间,降低了生产者的投入。

通过在上海市农业科学院庄行综合试验站的应用,用户对该系统提出了建议,主要是针对不同厂商的传感器在使用前进行统一的数据标定,以及后期在系统中内建标定模型,将数据进行统一的转换,实现采集数据的标准化。此外,一个完整闭环的数据管理系统应该是包含了采集、模拟、预测和控制4个环节。所以,后续的研究可以加入自动控制设备的控制指令,能够在线进行手动或自动控制灌溉、通风等设施设备。通过感测控制系统传回的数据,自动调整耕作环境的状况,包括超阈值调控、墒情调控和积温调控等,甚至可以通过调控温室环境,调整农产品的上市日期。

图11 压力测试结果Fig.11 Stress test results

猜你喜欢
页面报警框架
刷新生活的页面
保健医苑(2022年1期)2022-08-30 08:39:14
框架
广义框架的不相交性
LKD2-HS型列控中心驱采不一致报警处理
WTO框架下
法大研究生(2017年1期)2017-04-10 08:55:06
2015款奔驰E180车安全气囊报警
一种基于OpenStack的云应用开发框架
一种基于OpenStack的云应用开发框架
死于密室的租住者
奔驰E260车安全气囊报警