基于STM32嵌入式微处理器的农业气象物联网数据采集系统设计
2020-07-23韩琛晔
韩琛晔
摘 要: 为了提高农业气象数据观测可靠性、实时性与精准性,设计基于STM32嵌入式微处理器的农业气象观测系统。此系统通过物联网技术实现局部区域中的多点气象数据收集,并且对基站传输数据。利用基站传输能够使主监控机监控软件中展示节点数据,并且对节点数据进行归类存储。主控软件利用机房的Internet网络,能够使数据传输到远程客户端中。系统还具备全球移动通信系统的移动报警功能,客户能够对报警信息进行收集。此系统能够应用到远程与室内局部多点气象信息收集监控领域中,通过系统测试表示,终端收集节点对网关传输数据距离不超过100 m,整体网络平均丢包率不超过2.6%,使大棚内空气湿度、温度、光照强度和土壤湿度的需求得到满足。
关键词: 农业气象; 物联网数据采集; 嵌入式微处理器; 环境数据收集; 系统设计; 软件设计
中图分类号: TN710?34 文献标识码: A 文章编号: 1004?373X(2020)05?0010?04
Design of agrometeorological Internet of Things data acquisition
system based on embedded microprocessor STM32
HAN Chenye
(Hebei Polytechnic Institute, Shijiazhuang 050091, China)
Abstract: An agrometeorological observation system based on embedded microprocessor STM32 is designed to improve the reliability, real?time performance and accuracy of agrometeorological data observation. In the system, the multi?point meteorological data in local area is collected with the technology of Internet of Things, and the data is transmitted to the base station. The base station transmission function can make the node data displayed in the monitoring software of the main monitor and classified for storing. The main control software can transmit the data to the remote client by the Internet network of the machine room. In addition, the system has the mobile alarm function of the global mobile communication system, enabling clients to collect alarm information. The system can be applied to the fields of remote and indoor local multi?point meteorological information collection and monitoring. The testing results of the system indicate that the data transmission distance from the terminal collecting node to the gateway does not exceed 100 m, and the average packet loss rate of the whole network is no more than 2.6%, which satisfy the demands of air humidity, temperature, illumination intensity and soil moisture in agricultural greenhouses.
Keywords: agrometeorology; Internet of Things data acquisition; embedded microprocessor; environmental data collection; system design; software design
0 引 言
中国为农业大国,农业发展能够提高中国农业的生产率,也是中国现代化建设的主要任务。气象预报为中国现代化农业发展中的基础,能够对农业正常的生产进行指导,并且预防灾害。在此背景下,促进农业气象信息的现代化建设成为农业现代化建设中的重点。但是在农业气象预报中,我国还是存在部分问题,比如,基于区域性创建自动化气象观测站、设置农田小气候站收集气象数据。因为此气候收集设备具有较高的使用率,所以只能够使用以点带面的方式实现区域性农事气象预报。但是,此种大区域性气象预报的可靠性、精准性无法满足现代大型农业或者特色企业在生产过程中对于农业气象、防灾减灾等信息需求。所以,就要使用现代物联网技术和嵌入式微处理技术,研发低成本、低功耗和灵活部署的无线农业气象物联网数据收集系统,利用大面积及多点的数据收集,解决精细化农业气象预报对于信息依赖的问题[1]。
1 系统结构
农业气象物联网数据收集系统如图1所示,系统整体主要包括硬件平台和相应软件设计。创建硬件平台要对稳定性、功耗、数据处理能力和可扩展性进行考虑,根据模块划分微处理器、触摸显示屏、无线通信模块、系统供电等模块。
1.1 微处理器设计
在嵌入式系统中,ARM处理器芯片因为高性价比、丰富的内部资源和可移植实时操作系统等优势,使用在各个自动化领域嵌入式系统开发过程中。现代ARM微处理器中的STM32使用较为广泛,并且性价比较高,其主要包括M4,M3,MO+等内核。因为本文设计农业气象物联网系统是在野外应用,要充分考虑芯片功耗、总体成本与运算功耗,所以使用STM32系列中的Cortex?M3内核,其主要特点就是功耗比较小,并且具有较高的性价比,还能够支持16位和32位双指令集,其中主要包括大量寄存器,运行速度比较快,寻址方式比较灵活,能够提高执行效率。为满足农业气象物联网监测系统的需求,使用STM32F103RBT6芯片,其在性能方面能够使农业气象物联网监测系统需求得到满足,并且节约系统硬件成本,缩短整体研发周期[2]。
1.2 环境收集终端设计
终端收集部分能够收集大棚气象环境数据,利用ZigBee协议使数据传输到IoT网关中。在本文设计过程中,使用CC2530射频模块实现终端硬件核心芯片的设计,此芯片属于TI公司推出的支持ZigBee协议的单片机。在软件设计过程中,使用相应协议栈设计。CC2530微控制器内部利用业界标准增强型8051内核,通过QFN40进行封装,引脚一共有49个。
收集设备核心芯片CC2530外围电路在设计过程中主要包括电源模块、射频板模块、外设I/O模块和程序下载模块。其中,程序下载模块使用专门仿真器,实现程序下载与在线仿真调试,硬件设计部分主要包括CC Debugger仿真器接口。
在设计过程中,光照强度使用BH1750FVI传感器,其属于应用到两线式的串行总线接口16位数字输出型环境光强度传感器集成电路,通过其高分辨率能够在1~65 535 lx范圍中对光强度变化进行测量,还能够实现高精度数字信号的直接输出。
利用DHT11对空气湿度和温度进行测量,其属于已经校准数字信号输出湿度、温度传感技术,能够保证系统具备长期稳定性和可靠性。内部具有电阻式感湿原件与NTC测温元件,并且和高性能8位单片机相互连接,从而提高抗干扰能力,降低成本,使其具备长期稳定性[3]。
1.3 网关硬件设计
网关为接入设备,与公共通信网络与无线传感器网络相互连接,并且还能够提供多种通信途径,保证终端节点收集数据在用户平台中传输。其主要功能就是利用创建的ZigBee网络接收来自于终端设备收集气象环境数据,以设备类型分配地址封包处理,之后利用串口通信对IoT网关发送。
通过CC2530串口通信和WiFi传输数据功能设计网关设备,硬件部分主要包括电源模块、CC2530射频板模块、程序下载模块。CC2530芯片和NodeMCU芯片在电路设计过程中利用排针连接[4],串口连接的结构如图2所示。
通过UART和CC2530通信引脚相互连接,接收终端环境数据收集设备中传输数据。之后利用ESP8266芯片中NodeMCU进行开发,通过MQTT使数据到服务器中发送。通过NodeMCU和ZigBee两种技术设计网关,不仅能够保证数据传输过程中的效率与安全性,还能够降低开发成本,应用到农业大棚等经济产业中。
1.4 通信电路
串口和PC机是实现通信最为方便的通信接口,串行端口的本质功能就是串行设备和CPU编码转换器。在数据通过CPU利用串行端口发送的过程中,字节数据发送到串行位中。在数据接收的过程中,串行位转变为字节数据,串口属于系统资源部分。
RS 485通信的主要优势就是利用双绞线实现上位机和单片机的通信,其主要优势就是冲突保护、长传输距离、宽工模范围、高噪声抑制,此优势被广泛应用到工业设备和工业控制中[5]。通信电路的设计如图3所示。
此系统使用RS 485串口通信,RS 485通信收发器使用Maxim公司低电压芯片,此芯片属于高速、低功耗、便于控制、价格便宜的异步通信接口芯片。通过其构成的差分平衡系统抗干扰能力强,接收器对200 mV信号进行检测。此芯片使用3.3 V低电压供电,所以和LPC2101相互连接,不需要实现电平转换。
1.5 接口电路
为了提高系统和其他气象仪器设备的兼容配套性,本文系统使用广泛应用到工业中的单排插针接口,系统板中利用工头。将12 V和5 V,RS 485接口放置到系统一端,使数字量信号和模拟量输入设置到另外一端。从而能够避免信号干扰,降低测量进入到本系统后的前后收集误差。外部接口电路如图4所示。
2 系统的软件设计
2.1 软件架构的设计
本文所设计的软件是将物联网技术作为基础,系统软件架构如图5所示。基于MySQL数据库和Apache Web服务器,利用气象数据纠正程序、网络数据交换程序、接口程序等模块构成。接口程序和数据库能够调用数据信息与服务,提供给应用程序部署模块服务访问接口与信息。ZigBee网络数据交换程序模块的主要目的就是通过网络得出气象观测数据,气象数据纠正和融合处理程序以ZigBee网络得出的数据与市级气象服务器中得到区域天气数据实现数据融合,实现观测气象数据的修正处理,之后到数据库存储,最后Web发布和应用模块都能够提供给用户气象观测数据的Web服务[6]。
2.2 基站和节点的软件设计
节点的主要目的就是对气象数据进行收集,并且将数据传输到基站中,基站再将数据传输到主监控PC机中。因为充分考虑节点和基站通信的需求,首先要使用信道时分复用算法解决信道传输过程中的冲突问题,基于此添加身份识别码进行识别,利用循环主动访问等算法实现系统信息的传输。具体软件的设计思想是:首先,将ID分配给全部节点,各节点使得到的ID到各自程序中写入,基站也会存储全部ID。系统在运行的过程中,基站要根据循环发射各个节点ID对节点发送的数据帧进行命令。基站在接收到数据帧之后实现ID和纠错校验,如果加入正确就记录数据,并且在主监控PC机中传输,直到对下个节点进行访问,否则就再次发送此节点ID,直到接收数据。节点的软件流程如图6所示。
节点主程序在接收基站ID命令时触发数据发送任务中断服务程序,在中断过程中,MCU会对接收命令和自身ID的一致性进行判断,假如一致,则到寄存器中存储,使各个气象数据和自身ID打包封装成为指定数据帧,并且利用无线收发器进行发送;否则,就清除中断,将接收命令进行忽略,之后进入到主程序数据收集任务程序,更新寄存器数据,依次循环并且等待下个中断。避免各节点数据传输信道出现冲突,使信道保持通畅,还能够提高基站接收数据的有效性和正确性[7]。
2.3 主机和从机监控软件的设计
在设计PC端软件的过程中,因为PC运行过程中的速度比较快,并且单片机速度无法满足需求,那么基站在对数据检验合格之后不进行封装,将原本数字帧利用串口对主监控PC机进行发送。主监控PC机软件的流程如图7所示。
在软件发送收集指令之后,基站在发送数据帧之前将串口通信端口寄存器打开,软件能够读取数据帧,以此实现节点ID的识别,之后将各种数据取出,存储到硬盘中,最后使各种数据根据坐标展现在软件界面中,以此构成时间段数据变化曲线。假如接收各种数据利用GSM模块对手机用户实现警报信息的发送,客户监控软件主要监控结构和主监控软件一样,只是客户端要对主控制端实现远程连接请求的发送,成功连接之后,主监控端就会接收基站发送的数据帧,并且对客户端发送相同数据帧。客户端中数据处理流程和以上描述主监控端相同,监控模块实现的代码如下:
ScriptAlias
Options ExecCGI
AllowOverride None
Require all granted
AuthName "Nagios Access"
AuthType Basic
AuthUserFile htpasswd.users
Require valid?user
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/htpasswd.users
Require valid?user
3 系统测试
本文系统在某生态科技园区实现数据收集和组网实验,收集光照强度、空气湿度、温度和土壤湿度,选择7个独立农业大棚布置节点,使测量数据传输效率、终端收集节点距离根据需求放置,并且实现测试。
使用精准电压电阻测量节点功耗,保证测量接通电源后的功耗。根据系统终端节点使气象环境数据收集为定时收集,设置系统每个小时执行接收的命令与发送数据的动作时间为50 s,电量一共为3 000 mA[?]h,满足系统低功耗需求。
根据三种传感器节点收集环境特性和监测土壤湿度,设置收集周期为20 min,光照强度收集周期为10 min,空气湿度和温度收集周期为5 min。在协议栈中使用终端收集节点休眠唤醒机制,实现环境数据的连续性。表1为网络丢包率,通过表1可知,丢包率不断增长的主要原因为终端收集节点和协调器距离,在距离100 m后,丢包率在不断增加。但是,在农业大棚实际使用过程中,终端收集节点对网关传输数据距离为100 m以下,整体网络平均丢包率不超过2.6%,使大棚内空气湿度、温度、光照强度和土壤湿度的需求得到满足[8]。
4 结 语
利用分析系统测试和应用,本文研究了基于物联网技术农业气象应用系统。本文系统前端收集设备的成本比较低,并且便于布点,后端管理软件包括模块集成,能够使专家知识应用到软件中,充分使用移动互联网优势,从而提供农业气象服务。此系统使用比较简单方便,用户只需要在有网络的地方将浏览器打开,就能够实现信息浏览、报警查看和设备管理。
参考文献
[1] 徐白冰,王建立,曹景太.基于物联网的温湿度与风速信息采集系统设计与实现[J].液晶与显示,2016,31(10):936?942.
[2] 崔丽珍,徐锦涛,丁福星,等.基于物联网的农业大棚气象数据监测系统设计[J].电子技术应用,2018,44(12):73?76.
[3] 李晓丹.基于STM32的物联网嵌入式网关的设计[J].计算机工程与应用,2015,51(4):61?65.
[4] 丁波.基于WebSocket协议的智能温室测控系统的设计与实现[D].镇江:江苏大学,2016.
[5] 翟俊菁,李必龙,贾香风.基于物联网技术的农业气象观测系统的研究与设计[J].中国农学通报,2016,32(32):182?187.
[6] 梁龙凯,何文超,呂绪浩.基于STM32及物联网的老年人追踪定位系统设计[J].电子世界,2017,51(21):105?106.
[7] 王峰.基于物联网的农业大棚温度自动控制系统设计[J].现代电子技术,2017,40(13):152?154.
[8] 蔡泽利,谭振江.物联网智能无线节点自动监控数据采集系统设计[J].现代电子技术,2018,41(4):183?186.