APP下载

智慧农业监测系统设计

2022-01-14胡浩明陈康蓝贝蓓

科学技术创新 2021年35期
关键词:框图上位服务器

胡浩明 陈康 蓝贝蓓

(桂林电子科技大学信息与通信学院,广西桂林 541004)

目前传感器技术在农业中应用最普遍的领域就是精准农业和智慧农业。通过对气候、土壤、水、空气质量、作物成长、鱼禽畜的生长,甚至是设备和劳动力的成本以及可用性方面的实时数据采集,预测分析之后用来做出更科学、更精准的决策。另一方面,农业作为中国的基础产业,面临着农产品需求不断在增加、资源短缺、气候多变导致灾害频发。因此,如何以农业物联网技术为核心的信息化基础,提升农业信息化服务,打开智慧农业新局面,实现农业现代化和信息化的跨越式发展,成为一个热门的研究方向。

本文设计在智慧农业监测系统就是物联网的一个经典模式,分为硬件采集、终端发送、服务器处理、应用层调用等部分,在硬件设计中使用了专业的土壤和大气相关的传感器,使得数据更加准确和具有说服力。

1 智慧农业监测系统总体设计方案

在农业生产的管理过程中,目前大部分用户都是采用人工实地管理,这样的管理方式给用户带来很多的不便,而目前世面上的物联网技术,北斗导航定位技术、远程监控技术都已经很成熟,所以为了解决这些问题,本项目研究和设计一款智慧农业监测系统,该系统主要完成大气温度、空气湿度、土壤情况、位置信息等相关的数据采集,并通过无线通信技术发送给用户,以便用户实时了解情况,用户针对不同的情况采取不同的解决方案,以便提高农业生产管理效率。本项目的研究内容可以大致分为以下五个部分:

(1)设计一个硬件传感器采集电路进行数据采集并通过无线通信模块发送至总下位机,其中包括大气温度、空气湿度、土壤湿度、地理位置等数据。(2)设计一个总下位机,用于通过无线通信模块接收采集端发送过来的数据,最后通过串口将数据发送到数据监测终端(PC 端)。(3)搭建数据监测终端,该终端可以实现使用串口通信接收总下位机发送的数据、查看数据、将数据打包发送至指定的邮箱或者发送短信。(4)搭建数据库,用来存储数据方便后续对数据的开发。(5)开发网站和安卓端APP,可实现人机交互。

针对以上研究内容,系统的设计框图如图1 所示。

图1 总体设计框图

2 系统各部分具体设计

2.1 硬件方案设计

2.1.1 硬件系统设计

硬件系统分为五大部分:采集节点主控、传感器采集、无线通信组件、接收终端、PC 上位机。使用了LORA 模块进行将数据从节点发送终端的操作,使用ESP8266WiFi 模块将数据从硬件终端发送至TCP 服务器,TCP 服务器和HTTP 服务器共用一套数据库,可以直接将应用层连接起来。硬件设计框图如图2 所示,最终的效果就是在硬件采集的数据可以依次经过采集结点、接收终端、TCP 服务器、HTTP 服务器、PC 上位机。

图2 硬件设计框图

2.1.2 编程实现

采集设备程序的设计使用顺序结构的模块编程的编程方式。主程序设计框图如图3 所示。

图3 主程序设计框图

主程序的设计思路大致为:首先要规划好哪些变量是需要设置为全局属性的而哪些要设置为临时的,其次是由于采集节点有比较多的传感器数据,所以为了方便管理定义了一个结构体来存放,这样增强了代码的可读性和维护性。进入main()函数,先定义和初始化好相关的局部变量,然后对各个模块进行初始化,如:串口、GPS、各种传感器等相关初始化。接下来就是对设备的定位,GPS 开始获取数据,主控接收GPS 模块发送过来的数据并进行解析,如果重复获取数据都未能将必要的位置信息解析出来,可以认为设备当前位置的GPS 信号比较弱或者接收不到GPS 信号,这个时候程序会放弃GPS 模块,将直接往下执行。接下来就是等待接收端发送过来的信号,如果收到则开始采集数据和发送数据。

终端设备程序程序设计主要是无线串口与采集设备通信和WIFI 模块与TCP 服务器通信。主函数的设计思路就是将所有模块都开始初始化之后开始对WIFI 模块进行联网测试,在指定WLAN 的情况之下,将自动完成接入网络,并且与TCP 服务器连接,如果联网成功,则开始循环发送信号给各位从机接收采集设备的数据。

在系统设计中,由于需要实现多对一的通信加上串口不能同时进行多对一的通信,所以最终选用了广播与监听模式,同时需要采用轮询机制,一点对多点通信, N 个从节点轮流与中心点通信,从节点上传,等待中心点收到后返回确认,然后下一个节点再开始上传,直到所有N 个节点全部完成,一个循环周期结束该结构本质上还属于点对点通信,但是加入了分时处理, N个从节点之间的频点可以分开,也可重复使用。优势在于单项目成本低, 不足之处是仅适合从节点数量不大和网络实时性要求不高的应用。

