习昊 邓航伦 秦明明 蔡兵
摘要:利用STM32、传感器、无线通信和局域网,以及远程服务器的搭建,设计出一套林业信息监测系统。该系统可完成林区综合信息采集和展示功能。通过该系统,解决了林区气象站信息采集不足等问题。对于林区科研人员和护林员,该系统提供了有利的数据,对掌握林区信息有重大现实意义。
关键词:STM32;传感器;LORA模块;网络模块
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2019)15-0062-04
1 背景
根据资料显示,我国森林覆盖率仅为16.56%,随着全球天气的突变,以及人们对林业资源的乱砍滥伐,林业环境破坏严重,导致产量骤然降低。林区环境信息的有效获取对林业生长尤为重要,所以对林区进行信息监测是大势所趋,有效的信息能大幅度减少林业资源损失,提高林业产量,维护林业发展的健康与稳定。
本系统主要针对林业环境信息进行监测,利用多种传感器、无线模块、局域网,自主设计研发的一套关于林业信息监控系统,对林区环境信息的数据采集与展示,提供数据给护林员或农林研究员,通过数据分析获取林业生长信息,减小森林资源损失,为科研提供研究数据。
2 系统总体设计
根据林区环境,结合林业生长影响要素,本系统设计总图如图1所示。整个系统由上位机、服务器、下位机三个部分构成。上位机包括手机APP和管理系统,手机APP和管理系统能够随时随地显示系统监测数据,以及向用户提醒数据是否异常,手机APP还具有病虫害识别功能,用户能够通过手机拍照获取照片,使用该功能识别出树木患病与虫害情况;服务器主要用于存储下位机获取的数据,提供数据给上位机,保存注册本系统的用户信息,是下位机与上位机连接的纽带;下位机是以STM32为中心的硬件控制系统,分为中心节点和终端节点,中心节点用于连接服务器,与服务器进行数据传输,终端节点用于读取传感器数据并将数据按规定格式回传中心节点上传服务器。通过广域网与局域网的支撐,有线数据传输与无线数据传输的结合,本系统适合用于各大小林区林业信息与气象信息监测。
3 系统硬件电路设计
3.1 中心处理器 STM32F103RCT6
STM32F103RCT6是一种嵌入式-微控制器的集成电路(IC)。芯片内部拥有2个基本定时器、4个通用定时器、2个高级定时器、2个DMA控制器(共12个通道)、3个SPI、2个IIC、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口及51个通用IO口。该芯片具有高性能、低功耗、低电压等特性,同时具有高集成度和易于开发的优势。
3.2 SX1278 LORA扩频无线模块
SX1278LORA扩频无线模块是安信可科技设计开发的一款超长距离扩频通信模块。它可以作为任何配备有SPI接口的控制器的通信工具,与STM32F103RCT6完美兼容。SX1278具有超过-148dBm的高灵敏度,+20dBm的功率输出,传输距离远,可靠性高。通信参考距离10KM,具有自动射频信号检测、CAD模式和超高速AFC。在本系统中主要解决了终端节点设备与中心节点设备的远距离数据通信问题。
3.3 W5500以太网网络模块
W5500模块是一款集成了全硬件TCP/IP协议栈的以太网模块。它可以作为任何配备有SPI接口的控制器的通信工具,与STM32F103RCT6完美兼容。该模块无须编写以太网底层代码实现TCP/IP协议栈、支持TCP、UDP、IPV4ICMP、ARP、IGMP以及PPPOE协议,支持10/100MBPs传输速率、休眠模式和网络唤醒,通信速率高达8MHz,三种工作模式:客户端、服务端和UDP,工作电压:3.3V或5V。在本系统中完成了中心节点与服务器的数据传输功能。
3.4 传感器电路设计
本系统主要针对林区林业信息的监测与林业病虫害的预防,为保证监测的精准度和可靠性,必须选择适合野外长期稳定工作的传感器。经查阅大量有关林业生长信息的文献后发现影响林业生长的要素主要为大气温度、大气湿度、土壤水分、土壤PH、光照强度等,病虫害预防主要对林叶进行图像处理。综合考虑后选择的传感器为大气温湿度传感器、土壤湿度传感器、土壤PH传感器、光电式总辐射传感器。
1) YGC-QWS 大气温湿一体传感器
YGC-QWS 大气温湿一体传感器为485型传感器,输出信号为RS485,温度量程:-40℃~80℃,湿度量程:0~100%RH,工作电压:5V。
2) ZZ-S-GTH-A 485型土壤湿度传感器
ZZ-S-GTH-A 485型土壤湿度传感器,输出信号为RS485,湿度量程:-45℃~115℃,工作电压:12~24V。
3) ST-TPH-10 485型土壤PH传感器
ST-TPH-10 485型土壤PH传感器,输出信号为RS485,PH量程:4~10PH,工作电压:12~24V。
4)YGC-JYZ 光电式总辐射传感器
YGC-JYZ 光电式总辐射传感器,输出信号为模拟电压:0~2.5V,工作电压:5V,计算公式为[E=V/2.5×1500](E为测量辐射值(W/m2),V为输出电压(V))。
上述传感器多为485型传感器,为了便于合理的控制各个传感器工作,设计出RS485电路和开关电路;485电路:STM32的串口1通过RS485电路与传感器的A+、B-连接,控制传感器工作;5V、12V开关电路:由于传感器工作电压不同,同时也不需要实时监测与上传数据,为了节省功耗设计出开关电路便于定时控制电压输出进而控制传感器工作。
4 系统软件设计
4.1 上位机软件介绍
4.1.1 系统APP软件工作流程
本系统APP,主要负责和服务器端通信。下位机利用单片机采集温度,湿度,土壤PH值等环境因子并通过TCP scoket通信到云服务器端。云服务器端将数据存储到数据库中,当APP登录成功之后,启动Service服务,APP和云服务器端建立了scoket通信。云服务器端每隔五分钟向APP发送实时数据,Service服务中的TCP客户端接收数据通过广播发送出去,在需要接收的Activity中创建广播接收器,接收数据包解析后以不同控件的方式显示在界面上;若用户需要请求云服务端时,Activity通过Intents向Service传递请求命令,Service响应请求命令后发送到云服务器端的。界面的人机交互通过监听事件实现,当监听到地图显示事件或图像识别事件触发时调用对应的API接口,然后将返回数据展示在界面上。APP系统工作流程图如下图2所示:
4 .1.2 系统APP软件设计
因为需要远程展示监控数据,所以必须有从网络获取数据,鉴于直接和单片机等硬件电路板通信的诸多不便,系统设计时需要一个中间服务器承载数据,作为数据的中继。具体流程为通过单片机采集温度、湿度、土壤P H值等数据,封装为指定格式数据,上传到中间服务器,APP从服务器获取所需数据,按指定格式解析,获取温度、湿度、土壤PH等值展示在界面。
软件由5大部分组成,组成如下(智能云网关监测系统APP系统框图如下图3所示):
1)用户登录、注册管理
通过对SQLite数据库的简单操作,实现用户账号的登录、注册。
2) Activity交互
在Service服务中保持TCPsocket的连接,接收数据包和发送数据包,然后通过在Service服务创建广播,在Activity中创建广播接收器实现数据从Service传递到Activity中。
3)TCP客户端
设置IP地址和端口号,然后建立与TCP服务器的连接,保证和服务器端正常的数据接收和发送。
4)监测点信息展示
解析后的实时数据以进度条的形式显示,方便直观;历史数据以曲线图的形式显示;监测点坐标显示以百度地图展示。实时数据显示如下图5所示:
5)病虫害识别
首先利用百度EasyDL定制化训练平台,创建训练集库,获取API和SDK。然后手机拍照,调用API将图片发送到百度云上进行图像识别,将图片的识别结果返回到APP上显示。
4.2 下位机软件介绍
在本系统中,下位机分为两个节点:终端节点和中心节点。终端节点主要负责与各个传感器通信,读取与处理各个传感器数据,将数据通过LORA模块传回中心节点;中心节点主要负责校验回传数据,将数据发送至云服务器存储,便于上位机调取数据。
终端节点软件具体工作流程:系统上电,初始化完成,系统开始工作;控制器STM32定时打开开关电路,传感器上电开始工作,通过RS485电路与传感器通信,读取传感器返回数据,提取数据保存;LORA模块定时将数据回传给中心节点;回传数据完成后接收中心节点返回指令,判断是否需要再次读取与回传数据。
中心节点软件具体工作站流程:系统上电,初始化完成,系统开始工作;控制器STM32接收终端节点回传数据,校验回传数据是否正确;数据出错则发送命令给终端节点再次读取与回传数据;数据正确则将数据通过W5500网络模块发送至云服务器存储,提供给上位机读取调用。
下位机工作流程图如下图6所示:
5 结束语
本系统采用传感器、ARM控制技术、无线传输技术以及远程服务器和系统管理软件搭建,自主研发了一套林业信息可视化监测系统。系统监测信息包括大气温湿度、土壤湿度、土壤PH和光照强度,一定程度上涵盖了林业生长所需的影响要素。
通过本系统的监测信息,可以了解到林区树木所需的生长因子变换情况,及时对林区环境进行控制,农林研究员可以根据本系统所提供的数据实时掌握林区树木生长信息、气象信息等,为科研工作提供了有利帮助;护林员可以根据系统数据及时了解到树木生长状况,预防病虫害和天气变化等自然灾害,减小林业损失,维护林业发展的健康与稳定。
本系统有很强的实用性,致力广泛应用于林区林业信息与气象监测。
参考文献:
[1] 劉云莉. 面向智慧林业环境因子监测系统的研究与设计[J]. 物联网技术, 2016, 6(4): 66-68.
[2] 于泓博, 贾炀, 王治良. 基于北斗和ZigBee的森林环境监测系统研究[J]. 科技视界, 2018(31): 125-126.
[3] 李昊. 面向森林环境的动态监测及数据可视化分析研究[D]. 北京: 北京工业大学, 2017.
[4] 顾垚江, 钱佳伟, 倪陈龙, 等. 基于移动通信的森林安全监测系统[J]. 测控技术, 2017, 36(10): 20-23.
[5] 赵家刚, 李俊萩. C语言程序设计[M]. 成都: 西南交通大学出版社, 2010: 1-296.
[6] 万隆, 巴奉丽. 单片机原理及应用技术[M]. 北京: 清华大学出版社, 2010: 1-380.
[7] 孙肖子, 张企民. 模拟电子电路及技术基础[M]. 西安: 西安电子科技大学出版社, 2008: 1-390.
[8] 鲁宁, 寇卫利, 幸宏, 等. 数据库原理与应用[M]. 成都: 西南交通大学出版社, 2010: 1-291.
[9] 甘玲, 张璞. 解析JAVA程序设计[M]. 北京: 清华大学出版社, 2006: 1-361.
[10] Android编程权威指南[M]. 王明发, 译. 北京: 人民邮电出版社, 2016: 147-152.
[11] 严蔚敏. 数据结构(C语言版)[M]. 北京: 清华大学出版社, 2012: 47-65.
【通联编辑:谢媛媛】