基于嵌入式Web服务器的微气象信息远程监控系统设计*
2017-11-03张永宏李海峰王丽华钱承山毛海强
张永宏,李海峰,王丽华,钱承山,毛海强
(1.南京信息工程大学气象灾害预报预警与评估协同创新中心,南京 210044;2.南京信息工程大学信息与控制学院,南京 210044;3.南京信息工程大学计算机与软件学院,南京 210044)
基于嵌入式Web服务器的微气象信息远程监控系统设计*
张永宏1,2*,李海峰2,王丽华2,钱承山3,毛海强2
(1.南京信息工程大学气象灾害预报预警与评估协同创新中心,南京 210044;2.南京信息工程大学信息与控制学院,南京 210044;3.南京信息工程大学计算机与软件学院,南京 210044)
针对目前对于微气象环境远程监测与控制的需求,设计了一种基于B/S系统架构的远程微气象环境信息监控系统,系统的数据采集与控制通过WSN(无线传感器网络)实现;嵌入式Web服务器完成数据处理与存储等功能;应用HTML5+CSS+JavaScipt技术设计了用户前端监控界面;经过实际系统测试,本设计实时性好、采集数据精确、界面友好,满足了用户对特定区域的微气象环境进行远程监测与控制的需求。
电子技术;微气象;监测与控制;B/S;嵌入式Web服务器
某些区域小尺度的气象物理现象呈现复杂多变的特征,目前对于城市特定区域微气象的研究越来越多,微气象特征常使用一些气象要素或者环境质量指标来表征。这些数据对于更加精细地研究本区域小气候变化具有重要意义[1-2]。
无线传感器网络技术实现了在监测区域布设若干数据采集节点,在节点上使用微气象要素相关传感器采集数据,由于数据的传输为无线多跳路由方式,非常适合室外微气象信息采集[3-4]。
目前的微气象信息采集系统多为上行数据系统,仅用于环境要素监测,系统缺少下行数据反馈控制功能,如预警自动发布、启动相关设备等等。因此,本文结合B/S软件设计架构设计了一个用于微气象环境远程监测与控制的系统,用户使用网络浏览器即可实时监测微气象相关数据或者查看历史数据,也可以远程调整监测任务或者控制监测区域的相关设备,实现对监测区域的必要干预。
1 系统总体设计
本文设计了基于嵌入式Web服务器的微气象信息远程监控系统,系统采用B/S软件设计架构,整个系统由无线监控终端和嵌入式网关Web服务器两个部分组成。无线监控终端使用微气象要素传感器不间断采集环境数据,同时在一些无线监控终端还可以根据使用场所需要添加执行模块,如在化工园区可以适当添加实时预警、调整环保设备等下行控制。无线监控终端使用ZigBee数传模块组网式监控,监控数据最终无线汇聚到嵌入式网关Web服务器,嵌入式网关Web服务器完成数据处理与本地存储以及响应Web浏览器的网页请求,如果嵌入式网关Web服务器接入了局域网,那么局域网内的用户就可以使用网络浏览器终端登录系统,实现对于无线监控终端所在区域内微气象环境的远程监测和控制。
图2 无线监控终端核心电路图
无线监控终端包括无线数传模块和环境传感器、执行模块;嵌入式网关服务器由ARM微处理器以及其下位机无线数传数据汇聚模块组成。系统设计框图如图1所示。
图1 系统设计框图
2 系统硬件设计
2.1 无线监控终端硬件设计
无线监控终端的硬件由支持ZigBee通信协议的CC2530F256无线数传SOC以及微气象传感器、终端控制执行模块、电源模块组成。作为终端与嵌入式网关服务器进行无线通信的核心芯片,CC2530F256是TI公司的第2代ZigBee模块,支持ZigBee2007协议栈[5-6],同时满足微气象环境监控的低成本、低功耗的需求。为了增强该模块的射频性能,本设计中为其增加了PA(功率放大)模块CC2592,该器件是一款针对德州仪器(TI)所有CC25XX 2.4 GHz低功率RF 收发器、发射器和片上系统产品的范围扩展器。CC2592器件提供一个可增加输出功率的功率放大器,以及一个具有低噪声系数的LNA,以提升接收器灵敏度。增加了链路预算[7]。无线监控终端核心电路图如图2所示。
微气象要素采集使用了AM2302湿敏电容数字温湿度传感器,该传感器是一款含有已校准数字信号单总线输出的温湿度复合传感器;风速风向使用WXA100-02SF0-I两要素气象传感器用来测定,该传感器使用超声波测定技术,无机械磨损,功耗较低;对于空气中的有害气体,使用MQ135传感器测定硫化物、氨气等工业有害气体浓度,该传感器通过测量气敏材料电导率变化测定有害气体浓度。这种传感器可检测多种有害气体,是一款适合多种应用的低成本传感器;系统使用了SDS011激光传感器测定空气中PM2.5/PM10浓度,SDS011使用激光散射原理,能够得到空气中0.3 μm~10μm悬浮颗粒物浓度,使用高性能激光器与感光部件,数据数字化输出且稳定可靠。监控终端的执行模块由系统使用场所自定义,本文设计使用继电器作为受控对象。
无线监控终端的电源模块需要输出3.3 V/5 V/12 V直流电源,为终端的各个芯片、模块提供稳定的电源。电源电路结构如图3所示。
图3 电源电路结构
图4 嵌入式网关Web服务器底板硬件电路
2.2 嵌入式网关Web服务器硬件设计
嵌入式网关Web服务器一方面需要和无线监控终端进行双向通信,具有ZigBee网络和计算机以太网转换的网关功能[8],另一方面还要不断地将采集的数据存到嵌入式Web服务器本地存储设备,并能够及时响应浏览器访问请求。
本设计中采用S3C2440芯片为核心板的嵌入式系统,该芯片是基于ARM920T内核开发的用于嵌入式设备的低功耗、高性能的32位微控制器[9]。为了集成嵌入式网关与Web服务器两大功能,本文重新设计了嵌入式网关Web服务器的电路,将ARM微处理器S3C2440和ZigBee网络协调器的核心板CC2530F256集成到了一个底板PCB上。底板的资源进行了必要裁剪,S3C2440和CC2530F256两个片上系统使用UART串行通信,底板其他关键硬件资源包括电源电路(包括独立复位电路)、10M/100M自适应以太网卡接口电路、SD卡存储电路、RS232串口电路(用于服务器控制台)、核心板工作状态指示电路等。根据以上电路设计方案,使用Altium Designer电路设计软件绘制电路,嵌入式网关Web服务器底板硬件电路如图4所示。
3 系统软件设计
系统软件设计包括ZigBee无线传感器监控网络程序设计以及嵌入式Web服务器程序设计两大部分。
图5 网络协调器程序流程图
3.1 ZigBee无线传感器监控网络程序设计
本文无线传感器监控网络以CC2530射频模块为硬件开发平台,以IAR Embedded Workbench IDE为软件开发平台、Z-Stack协议栈为基础进行程序开发。IAR Embedded Workbench IDE是一套高度精密且使用方便的嵌入式应用编程开发工具,它为用户提供了一个易学和具有大量代码继承能力的开发环境,支持大量的常用的微处理器和微控制器的开发[10]。
ZigBee无线传感器监控网络的程序设计分为网络协调器程序设计和监控节点程序设计。网络协调器虽然物理上与嵌入式Web服务器系统集成在一起,但是,网络协调器的程序仍属于ZigBee无线传感器监控网络的一部分,它的设计目标功能一方面是具有ZigBee网络到计算机以太网的网关功能,另一方面负责协调、创建、管理ZigBee网络。网络协调器程序流程图如图5所示,网络监控节点程序流程图如图6所示。
图6 网络监控节点程序流程图
在ZigBee协议栈中,各种操作(如网络状态改变、报警、按键触发、周期性任务等)都是由通过“事件定义—事件触发—事件处理”的循环机制实现的,事件处理时会被分配一个任务ID即taskID,根据这个ID,协议栈可以完成不同的事件处理和资源调度,以提高处理效率。
程序主函数在初始化系统硬件后,调用osal_start_system()函数进入了协议栈轮转查询式操作系统事件处理循环函数,对注册的事件任务进行轮询并调度资源执行。在ZigBee无线传感器监控网络程序设计中,除了协议栈已经定义好的系统事件外,程序设计还需要定义的事件主要有:使用SERIALAPP_SEND_EVT定义了协调器下行数据传输事件,其触发后处理函数为SerialApp_Send(),实现上位机(嵌入式服务器)的数据包读取并解析,根据解析结果无线广播或者单播数据给监控终端;使用SERIALAPP_RESP_EVT定义串口接收响应事件,其处理函数为SerialApp_Resp();使用SERIALAPP_SEND_PERIODIC_EVT定义了网络监控节点定时向网络协调器发送各传感器或者执行模块数据的事件,其处理函数是SerialApp_SendPeriodicMessage(),同时该函数中调用了SerialApp_SendData_AM2302()、SerialApp_SendData_ WXA100()、SerialApp_SendData_MQ135()、SerialApp_SendData_ SDS011()等传感器数据无线发送函数,这些函数会调用传感器相关的API函数获取数据,这些函数是由传感器厂商提供,并已经添加在了协议栈应用层供该层其他函数调用,定时的实现函数是osal_start_timerEx(),用于实现定时事件的触发;使用SERIALAPP_ALARM_EVT1定义了温湿度报警事件,其事件处理函数是SerialApp_WenshiduAlARMDec(),实现相关报警函数的调用;同理,使用SERIALAPP_ALARM_EVT2、SERIALAPP_ALARM_EVT3定义了PM2.5/PM10报警事件、硫化物、氨气等工业有害气体报警事件等。
ZigBee无线传感器监控网络与嵌入式网关Web服务器进行串行数据通信必须遵守相同的通信协议,只有这样上下位机之间交换的信息才能被正确的接收、发送和解析。上下位机串行通信数据帧定义如表1所示。
表1 上下位机串行通信数据帧定义
3.2 嵌入式Web服务器程序设计
嵌入式Web服务器程序是基于嵌入式Linux环境开发的应用程序,因此在开发Web服务器程序之前,需要将定制的嵌入式Linux系统移植到以ARM S3C2440为核心处理器的嵌入式网关Web服务器底板的核心板上。
移植好嵌入式Linux系统至单板后,用户空间应用程序与内核空间有了通信机制[11],也就具备了Web服务器相关程序的运行环境,本设计中使用Boa Web服务器,它是一种单任务HTTP服务器,其占用资源低、效率高。
在Boa移植到嵌入式系统过程中关键几项修改是:将User和Group配置项均设为root;DocumentRoot设为/www,该参数为根目录下的Web服务器工作目录,存放网页交互相关的文件;DirectoryIndex配置项设为index.html,index.html为访问Web服务器的首页,本设计中该HTML文档是本系统的登录页;ScriptAlias/cgi-bin/配置项设为/www/cgi-bin/该项配置了Web服务器所支持的CGI脚本程序所存放的实际目录。
考虑到资源限制的问题,在本设计的嵌入式Web服务器动态Web页面交互使用了即通用网关接口CGI(Common Gate Intergace)技术,它是外部扩展应用程序与Web服务器交互的一个标准接口,规定了Web服务器调用其他可执行程序(CGI程序)的接口协议标准[12]。因此CGI不是某种特定的编程语言,在本设计中使用了C语言来开发CGI程序用于HTML网页与服务器的数据动态交互,但是C语言的特性不适合编写处理大量字符串的CGI程序,所以还要将相应的C库移植到服务器以提高开发效率,篇幅限制,不再详述。
至此,嵌入式Web服务器移植关键工作完成,下面是服务器程序开发工作,主要分为Web前端程序设计,服务器程序设计两大部分。Web前端程序设计的主要目标是实现浏览器端的用户系统登录以及Web用户界面,包括用户登录账号验证、HTML动态网页监控界面程序设计,通过在Web网页中使用JavaScript脚本程序实现与Web服务器ajax异步通信,网页实时数据的局部刷新有效提高了服务器响应用户数据请求的效率。另外监控界面的的网页样式与布局使用CSS(层叠样式表)进行了优化[13],在“微气象历史数据查询”界面使用了HTML5最新特性的输入控件作为时间选择器,下行控制中以化工园微气象环境为应用背景,当用户点击按钮时会触发一个输入事件并发送至嵌入式Web服务器,Web服务器根据其输入标号进行读写操作,并根据读的结果将相应的串行控制数据包通过写串口函数HAL_UartWrite()发送到串口缓冲区供下位机读取。
服务器程序设计的主要目标是创建相关线程不断解析上传的串行数据包并刷新至前端Web页面、存储到本地数据库的目标目录、接收前端Web页面的控制事件并生成相应的命令数据包进行下行传输、根据Web页面调用的JavaScript脚本交互程序,接收前端Web页面的数据管理操作事件并转换成标准的数据库命令管理本地数据库,并将读取的数据定向至浏览器文本显示控件。移植SQLite3数据库到嵌入式Linux供boa服务器程序调用,配置数据存储路径为本地SD卡存储设备目录。嵌入式Web服务器程序设计流程图如图7所示。
图7 嵌入式Web服务器程序设计流程图
4 系统测试
将S3C2440核心板(已经移植好嵌入Linux和Web服务器程序)和CC2530核心板(下载好编译成功的网络协调器程序)通过焊接好的插座安装在嵌入式网关Web服务器底板的相应排母上,boa服务器程序设置为自启动程序并设置好本地IP地址。无线监控终端方面,温湿度传感器、气体传感器以及下行控制模块均使用单总线方式与无线监控终端连接,使用CC2530的通用IO口;风速风向传感器以及PM2.5/PM10浓度传感器使用485串口方式与终端连接;使用DC 12 V锂电池为系统节点供电。
测试中将两个无线监控终端配置相同种类与数量的传感器,并置于A、B两个区域上电运行,同时将嵌入式Web网关服务器板置于两个节点射频范围内,上电并将板子的网口通过网线接入本地计算机网络。在本地网络的计算机终端上打开浏览器,输入之前设定好的嵌入式Web网关服务器板IP地址,凭借账号密码登录系统完成验证即可以远程Web页面的形式观测到系统采集到的微气象实时数据,系统远程登录页面如图8所示,微气象数据实时监测测试如图9所示。
图8 系统远程登录页面
图9 微气象数据实时监测测试
图10 微气象历史数据查询测试以及下行控制
微气象历史数据查询测试以及下行控制如图10所示。Web页面微气象历史数据存储在嵌入式Linux系统的SD卡存储设备目录下,同时如果用户在远程Web界面输入查询条件并提交,Web服务器的CGI程序解析并调用SQLite命令管理历史数据并将结果返回至前端网页显示,此外用户还可以通过浏览器下载临时生成的查询结果或者全部历史数据。下行控制的实质是实现了从Web前端用户网页到无线监控终端逻辑控制电平的传输,并将控制状态返回。本设计的3个控制按钮均成功地触发了无线监控终端的电磁继电器,实际控制功能视具体的应用环境而定。
5 结束语
本文设计了一个基于嵌入式Web服务器的微气象信息远程监控系统,分别从系统总体设计、无线监控终端软硬件设计以及嵌入式网关Web服务器软硬件设计等方面介绍了系统设计思路以及实现过程。整合了上下位机硬件资源,设计了嵌入式网关Web服务器电路;使用高性能、数字化的传感器提高了系统采集数据的效率与精确度;本设计同时实现了下行控制的功能,满足了远程控制个性化定制的需要;利用HTML5+CSS+JavaScipt的机制实现了用户网页界面以及嵌入式服务器良好的实时响应能力。在实际的测试中,本系统满足了设计目标,系统网络传输延迟较低,实时性较好,实现了微气象信息的自动化、网络化采集与控制。
[1] 胡继超,申双和. 微气象学基础[M]. 北京:气象出版社,2014:27-67,72.
[2] 张捷光. 智能电网微气象监测系统研究与实现[D]. 华中科技大学,2013.
[3] 倪云峰,毛宏. 基于ARM9的烟气脱硫数据采集终端的设计与实现[J]. 电子器件,2012,35(6):713-716.
[4] 尚凤军,任东海. 无线传感器网络中分布式多跳路由算法研究[J]. 传感技术学报,2012,25(4):529-535.
[5] 李正明,汪付川. 基于嵌入式的智能停车场远程监控系统[J]. 电子器件,2014,37(4):742-745.
[6] Sahani M,Nayak A,Agrawal R,et al. A GSM,WSN and embedded Web Server Architecture for Internet Based Kitchen Monitoring System[J]. 2015 International Conference on Circuit,Power and Computing Technologies(ICCPCT),Nagercoil,2015:1-6.
[7] 德州仪器. CC2592 2.4 GHz射频范围扩展器描述与参数[EB/OL]. http://www.ti.com.cn/product/cn/CC2592/description.
[8] Teubler T,Hail M A,Hellbruck H. Transparent Integration of Non-IP WSN into IP Based Networks[C]//2012 IEEE 8th International Conference on Distributed Computing in Sensor Systems,Hangzhou,2012:353-358.
[9] 王俊,郭书军. 嵌入式Web服务器的实现及其CGI应用[J]. 电子设计工程,2011,21:152-154,158.
[10] Al-Ali A R,Qasaimeh M,Al-Mardini M,et al. ZigBee-Based Irrigation System for Home Gardens[C]//2015 International Conference on Communications,Signal Processing,and their Applications(ICCSPA),Sharjah,2015:1-5.
[11] 徐叶,袁敏,李国军. 嵌入式Web服务器远程监控系统的设计与实现[J]. 计算机与现代化,2013(2):94-98.
[12] 王莉,周伟. 基于ARM的嵌入式Web服务器设计[J]. 计算机工程与应用,2012,14:90-93,213.
[13] 龙马工作室. HTML+CSS+JavaScript网页制作从新手到高手[M]. 北京:人民邮电出版社,2014:39-122.
DesignofRemoteMonitoringandControlSystemforMicro-MeteorologicalInformationBasedonEmbeddedWebServer*
ZHANGYonghong1,2*,LIHaifeng2,WANGLihua2,QIANChengshan3,MAOHaiqiang2
(1.Collaborative Innovation Center on Forecast and Evaluation of Meteorological Disasters,Nanjing University of Information Science and Technology, Nanjing 210044,China;2.School of Information and Control,Nanjing University of Information Science and Technology,Nanjing 210044,China;3.School of Computer and Software,Nanjing University of Information Science and Technology,Nanjing 210044,China)
Aiming at the demand of remote monitoring and control for micro meteorological environment,a remote micro-meteorological environment information monitoring and control system based on B/S system architecture is designed. Data acquisition and control system are realized by WSN(Wireless Sensor Network). The embedded Web server completes data processing and storage and other tasks;The front-end user interface for monitoring is designed by the application of HTML5+CSS+JavaScipt;By testing the system,it is good in real time,accurate data acquisition and friendly interface,which can meet the needs of remote monitoring and control for the micro meteorological environment in a specific area.
electronic technology;micro-meteorological;monitoring and control;B/S;embedded Web server
10.3969/j.issn.1005-9490.2017.05.038
项目来源:国家自然科学基金面上项目(51575283);南京信息工程大学大学生重点创新创业训练项目(201710300011)
2016-08-13修改日期2016-10-31
TP277
A
1005-9490(2017)05-1250-07
张永宏(1974-),男,汉族,山东临沂人,博士后,教授,主要研究方向为精密仪器与机械、模式识别与智能系统、遥感信息处理、物联网系统集成开发等,zyh@nuist.edu.cn;
李海峰(1990-),男,汉族,江苏徐州人,南京信息工程大学信息与控制学院硕士研究生,主要研究方向为嵌入式系统应用、物联网技术应用,haifengxdyc@163.com。