2.2 WEB 设计方案

Web 主要由前端交互界面设计,后端数据处理两部分组成。其中前端主要进行用户交互、数据可视化分析、地图构建与定位,后端主要进行数据的存储、传输和对前端请求的响应。其结构框图如图4 所示。

图4 WEB 设计框架

各部分具体功能为:(1)前端设计注册界面,获取用户基本信息并上传到后端。(2)前端设计用户登录界面验证用户登录信息。(3)前端获取传感器数据并进行数据可视化分析。(4)前端设计监测点地图并实现传感器定位。(5)后端设计数据库结构保存用户注册信息。(6)后端监测并接收前端的请求并做出相应的应答。(7)后端获取用户各个传感器的数据并进行动态处理。(8)前后端通过AJAX 进行数据交互。

2.3 APP 设计方案

2.3.1 设计框图

APP 部分主要分为三大部分,主要包括数据地块数据获取部分、系统信息提示部分、个人信息管理部分。具体结构图如图5 所示。

图5 app 设计框图

2.3.2 功能介绍

2.3.2.1 数据获取部分:利用HTTP 请求从服务器的数据库上获取地块的数据,之后在进行数据解析在APP 上呈现出来。

2.3.2.2 系统信息提示部分:每隔十分钟获取一次服务器数据的各项数据,在APP 内对与标准数据进行对比,数据出现异常则给用户发送数据异常消息。

2.3.2.3 个人信息管理部分:通过HTTP 数据请求和数据上传方式,获取和修改个人信息。系统更新通知会通过“系统通知”模块发送给用户。

2.3.3 定位实现

节点定位使用了高德地图的API 接口服务,在高德地图API 官方网站下载Android 的SDK 包就可以在Android studio中使用API 提供的接口函数,将数据的经纬度传入,实现在地图上标点并且显示文字信息。

2.4 PC 上位机实现

接收终端通过网络通信将数据发送到TCP 服务器之后,TCP 服务器会将数据进行解析和存进数据库,PC 上位机属于应用层,与HTTP 服务器直接通信,在上位机发起HTTP 请求,将相关的参数和URL 发给HTTP,HTTP 会返回一定的json 格式数据,在上位机只需要解析就可以获取数据。

Python 提供了多个图形开发界面的库,Tkinter:Tkinter 模块(Tk 接口) 是Python 的标准Tk GUI 工具包的接口Tk 和Tkinter 可以在大多数的Unix 平台下使用, 同样可以应用在Windows 和Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格, 并良好地运行在绝大多数平台中。Tkinter 是Python的标准GUI 库。Python 使用Tkinter 可以快速的创建GUI 应用程序。由于Tkinter 是内置到Python 的安装包中、只要安装好Python 之后就能import Tkinter 库、而且IDLE 也是用Tkinter编写而成、对于简单的图形界面Tkinter 还是能应付自如。

PC 上位机具有注册登录功能,查看指定节点数据、查看用户信息、数据邮箱等功能。数据邮箱,可以将用户所有节点的最新数据和其它相关信息发送到用户注册的时候填写的邮箱。Python 中使用了SMTP 发送邮件,SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。Python 的smtplib 提供了一种很方便的途径发送电子邮件,它对SMTP 协议进行了简单的封装。上位机如图6 所示。

图6 PC 端上位机

3 结论

通过对整套系统的开发,所有的研究目标都具体的实现出来。本项目以阿里云服务器为基础,通过设计TCP 和HTTP 网络通信的协议格式,在完成APP、上位机、WEB 和硬件系统的数据传输的前提下,实现了用户实际监测地点的数据上传与存储,APP 用户信息注册、设备状态监控和地图定位,PC 端数据实时显示、定期数据邮件播报和设备位置信息显示,WEB 大数据可视化分析、地图构建与设备定位等功能。考虑到设备长时间稳定工作所需要的定期维护与检修,本项目的所有软件开发都包含有设备定位功能,方便用户对硬件设备的部署和检修。因此搭载在硬件设备上的北斗定位模块在整个系统中占据了十分重要的地位,而且其精确的定位精度使得本项目的整体性能得到了极大地提升。

猜你喜欢

框图上位服务器
捷豹I-PACE纯电动汽车高压蓄电池充电系统(三)
一场史无前例的乐队真人秀
2018年全球服务器市场将保持温和增长
电路图2017年凯迪拉克XT5
算法框图的补全
基础油“上位”
基于图表法构建《万有引力定律与航天》知识网络
基于VC的PLC数据采集管理系统
用独立服务器的站长注意了
定位中高端 惠普8路服务器重装上阵