摘要:设计了一种基于ARM的环境参数监测系统,可以对所在区域内诸如温度、湿度、大气压、风速风向等环境数据进行实时采集。该系统利用ARM嵌入式单片机作为下位机控制器,通过Modbus协议与各类传感器进行数据通信来获取环境参数。为了将采集数据上传至远程数据中心,设计了一种通信协议,将采集的数据进行封装,并通过4G无线通信模块发送至远程服务器。服务器对上传的数据进行协议解析后将环境参数存储到数据库中,并对环境参数在监测平台上进行可视化管理。实际运行结果表明,该系统运行稳定,具有可靠性高、实时性强、可拓展性强、成本低等优点,满足远程气象监测的基本需求。
关键词:气象监测;ARM;4G通信;数据管理平台
随着人们生活水平的提高,气象环境参数的关注度越来越高,人们对于环境监测工作的需求也越来越多。发达国家在很久之前就已经建立了其环境监测设备体系,使用环境监测系统二十四小时无间断地采集气象数据,观察环境变化,进行环境治理措施[1]。我国在此方面的研究与实施的手段在近几年也是层出不穷,比如墨迹天气推出的“空气果”,还有海尔的“空气盒子”[2],均使用Wi-Fi与手机互联,但在技术层面上属于近距离通信,并且价格昂贵,较难实现高可靠性、远程通信与低成本相统一的便捷化系统。基于此,本文以STM32系列嵌入式控制器、4G通信模块以及气象传感器为基础,设计并实现出一种通信距离远、可靠性高、可拓展性强、成本低并且适用于多种实际应用场景的气象监测系统。
1系统结构及原理
本文设计的目的在于监测环境中的各项参数指标,远程、实时地反馈给用户管理平台,帮助用户及时获取数据,分析上传数据的动态,从而采取相应的措施。该系统分为三个部分:第一部分是各类传感器,如温湿度传感器、大气压传感器、风速风向传感器等;第二部分是主控板,包括嵌入式单片机(STM32)、无线通信模块、电源以及RS485接口等各类功能模块;第三部分是远端的数据中心管理平台。系统总体架构如***1所示:该系统主要完成以下功能:1)数据采集:通过RS485接口采用Modbus协议向传感器发送请求数据,传感器收到请求数据便进行环境参数的采集,接着向控制器发送所采集到的数据结果;2)数据处理并上传:控制器对采集数据进行处理,按照设计的一套通信协议将数据封装成帧,并对其中的采集数据字段采用AES-128-ECB对称加密算法进行加密,最后通过EC20模块进行4G无线网络的通信将数据包上传至服务器;3)服务器收到数据包后进行协议解析,包括帧格式检查、解密、数据校验等一系列处理,最终将气象数据存入数据库中,方便用户的分析与管理。
2系统硬件设计
2.1主控制器模块
主控制器采用STMicroelectronics公司推出的STM32F407嵌入式单片机。该处理器拥有Coretx-M4内核,主频可达168MHz,具有1MBFlash和192kBRAM,也支持DSP功能,它还集成了UART、RS485接口、定时器Timer等众多外设,可拓展性强、功耗小、性价比高[3],配合4G模块可以实现多种功能,适合在本项目中使用。
2.2传感器模块
气象传感器的选取需要考虑到其采集精度和实时性等,能够在低成本的情况下保证满足本项目对精度和响应时间要求。由威海精讯畅通电子科技提供的温湿度传感器JXBS-3001-TH普遍适用于温湿度监测场合,传感器内输入电源、感应探头、信号输出三部分完全隔离,安全便捷。它采用了高灵敏数字探头,具有高精度、信号稳定、测量范围宽、便于安装、传输距离远等特点[4]。对于温度测量,在-40~60℃范围内最大偏差不超过0.5℃;对于湿度测量,在20%~80%RH范围内最大偏差不超过3%,并且在12V供电的情况下的功率不超过0.15W[5]。选用JXBS-3001-QY作为大气压传感器,它可以精确地测量大气压值,适用于各种环境下的气压测量,其误差范围在常温下不超过0.15kPa,功率在12V供电下同样不超过0.15W[6]。将JXBS-3001-FS和JXBS-3001-FX分别作为风速、风向传感器。其中风速传感器的误差值为1m/s,耗电量小于1W;风向传感器的误差不超过3°,并且功率同样小于1W[7]。
2.3RS485接口与Modbus协议
以上所选传感器均可通过RS485接口与主控制器相连,并使用Modbus协议进行数据通信。RS485接口是仪器仪表和自动化行业内常用的通信接口标准之一,采用异步半双工通信模式,传输方式为差分方式,传输介质为双绞线,通常最远的通信距离可达1200m[8]。Modbus是一种广泛应用于工业自动化领域的一种串行通信协议。该协议使用主从技术,即仅一台设备(主机)能主动发起传输或查询,其它设备(从机)根据主设备查询提供的数据作出响应。在本系统中,STM32控制器即主机,各类传感器为从机。
2.4无线通信模块
通信模块的选取既要考虑到通信的距离又要保证传输的实时性,即要保证高效快捷、可靠地传输到远程服务器。由于4G无线通信的最大数据传输速率超过100Mbit/s,并且全国范围内4G基站可以实现大范围覆盖,因此该通信方式在通信距离和传输速率上可以得到很好的满足[9]。QuectelEC20是由上海移远科技推出的无线通信模块[10],它内置了TCP/IP等网络通信协议,并且可以实现全网通功能,即对于移动、电信、联通的2G、3G、4G卡都可以很好兼容。不仅如此,该模块还能够向下兼容之前的EDGE和G***/GPRS网络,让那些缺乏3G、4G网络的偏远地区的用户也能正常使用。EC20模块采用标准的MiniPCIe封装,同时支持LTE,UMTS和G***/GPRS网络,最大上行速率为50Mbps,最大下行速率为100Mbps。可以通过AT指令实现4G通信的各种功能。此外,该模块需要配合SIM卡才能实现4G远程通信,本文选用了中国移动推出的物理网卡,具有价格低廉的优势,满足了本系统低成本的需求。
3系统软件设计
3.1STM32控制器软件
开发软件为KeilμVision5,编写程序时可以在该平台上对程序进行调试,最终将代码以十六进制文件的形式***到芯片中,来控制芯片对于程序指令的实现,从而控制其它模块的工作[11]。控制器软件的主要目的是:①与温湿度、大气压、风速风向等传感器进行通信,完成数据采集工作;②对采集数据进行处理,以统一的协议格式对采集结果进行封装,通过4G无线通信模块上传至远程云平台。整体控制器软件流程***如***2所示。首先进行系统各个模块的初始化,再由控制器向数据中心发送握手数据包,该包由控制器每隔一定时间发给送数据中心一次(默认为15分钟),用于向数据中心同步下位机IP及状态信息。紧接着进入数据采集与数据上传的循环程序中,用STM32自带的定时器时钟来进行周期性计时。当到达采集时间时,控制器会向传感器发送采集指令,通过RS485接口采用Modbus协议进行通信。传感器执行完采集工作后以同样的方式将采集结果返回给控制器,此时若未达到数据包上传时间则循环至采集判断步骤;反之,则开始数据包的上传。在进行数据上传之前,需要对采集数据按一定的协议打包至规定的帧格式内,采用字节为单位对数据进行封装。为了提高传输可靠性,在数据包头尾位置设置了长度域与校验域,以便服务端进行包长度校验和CRC校验;为了提高数据可拓展性,将气象采集数据封装进包格式中数据域,并使节点数据长度可变。此外,还设置了采集设备基本信息,如采集项目类型放置在类型域,为了让数据中心获得该数据包的参数类型;将软件版本号放置在数据域末端,以便数据中心得知最新的软件版本。***3中的数据域存放了采集的环境数据,并且可以选择是否采用对该部分进行加密。采用的加密算法是AES-128-ECB对称加密算法,对于不满16的倍数的部分用PKCS7Padding方式进行填充。密钥共16个字节,每个环境采集下位机保存自己的密钥,数据处理中心保存所管理的环境采集节点密钥。在对数据包进行上传时,分为两个步骤:首先发送包含目的IP地址和端口号的AT指令,来建立下位机与服务器之间的Socket连接;当连接建立成功时,即可调用发送函数上传数据包,若Socket连接失败,会尝试重新连接固定次数。为了满足系统低功耗的需求,在程序运行过程中,模块仅仅在进行采集和上传步骤时会开启,其余时间均保持低功耗休眠状态。
3.2数据中心管理平台
对于服务端软件程序的开发,首先选用了市场上比较热门的阿里云平台,它的内部提供了众多的灵活配置,方便项目开发。***4显示了数据管理平台对于采集数据包的接收处理过程。数据中心管理平台在正常情况下处于对某端口进行监听状态,当收到下位机所上传的数据包时,首先对数据包进行长度校验,验证整个数据包长度是否与数据包长度域数值相等,若相等,则进行下一步帧校验,否则,直接返回错误码并舍弃该数据包。帧的校验码长为16bit,使用CRC-16校验生成算法产生,当校验错误时,仍然返回错误码,放弃数据包,当校验正确后,为了让下位机知晓数据中心以及收到正确的数据包,则需向下位机发送正确返回包。对于数据域的解密同样采用AES-128-ECB算法,使用的密钥是与下位机对应的唯一密钥。最终解密完成后,将采集结果存入数据库SQLite中,并对其进行可视化处理,以便管理人员直观地观测到采集结果并采取应对措施。与此同时,数据中心管理平台也可以向下位机采集节点发送管理包,其中包含了数据包上传的周期以及采集点数,这样可以调控采集节点的采集与上传的频率。
4系统测试与分析
为了验证所设计的气象监测系统功能是否稳定、性能是否良好,针对实际情况进行了室外实物搭建。在服务器端,数据中心管理平台对某一特定的端口号时刻保持监听状态,并且能够实时收到上传数据并解析显示在窗口上。在数据库中实时存储并显示了采集气象数据的结果,如***5所示:***5采集结果数据库查询可以看到各项采集指标在数据库中各个字段一一对应并显示了出来,并且测试上传了5000次采集包,所有采集包均上传成功,达到了系统运行的可靠性要求。
5结束语
本系统通过对气象站的基本需求分析,经过硬件设计、软件程序开发,实现了对于温湿度、大气压、风速风向等气象数据的采集,并通过4G模块的传输,实时上传至远程数据中心云平台进行处理,从而达到远程监测的目的。同时,本文设计了一种通信协议,通过将采集数据封装成帧并留出拓展格式,突破传统环境检测仪器只能检测有限个环境参数的局限性,让增加采集项目更容易实现,使整个系统更具灵活性和拓展性。经实验测试,该系统运行稳定可靠,并且具有很高的性价比。本系统应用了4G远程通信,让数据的传输不受距离限制,方便安装,能够满足各种户外气象监测的需求。
作者:江轲 冯玉田 单位:上海大学通信与信息工程学院
转载请注明出处学文网 » 远程气象监测系统设计与实现