基于KW01?ZigBee+GPRS的无线气象监控系统的设计与实现

白聪++王宜怀++司萧俊



摘 要: 针对传统的气象监控方案布线成本高、运行功耗大、线路抗干扰差、难以适应复杂地形等问题,结合无线传感网技术,设计了一套含有感知层、网络层和应用层的基于 KW01?ZigBee和 GPRS的无线气象监控系统。组建的系统具有气象信息实时采集、无线传输、多方式展现,以及运行成本低、组网灵活等优点,而且具有较强的可复用性和可移植性。实践证明,该系统气象数据信息采集准确、数据传输稳定、温度阈值报警及时,可满足目前远程气象信息监控的需求。
关键词: KW01?ZigBee; GPRS; 气象监控; 实时信息采集; 温度阈值报警
中图分类号: TN948.64?34; TP391 文献标识码: A 文章编号: 1004?373X(2017)18?0070?05
Design and implementation of wireless meteorological monitoring system
based on KW01?ZigBee and GPRS
BAI Cong, WANG Yihuai, SI Xiaojun
(School of Computer Science and Technology, Soochow University, Suzhou 215006, China)
Abstract: Since traditional meteorological monitoring scheme has high wiring cost, high operating power consumption and poor circuit anti?interference, which is difficult to accommodate to the special environment with the complex terrain, a wireless meteorological monitoring system based on KW01?ZigBee and GPRS was designed in combination with wireless sensor network technology, which includes sensing layer, network layer and application layer. The system has the following advantages: real?time meteorological information acquisition, wireless transmission, multi?mode display, low operating cost, flexible networking, and strong reusability and portability. The practice proves that the system can perform accurate meteorological information acquisition, stable data transmission and timely temperature threshold alarm, which can satisfy the need of remote meteorological information monitoring.
Keywords: KW01?ZigBee; GPRS; meteorological monitoring; real?time information acquisition; temperature threshold alarm
0 引 言
随着经济和社会的发展,气象灾害的影响越来越广泛,造成的损失也越来越大,气象信息监测越发重要[1]。现有的气象信息监测大多是采用人工的或者预先布置好的有线方式进行采集。采用有线数据采集的气象站受环境、地理等因素的影响具有明显的局限性;而传统的人工的方式明显将会被历史淘汰,人工不仅加大了工作量,而且数据的准确性得不到保证[2]。国外先进自动气象站性能优秀但往往本地适配性差,而国产气象站成本较低但往往性能及服务达不到要求[3]。气象系统自动观测设备远程监控技术虽然是与先进的科技力量相结合,但目前的技术设备未能够达到完全自动化、网络化管理的效果[4]。
KW01?ZigBee作为一种新型 ZigBee功能节点,具有低功耗、低成本、组网灵活、集成度高、通信稳定、抗干扰能力强等特点,适合近距离无线通信,而 GPRS作为一种远程无线通信技术,具有实时在线、传输率大、频率利用率高、数据传输可靠性好等特点。因此,针对目前传统有线通信方式布线繁琐、不易扩充、功能单一等缺点,设计了一套 KW01?ZigBee和 GPRS技术相结合的系统来监测气象信息。
1 系统组成
基于 KW01?ZigBee与 GPRS技术,搭建出的无线气象监控系统如图1所示。参考物联网分层模型[5],将该系统分为三层,自底向上分别是感知层、网络层、应用层。整个系统由传感器节点、网关、服务器上的服务端、电脑和平板上的客户端、安卓手机上的 APP组成。
传感器节点采用 KW01?ZigBee技术完成数据采集、数据包接收、数据包处理和数据包发送等功能,保证传感器节点数据能够顺畅地传送到网关上。网关负责数据包协议转换、数据中转,通过 KW01?ZigBee技术完成与本网关内部传感器节点的通信,通过GPRS技术完成本网关与服务端之间的通信。服务端可以调用网关传输过来的数据传送给客户端和 APP,并向网关发送各种操作指令、设置各种参数等,也可以通过微信平台及时推送传感器节点及网关异常掉线情况、阈值报警等。客户端用于在電脑和平板上显示传感器节点的数据及数据存档,而 APP则是把数据显示在安卓手机平台上。
2 硬件设计
2.1 网关硬件设计
一个 KW01?ZigBee气象网络只有一个网关。网关汇聚整个 KW01?ZigBee气象网络中所有传感器节点的数据,并将这些数据通过 GPRS远程传输到服务器,完成 KW01?ZigBee气象网络与 GPRS网络协议的转换、数据的传输,是外界访问 KW01?ZigBee气象网络的“窗口”。网关主要由 GPRS模块、KW01?ZigBee无线通信模块、主控器模块、电源转换模块、存储模块以及RTC备用电源模块组成,网关结构及实物如图2所示。
考虑到网关对实现功能的配置要求,主控器芯片选用恩智浦(NXP)的 MK60DN512ZVLQ10单片机。它是一款采用 ARM Cortex?M4内核的32位低功耗处理器,拥有独立的指令总线和数据总线,拥有模拟、通信、定时等丰富的外设模块,片内 SRAM高达 128 KB,FLASH高达 512 KB,CPU主频可达 100 MHz,提供 JTAG接口,可方便进行程序烧录并支持在线仿真等[6]。
GPRS模块选用华为公司的 MG323模块,是一款4频段的GPRS模块,工作频段为GSM850/900/1 800/1 900 MHz, 支持GPRS CLASS 10和编码方式 CS?1,CS?2,CS?3及CS?4。SIM900外观小巧、性能稳定、性价比高,能满足本系统的工作需求。
KW01?ZigBee模块是笔者所在实验室自主研发的 ZigBee模块,选用恩智浦的 MKW01Z128CHN115J芯片。KW01 微控制器基于 ARM CortexTM?M0+处理器,运行速率高达 48 MHz,拥有 128 KB 闪存和 16 KB SRAM,在典型条件下的功耗低达 40 μA/MHz。该系统和外设旨在实现 1.7 μA 的设备待机电流,快速唤醒时间仅为 4.3 ms,设备停止电流低于 100 nA,其中包括无线配置数据保留。这些特性有助于最大限度地延长便携式系统的电池寿命。KW01芯片内部集成无线射频收发器 SX1233,支持 290~340 MHz,424~510 MHz以及862~1 020 MHz的无线频段,具有低功耗、低成本、高度集成、通信稳定等特点,适用于诸如智能家居、智能城市等多种物联网产品的研究与开发[7]。
存储模块用于扩展主控器的存储空间,可选用金士顿4 GB的TF卡,写入速度可达4 MB/s。为了确保系统时间的准确性,使系统时间在网关断电的情况下正常运行,本系统使用 RTC备用电源模块提供的纽扣电池保证 RTC模块的正常运行。MK60DN512ZVLQ10单片机的片内外设资源丰富,具备6个通用串行同步/异步通信接口:UART0~UART5。它们具有相同的功能,但是用不同的引脚通信,具有不同的寄存器控制模块。网关使用 UART5 和 KW01?ZigBee 模块连接, UART4 和 GPRS 通信模块连接。
2.2 传感器节点硬件设计
传感器节点由传感器采样模块、传感器接口模块、电源转换模块、电源指示灯模块、KW01?ZigBee模块、SWD调试模块6部分组成,是构成 KW01?ZigBee气象网络的基础平台,完成数据采集、数据包接收、数据包处理和数据包发送等功能。传感器节点结构及实物如图3所示。
传感器节点上的 KW01?ZigBee模块由KL26MCU通过 SPI与 RF进行通信,与网关上的 KW01?ZigBee模块在硬件结构上并无差异,两者的区别主要是在烧录的程序上。传感器采样模块包含所有要采集的气象要素的外围电路,因包含多个部分图3中没有明确标出,传感器接口模块是传感器的接入部分,SWD调试模块是方便 KW01进行 SWD调试的接口,电源指示灯模块是电路电源的直接电路反映。

