基于STM32自动气象站监测系统设计

2018-07-07 02:58:50范鹏程王大旺陆建君
气象研究与应用 2018年2期
关键词:气象站以太网嵌入式

范鹏程,曹 烤,王大旺,陆建君

(中国气象局上海物资管理处,上海 200050)

自动气象站是指能够对多种气象要素自动进行采集、处理、存储和传输的地面气象观测设备。随着计算机网络技术的发展,在对远程监控系统进行充分研究之后,结合当前主流的嵌入式技术,提出一种能实现远程气象数据监测的方法。系统采用嵌入式平台来采集数据,并通过以太网控制器W5500搭建的Web服务器,将数据通过Internet发送给远程客户端,来实现客户端网页对服务器采集数据的动态更新。

1 系统总框图

气象数据采集系统硬件主要由数据采集模块、主控制模块、数据储存模块以及电源模块组成[1-4]。数据采集模块是在主控制器的驱动下,完成对温度、湿度、风速、风向以及气压等数据的采集,主控制模块使用的是高性能Cortex-M3内核的STM32处理器,它可以完成对数据采集模块的控制以及对采集数据的处理工作。数据储存模块使用SD卡完成数据存储,处理完成的数据通过以太网模块发送至客户端[5,6],整体结构设计如图 1 所示。

图1 系统结构图

2 电源模块

在供电方面,使用太阳能供电和蓄电池供电的组合方式保证自动气象站能全天候工作。在有足够强的光照的条件下,太阳能电池板的电压经过充电控制芯片UC3906,给铅酸蓄电池进行充电,在光照较弱的条件下,充电控制器控制充电电路不启动,不对蓄电池进行充电。UC3906芯片是专门为铅酸电池充电设计的,其内部的基准电压随温度变化规律与铅酸电池电压的温度特性完全一致,通过对环境温度的准确监测,保证电池既充足电又不会严重过充电,这样有利于提高充电效率和延长使用寿命[7]。

系统对太阳能电池板电压、充电器输出电压、STM32主控模块电压这三路电压进行监测,保证自动气象站能够工作在正常状态。电压监测使用STM32内部自带的ADC,它是12位逐次逼近型的模拟数字转换器,有18个通道,其中两路为内部信号源,剩余的16个外部通道可以实现对外部多路电压信号的测量。系统使用的STM32F103RCTB内部参考电压引脚与VCC信号线相连,这样ADC的参考电压就是VCC上的电压。所以太阳能电池板的电压及充电器输出电压,经分压电阻降压后,保证小于3.3V,接入STM32 ADC的I/O口以实现对这三路电压的监测。

3 嵌入式Web服务器设计与实现

嵌入式Web服务器的设计是系统的重点和难点,它包括三部分内容:以太网模块接口电路、HTTP协议以及实时数据的传输。

3.1 以太网接口电路设计

Internet接入设备的传统做法基本上是采用软件编程,由于软件实现的协议缺乏稳定性以及网络协议的复杂性,这对开发人员的能力要求比较高。因此直接采用硬件协议栈实现网络连接,具有设计简单方便、应用快捷灵活等特点。WIZnet公司生产的W5500使用逻辑门电路实现TCP/IP协议栈的传输层以及网络层,并集成了链路层、物理层以及32KB存储器用作数据收发缓存。这样就把数据流量的处理工作转移到W5500集成硬件中进行,使得主控芯片只需要承担应用层控制信息的处理任务。因而使用W5500只需要一些简单的Socket编程就能实现以太网的应用,这为嵌入式的设计开发提供硬件参考。

W5500提供了SPI接口,从而能够更加容易与外设MCU通信,而且W5500使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。如图2所示,本设计采用SPI接口将STM32微控制器和以太网模块连接构成以太网接口电路[8,9],其中 RJ-45 接口作为以太网通信接口是实现Internet接入的枢纽,网络传输状态指示灯指示网络的工作状态是否正常。

图2 以太网接口电路

3.2 HTTP协议以及处理流程

HTTP(超文本传输协议)是因特网中在Web服务器和客户浏览器之间传输数据使用的协议。首先,HTTP协议是TCP/IP模型中应用层一个面向对象的协议,在HTTP工作开始之前,浏览器与服务器之间要建立TCP链接,然后浏览器向服务器发送请求信息,服务器接受到请求信息之后返回响应信息,浏览器接收到服务器的响应信息后,对数据进行处理执行。如图3所示,就是HTTP协议传输数据的基本过程。

图3 HTTP传输数据示意图

在STM32微控制器和以太网模块W5500搭建的硬件平台上,要实现HTTP服务器的通信过程,大致分为以下几个步骤。

(1)初始化服务器:这部分完成Web服务器的初始化,例如W5500作为Web服务器,首先分配Socket去监听HTTP请求。

(2)接受并解析客户端请求:当Socket连接建立完成后,W5500接收来自客户端的HTTP请求并进行分析。

(3)回应响应消息:如果请求方法为GET,则先返回响应首部,再将客户端请求的URL目标文件从内存中读出,作为HTTP应答发送给客户端。

(4)关闭:HTTP响应消息完成后,关闭与客户端的连接。

由于Web服务器和浏览器在通信时使用TCP协议工作,根据SOCK_HTTP之间状态的不同,执行不同的操作。http函数就实现了Web服务器接受请求和回复响应的全过程。HTTP服务器实现的具体流程[10],如图 4 所示。

图4 HTTP服务器实现流程图

3.3 Web服务器上的数据传输以及动态页面的实现

要在嵌入式系统中实现页面的动态更新,与在通用服务器上是不一样的。由于受到单片机处理速度以及存储空间的限制,不可能生成各种不同的页面。 这里采用 SSI技术,SSI(Server Side Include)俗称服务器端嵌入,是一种网页制作技术。它的工作原理是检测文件中的标志位,然后在这个标志前面添加你所需要的字符串。

因此在嵌入式系统中,可将编好的网页文件保存在自定义的数组中,对需要添加气象数据部分作一个特殊标志。当程序运行时,先将数组读入内存,然后检测数组中的标记,将传感器测量并处理完成后的气象数据添加到标志之前,这样就可以重新生成一个页面,并将其发送给客户端。动态网页可以及时更新网页中的某些数据,因此可以清楚的查询到所需要观测的气象数据,使远程监测变得方便快捷[11],具体实现步骤如下。

首先,新建一个index.html的静态网页文件,将静态网页存储在数组webpage内,代码简化如下:

当服务器接受到客户端的请求,就将数组webpage内的网页作为响应发送给客户端。代码简化如下:

其中定义了W5500的发送/接受缓存区的大小TX_RX_BUF_SIZE,如果所要发送数据的字节大于TX_RX_BUF_SIZE,就需要将数据拆分开依次发送。Send函数的原型是uint16 send(SOCKET s,const uint8* buf,uint16 len),这样我们就可以清楚的了解,通过建立HTTP连接的Socket端口,将缓存区内一定长度的数据发送出去。

由于发送给服务器是一个没有信息的静态页面,不包含任何数据值,所以在发送之前,需要处理器去查找标志,然后在标志前插入测定的气象数据,查找函数如下:

其中tx数组用于存放处理完成的温度数据。这样所测定的气象数据就可以显示在网页中。

4 客户端数据监测

程序中设定Web服务器的IP地址为192.168.3.171,客户端PC机也位于同一网段,设定IP地址为192.168.3.18。在PC机浏览器地址栏输入嵌入式Web服务器的IP地址192.168.3.171,运行结果如表1所示。

表1 数据监测表

然后点击进入电压监控页面,可以显示出太阳能电池板的电压、充电器输出电压以及STM32主控模块电压,运行结果如表2所示。

表2 电压检测表

5 结束语

随着信息化的推进与网络技术的发展,嵌入式系统设备实现网络连接成为了一大趋势。系统基于Cortex-M3的嵌入式模块,其中太网控制器W5500的使用,比其它以太网方案更加快捷、方便实现了自动气象站监测系统数据的更新[12-17]。经过模拟测试表明,可以对气压、温度、湿度、风向、风速进行较为精确地监测。

[1]毛寿兴,杨丽丽.自动气象站气压传感器的校准及误差分析处理[J].气象研究与应用,2016,37(4):96-98.

[2]陶伟,张喜鸿.广西自动气象站计量检定智能显示平台的研制[J].气象研究与应用,2015,36(4):94-96.

[3]黄宏智,黄飞龙,陈冰怀.新型自动气象站实时监控系统的设计与实现[J].广东气象,2016,38(5):74-77.

[4]王建庄,余秀娟.国家级自动气象站应用APN自动补传的实现[J].广东气象,2015,37(4):73-76.

[5]张惠捷,钟鼎.基于 Cortex-M3 的自动气象站设计[J].电子技术,2012,37(8):70-72.

[6]郁波.自动气象站数据传输系统设计[D].南京:南京信息工程大学,2008.

[7]徐海辉.基于 UC3906的太阳能充电控制器的设计[J].通信电源技术,2010,27(2):33-34.

[8]于春雪.W5100在远程电力质量监测设备中的应用[J].电力系统通信,2011,32(227):59-64.

[9]陈实,王琪,张铁军,等.一种基于W5100的数据传输系统[J].电子技术应用,2013,39(9):54-56.

[10]高嵩.基于HTTP协议的嵌入式远程监控系统的研究[D].北京:北京工业大学,2009.

[11]林笑君.基于Cortex-M3的嵌入式WEB服务器监控系统的设计与实现[D].太原:太原理工大学,2013.

[12]周柳丽,蒙程,马冬晨.自动气象站现场校准过程处理经验[J].气象研究与应用,2013,34(4):67-69.

[13]田小芳,韦丽英,黄健征.自动气象站蒸发传感器日常维护及数据异常处理[J].气象研究与应用,2016,37(S1):149.

[14]黎锦雷,韦菊,杨玉静.新型自动气象站故障分析与排除[J].气象研究与应用,2015,36(4):100-102.

[15]王建庄,余秀娟.广东省自动气象站数据传输监控功能的实现[J].广东气象,2013,35(2):71-73.

[16]雷卫延,李源鸿,杨志健.船舶自动气象站中心采集系统的设计与实现[J].广东气象,2014,36(6):63-66.

[17]陈映强,郑继玲,黄育娇.自动站气象资料管理查询系统的设计与实现[J].广东气象,2012,34(5):54-56.

猜你喜欢
气象站以太网嵌入式
珠峰上架起世界最高气象站
环球时报(2022-05-05)2022-05-05 11:08:07
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
心灵气象站
趣味(语文)(2019年3期)2019-06-12 08:50:14
搭建基于Qt的嵌入式开发平台
谈实时以太网EtherCAT技术在变电站自动化中的应用
电子制作(2017年24期)2017-02-02 07:14:44
嵌入式软PLC在电镀生产流程控制系统中的应用
电镀与环保(2016年3期)2017-01-20 08:15:32
自动气象站应该注意的一些防雷问题
一种90W高功率以太网供电系统的设计
电源技术(2015年7期)2015-08-22 08:48:48
浅谈EPON与工业以太网在贵遵高速公路中的应用
Altera加入嵌入式视觉联盟