图3 传感器节点结构框图及实物图
典型的气象要素包括温度、湿度、风速、风向、雨量、气压等,这些气象要素中对于温度的采集最为复杂,故以温度采样为例说明传感器节点的硬件设计。要采集 -40~60 ℃的温度,设计的采样电路如图4和图5所示。对于温度传感器数据采样,温度传感器采用四线制Pt100铂电阻作为敏感元件,其中两根信号线是 PT100A,另外两根信号线是 PT100B。温度测量选用 ROTRONIC AG公司最新生产的 Pt100铂电阻温度探头,具有集成度高、微功耗、智能化、高可靠、易维护等特点,广泛应用于各类对环境、温度测量数据要求较高的部门。Pt100铂电阻封装在一直径为4 mm的不锈钢管内,直接装在传感器的壳体上[8]。
2.2.1 恒流源驱动电路
恒流源驱动电路如图 4所示。稳压元件 TP?D把 5 V电压稳压至 2.5 V,接入运算放大器 LM324的 A路的正向输入端,由放大器的“虚短”特性,可知该路运算放大器的负向输入端电压也是 2.5 V,然后流经 2.5 kΩ的精密电阻 TP?R2,产生 1 mA的恒流源,供 Pt100使用。

图4 恒流源驱动电路
设计的恒流源电路的目标电流为1 mA,由TL431输出的基准电压与基准电阻共同决定。Pt100电阻的工作电流最大不允许超过5 mA,设计的电流源电路的电流定为1 mA。电路采用TL431作为稳压元件,工作电压是5 V,稳压输出为2.5 V,TL431的输入电流范围是 1~100 mA,故选用 510 Ω的限流电阻是合适的。虽然 TL431是精密稳压源,依然会引起较大的基准电压误差,为缩小误差,追加一路A/D通道用来测量恒流源的基准电压。恒流源的基准电阻选用0.1%误差的 2.5 kΩ的精密电阻。假如不增加一路A/D通道测量基准电压,假设基准电压误差是 0.02 V,Pt100测量电阻是100 Ω,那么测量的基准电压误差为0.9 mV,而增加一路 A/D通道則可以把基准电压误差降到 0.1 mV,同时选用 TL431也大幅缩减了稳压成本。
2.2.2 信号调理电路
当温度范围为-40~60 ℃时,Pt100的阻值范围[9]是 84.27~123.24 Ω,1 mA的恒流源驱动,那么 Pt100两端的电压范围是0.084~0.123 V,电压过低且范围较小,需要对电压进行放大,设计中放大倍数是9,放大后的电压范围是0.758~1.109 V。信号调理电路如图5所示。
PT100A1和 PT100A2是Pt100的一端,PT100B1和PT100B2是 Pt100的另一端,PT100A2和PT100B2即为Pt100两端的电压,同时也是TP?R6两端的电压。设LM324的B路输出端电压为[V1],LM324的D路负向输入端电压为[V2],LM324的C路输出端电压为[V3],LM32的D路正向输入端电压为[V4], LM324的D路输出端电压为[Vout],由虚短及分压原理,有:
[Vout=(TP-R3+TP-R4)TP-R4·TP-R8(TP-R8+TP-R9)·V1 =V3-V1]
因此信号调理电路的放大倍数为:
[(TP-R5+TP-R6+TP-R7)TP-R7]
3 软件设计
本系统结合KW01?ZigBee和GPRS技术,具备远程命令控制、定时轮训、节点在线检测等功能。基于以上功能,软件部分的设计主要包括网关软件的设计、传感器节点的软件设计。
3.1 网关软件设计
网关作为KW01?ZigBee气象网络与服务端之间的桥梁,能通过GPRS模块接收并处理服务端发送的命令,为保证GPRS模块与服务端的有效连接,网关需要通过GPRS模块与服务端发送握手信号,在握手失败时及时重新与服务端进行GPRS通信连接[10],增加GPRS发送缓冲区链表,当GPRS信号不好时将数据暂存入 GPRS发送缓冲区链表,与下一GPRS数据包一起发送。同时,网关管理其下辖的所有传感器节点,通过轮训确保所有的传感器节点在轮训周期内把温度数据返回到网关。每个轮训周期包含若干个回合,每回合遍历所有未应答节点。当轮训周期开始时,向每个节点各发送一次数据包,若节点应答则置节点应答状态标记,在轮训周期内该节点无需再次轮训,然后切换到下一节点,否则在下一回合继续轮训该节点,直至所有节点均应答。网关的软件流程图如图6所示。
3.2 传感器节点软件设计
传感器节点采用MQXLite操作系统,主要包括四个任务数据包接收任务、数据包处理任务、数据包发送任务和ADC采集任务,由调度器调度运行。数据包接收任务通过硬件过滤地址、网关号、网内地址過滤所有非本节点的KW01?ZigBee数据包,并将发给本节点的数据包放入待处理数据包链表。数据包处理任务完成数据包的解帧、处理及数据组帧,把完整的节点数据包放入待发送数据包链表。数据包发送任务用以发送节点的 KW01?ZigBee数据包。ADC采集任务采用双缓冲区机制,确保温度数据的新鲜度,借助中值及均值滤波消除电平抖动,同时使用最小二乘法分5段对温度进行回归,确保温度数据回归的准确度。传感器节点的软件流程图如图 7所示。

图7 传感器节点流程图
在-40~60 ℃区间上进行线性拟合,温度与电阻的关系模型为[T=A?R+B]。Pt100的分度表给出了整数温度与电阻值组成的数据对,据此可得到每段区间上的系数[A]和[B],如下:
[A=1C?i=1n(Ri-R)?(Ti-T)]
[B=T-A?R ]
[C=i=1n(Ri-R)2 ]
式中:[C]是为方便表示[A]引入的;[n]为每段区间上的数据对总数;[Ri]为区间上第[i]组数据对的电阻值;[R]为区间上所有数据对电阻的平均值;[Ti]为区间上第[i]组数据对的温度值;[T]为区间上所有数据对温度的平均值。
4 系统测试
系统测试部分主要包括数据准确性测试和数据稳定性测试。以温度为例,数据准确性测试过程中,把传感器温度探头放入 GHP?9080恒温箱中,操作 GHP?9080恒温箱面板来设定和调节温度,每次把恒温箱的设定值作为被检测点的真实值,稳定之后从KW01串口输出的数据作为被检测点的测量值,比较温度的测量值与真实值的数值差异,重复试验多次。温度以20 ℃为长度进行分段,表1为20~40 ℃区间一次的测量值与真实值数据对比情况。对比数据可以得出,样本最大误差为0.2 ℃,平均误差为0.03 ℃。
表1 温度测量值与真实值20~40 ℃区间数据对比
数据的稳定性测试。搭建测试平台使 100#网关下有101#,102#,103#三个节点,101#节点采集温度、湿度,102#节点采集风速、风向,103#节点采集光照、雨量、气压,以 12 h为步长,每天查看两次所有节点是否存在数据缺失。图8为一天中12 h的温度数据,因每小时数据过多仅截取每小时前20 min的数据用以显示。在客户端上可查找到所有历史数据,如果某分钟数据没有到达服务器,则该分钟数据缺失,否则数据正常。连续测试10天证明不存在数据包丢失情况,数据传输成功率可达100%。
同时,可在APP上显示最新1 min的所有气象要素数据见图9。除此之外,当数据超出设定的阈值范围后,也可以在微信平台上收到气象要素阈值报警信息。
5 结 语
本文提出的基于 KW01?ZigBee和 GPRS的无线气象监控系统设计方案,建立了一个远程与近程相结合的无线网络,削弱了干扰的影响,保证了数据传输的稳定性,并具有气象要素数据实时采集、无线传输、多方式展现,以及运行成本低、组网灵活等优点,目前已应用在一智能气象站项目中。通过扩展其他传感器,也可以应用在智能家居、智能交通等领域,有很好的市场价值和应用前景。
参考文献
[1] 付超.气象信息监测系统研究与设计[D].哈尔滨:哈尔滨工业大学,2015.
[2] 李涛.基于WSN的智能气象传感器设计及应用[D].苏州:苏州大学,2014.
[3] 王浩.自动气象监测系统的研究与应用开发[D].南京:东南大学,2014.
[4] 田峰.气象系统自动观测设备远程监控的技术现状和发展趋势[J].电子技术与软件工程,2014(11):255.
[5] 魏歌.不同物联网架构的分层标准的研究[J].计算机技术与发展,2015,25(1):221?225.
[6] 王宜怀,吴瑾,蒋银珍.嵌入式系统原理与实践:ARM Cortex?M4 Kinetis微控制器[M].北京:电子工业出版社,2012.
[7] 庞馥珊.KW01?ZigBee节点实验测试程序设计[J].技术与市场,2015,22(9):33?34.
[8] YIN X, WANG Y, DING R, et al. Effective experiment of elevated wind machine for frost protection with long blade in large apple orchards [J]. Transactions of the Chinese Society of Agricultural Engineering, 2014, 30(15): 25?32.
[9] 郑保,成鹏展,张建兰.提高铂电阻温度计测量精度的方法研究[J].计测技术,2006,26(1):56?59.
[10] 张玉杰,惠洒乐.嵌入式无线网关系统设计[J].自动化仪表,2012,33(12):71?73.