Computer Systems & Applications,2019,28(4):236−241 [doi: 10.15888/j.cnki.csa.006875]©中国科学院软件研究所版权所有.
E-mail: csa@iscas.ac.cnhttp://www.c-s-a.org.cnTel: +86-10-62661041
基于无线传感网络的环境监控系统①
李少伟, 王喜喜, 傅 诗
(江汉大学 数学与计算机科学学院, 武汉 430056)通讯作者: 李少伟, E-mail: 55440881@qq.com
摘 要: 为了实现对环境系统的动态远程监控, 设计了一种基于Zigbee的无线传感网络监控系统. Zigbee无线数传终端模块通过内置的单片机系统, 实现了不同传感器的接口协议, 并对传感器数据进行了实时读取、编码与发送;系统中的协调器实现对数据包的接收、解码、验证并将正确的数据转发数据至服务器; 无线传感网络中引入了ZStack协议, 从而实现了对无线终端与协调器节点的动态增删; 监控终端分为桌面与移动端, 通过无线网络访问服务器中存储的数据, 实现对环境系统的远程实时监控.关键词: 监控; 传感网络; ZStack协议; 服务器; 移动端
引用格式: 李少伟,王喜喜,傅诗.基于无线传感网络的环境监控系统.计算机系统应用,2019,28(4):236–241. http://www.c-s-a.org.cn/1003-3254/6875.html
Monitoring System for Environment Based on Wireless Sensor Network
LI Shao-Wei, WANG Xi-Xi, FU Shi
(School of Mathematics and Computer Science, Jianghan University, Wuhan 430056, China)
Abstract: In order to realize the dynamic remote monitoring of the environmental system, a Zigbee-based wireless sensornetwork monitoring system is designed. The Zigbee wireless data transmission terminal module realizes the interfaceprotocol of different sensors through the built-in single-chip microcomputer system, and reads, encodes, and transmits thesensor data in real-time; the coordinator in the system realizes receiving, decoding, and verifying the data packet. Thecorrect data is forwarded to the server; the ZStack protocol is introduced in the wireless sensor network, thereby realizingthe dynamic addition and deletion of the wireless terminal and the coordinator node; the monitoring terminal is dividedinto a desktop and a mobile terminal, and the remote real-time monitoring of the environment system is realized byvisiting the data stored in the server through the wireless network.
Key words: monitoring; sensor networks; ZStack protocol; server; mobile client
环境监控系统广泛应用于实验室、工厂、农业以及军工等各个领域. 设计完善的环境监控系统可以大大减少灾难事故的发生, 从而间接提高安全生产效率.文献[1]提出了一种基于Android和Zigbee的农业环境监控系统, 可以实现移动端对环境的实时监控. 但由于其所使用的传感器与单片机之间采用固定的RS232接
口连接, 因此整个系统的可扩展性较差; 梁灼永、佟伟等人在论文中介绍了若干专用环境监控系统[2,3], 其最大的特点就是针对特定的系统有完善的监控功能. 但由于系统专用性强, 无法实现大范围推广, 同时不具备远程访问能力; 文献[4,5]将WIFI及网络技术引入系统中, 但最终仅仅实现了局域网内的访问, 同时传感器数
① 基金项目: 湖北省教育厅科学研究计划指导性项目(B2018254); 江汉大学博士启动基金(1008-06600001)
Foundation item: Scientific Research Guidance Program of Education Bureau, Hubei Province (B2018254); Start-up Fund for Ph.D. Student of JianghanUniversity (1008-06600001)
收稿时间: 2018-10-30; 修改时间: 2018-11-19; 采用时间: 2018-11-27; csa在线出版时间: 2019-03-28
236 研究开发 Research and Development
2019 年 第 28 卷 第 4 期
http://www.c-s-a.org.cn
计算机系统应用
据接口采用了与文献[1]相似的方法, 因此扩展性较差;文献[6]采用了数据库技术, 将传感器节点数据存放于数据库中, 可以方便对数据的各种操作. 但是该文中将传感器直接与服务器连接, 这种做法在工程实践中几乎没有实用性; 文献[7]中魏访将Zigbee技术与传感器相结合, 解决了传感器部署的难题. 但由于该系统仅仅实现了温湿度监控, 而且没有引入必要的通信协议, 导致无法形成复合传感器网络, 降低了系统可扩展性, 同时其监控端布置于PC机, 无法实现远程监控.
综合考虑以上系统中存在的不足, 本文提出了一种基于Zigbee无线传感网络与移动数据访问技术的环境监控系统. 为了实现在不增加接口硬件的情况下对不同传感模块的读写, 该系统利用Zigbee模块内置的51单片机系统模拟不同传感网络的接口协议, 从实现对传感模块的数据读取, 提高了系统的可扩展性; 在系统的设计过程中引入了ZStack协议栈以及移动端访问技术, 实现了对环境的温湿度、烟雾、漏水检测等六个方面的监控; 利用数据库技术强大的存储能力, 将获得的数据存储于其中, 方便任意网络设备对环境系统的远程监控. 该系统在提高系统集成度的同时, 简化了传感器的部署, 提高了系统可扩展性, 实现了移动端对监控系统的远程访问.
1 系统模型
如图1所示为环境监控系统的结构框图.
Zigbee 无线传感网络桌面节点客户端节点传感器
数据库局域网/广域网
传感器
服务器网络
移动客户端
协调器串口
Cortex A8
网关
节点传感器
节点传感器
图1 系统结构框图
从图1可知, 整个系统由Zigbee无线传感网络、网关、数据库服务器以及客户端组成, 其组成与功能如下:
(1) Zigbee无线传感网络包含节点传感器与协调器. 其中的节点传感器由传感器模块与基于
CC2530的Zigbee无线数传模块组成. CC2530模块中内建有51单片机系统, 可以实现对传感器数据的采集与打包, 并通过其中的无线Zigbee模块定时发送至协调器; 协调器则接收来自传感器的数据, 并将数据传送至网关. 由于ZStack协议栈的存在, 因此节点传感器的数量可动态增减.
(2) 基于Cortex A8的网关上运行有一套Linux操作系统. 该系统一方面通过串口接口来自协调器的数据, 另一方面则将数据通过网络发送至数据库服务器.
(3) 数据库服务器首先接收来自网关的传感器数据, 然后通过特定的协议对数据包进行解析并标以时间标签, 最后将数据存储于表中, 供远程客户端访问.
(4) 客户端程序通过TCP/IP协议连接到数据库服务器上的数据服务程序, 实时获取当前环境信息.
2 系统关键技术研究
为了简化软硬件设计上的难度, 本系统中所有的无线数传模块均具有相同的硬件结构, 同时引入ZStack协议, 并对数据传输格式进行了定义, 实现了基于Zigbee的无线传感网络. 如图2所示为基于CC2530的无线数据传输系统硬件电路图.
由图2可知, CC2530模块共引出19个I/O引脚,这些引脚可全部配置为通用I/O方式或者根据应用的需要, 将其中的部分配置为模拟输入引脚. 对于本系统而言, 所选用的传感器接口共分为三种, 分别是普通I/O口、IIC接口以及模拟数据接口. 因此, 我们可以利
用CC2530模块中的单片机系统直接实现对I/O端口以及模拟数据的读取. 但是对于IIC接口, 则需要利用普通I/O口模拟实现IIC协议[8].2.1 ZStack网络协议
由于本系统中引入了TI公司的ZStack协议栈技术, 因此Zigbee无线传感网络中的节点数传模块与协调器均具有相同的硬件结构以及相似的软件结构. 如表1所示为ZStack协议栈中用户需要修改的关键模块.
在编程实现表1中所有模块功能的前提下, 所有基于ZStack协议栈的节点传感器均可以动态加入或者撤出整个传感网络. 而且其传输过程对程序员而言完全透明, 大大降低了数传模块的软件开发难度.2.2 模拟IIC总线
在CC2530模块中并未集成IIC接口, 因此需要利用普通I/O接口模拟IIC总线协议中的SCL和
Research and Development 研究开发 237
计算机系统应用
http://www.c-s-a.org.cn
2019 年 第 28 卷 第 4 期
SDA接口, 从而实现对传感器数据的读取. 总体而言,
IIC总线的工作流程包括以下几个方面:
L1
VDD_3.3V
C11uFGND
C2100nFGND10391234363534191817161514131211987653837U1
DVD2DVD1GNDGNDGNDGNDP2_0P2_1P2_2P0_0P0_1P0_2P0_3P0_4P0_5P0_6P0_7P1_0P1_1P1_2P1_3P1_4P1_5P1_6P1_7
ACDD5ACDD3ACDD2ACDD1ACDD4ACDD6
212427282931
C3100nFGND
C4100nFGND
C5100nFGND
C6100nFC7100nFGND
FBC8100nFGND
GND
GNDP2_0P2_1P2_2P0_0P0_1P0_2P0_3P0_4P0_5P0_6P0_7P1_0P1_1P1_2P1_3P1_4P1_5P1_6P1_7
RF_NRF_P
2625
U23BAL4
BAL
125UNBLA134
MMCX-ANTGND
2450BM15A0002
J3
XOSC32K_Q1XOSC32K_Q2
SOSC_Q1SOSC_Q2DCOUPLRVLASGND
32332223403041
C91uF
1Y1
3
256GND
GNDGNDGND2
C1127pF
Y2
1
RESET_N20RESET_N
CC2530
R1
56KGND
32MHzC1027pFGND
32.768kHzC11C1315pF15pF
GNDGND
GND
图2 基于CC2530无线数传模块
表1 ZStack关键模块
模块名称
SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT
SAMPLEAPP_PERIODIC_CLUSTERID; SAMPLEAPP_FLASH_CLUSTERID
void SampleApp_Init (uint8 task_id)
uint16 SampleApp_ProcessEvent (uint8 task_id, uint16 events)
afStatus_t AF_DataRequest (afAddrType_t *dstAddr, endPointDesc_t *srcEP, uint16 cID, uint16
len, uint8 *buf, uint8 *transID, uint8 options, uint8 radius)
功能说明
常量, 数据定时发送间隔时间, 单位: ms消息簇ID, 即消息标识. 在此系统中分别表示定时
消息与突发消息. 可自行定义
初始化模块. 在此完成必要的初始化工作其中的AF_INCOMING_MSG_CMD事件表示有
待处理数据位于缓冲区
数据发送模块
(1) 起始和结束. 如图3所示为IIC总线的起始和结束时序图. 当总线处于空闲状态时, 且SCL处于高电平, SDA线上的下降沿表示起始信号; 当总线上的数据传输完成后, 且SCL处于高电平时, SDA线上的上升沿表示结束信号.
(2) 数据有效性. 如图4所示为总线上数据传输的时序图. 在数据传输过程中, 一旦SCL处于高电平状态, SDA上的数据则必须保持稳定.
SCL
SCLSDA
图3 总线起始与结束
238 研究开发 Research and Development
SDA
图4 总线数据有效性
2019 年 第 28 卷 第 4 期
http://www.c-s-a.org.cn
计算机系统应用
(3) 应答. 当主机向从机发送完一个字节的数据后,需要等待从机返回一个应答信号, 以确认从机是否成功接收到数据. 其中低电平0表示应答, 1表示非应答.如图5所示.
0
SCLSDA主机SDA主机
非应答应答
8
9
3 系统设计与实现
3.1 数据传输协议
根据上文所述, 本系统中实现了对六种不同种类传感器数据的读取与监控. 为了防止不同传感器数据在发送过程中由于产生冲突而出现的数据混乱以及丢失, 所有数据在发送前必须按照协议进行编码. 接收方在获取数据后, 则需要按照规则进行解码. 如表2所示为数据编码协议.
表2中有下划线的部分表示实时读取的传感器信息, 除协议结尾0x10为16进制外, 其余部分均采用ASCII码表示.
图5 应答信号时序
表2 数据编码协议
传感器类型烟雾传感器温湿度传感器雨滴传感器粉尘传感器磁场传感器气压传感器
编码格式$SM, 0/1, 0x10$TH, 温度, 湿度, 0x10$RD, 0/1, 0x10$DS, 粉尘指数, 0x10$MN, 磁场方向, 0x10$AP, 气压, 0x10
说明
0/1表示有烟/无烟状态
温湿度分别采用7字节ASCII码表示0/1表示有雨/无雨, 即检测是否漏水粉尘指数用3字节ASCII码表示, 取值0–127磁场方向用4位ASCII码表示, 取值0–3599
6字节ASCII码表示气压, 单位Pa
3.2 数据库设计
本系统中所采用的服务器运行有Windows操作系统, 因此选择SQL Sever数据库软件来存储获取到的传感器数据信息. 由于所传输的数据较为简单, 因此数据库中仅建立有一张表, 如表3所示为表中的列.
院的协助下, 本系统最终部署于江汉大学高性能计算实验室. 如图7所示, 为传感器部署图. 其中圆圈内为传感器节点.
由图7可知, 该实验室内部已安装部署有烟雾、温湿度等传感器节点用以监控室内环境. 但其采用有线的安装方式, 无疑会增加安装难度同时限制了其扩
说明烟雾温度湿度雨滴粉尘磁场气压时间
表3 数据表
列名smoketemperaturehumidityraindropdustmagneticairpressuretimestamp
数据类型nchar(1)nchar(7)nchar(7)nchar(1)nchar(3)nchar(2)nchar(6)datetime
展性; 采用无线节点实现数据的读取与传输, 恰恰可以克服上述缺点, 同时能灵活实现节点数量及种类的改变.
4.1 系统性能分析
本系统无线部分由6个传感器节点以及一个路由节点组成. 为了测试整个网络的扩展性、抗干扰性及数据传输速率, 网关节点会将收到的信息如图8所示实时显示在屏幕上. 用户只需要观察收到的信息是否有序, 即可判断无线收发是否正常.
本文采用如表4所示的数据设定数据发送间隔(见表1). 得到的结果如表4右侧所示.
根据CC2530用户手册[8]可知, 该芯片最大传输速率约为30 kbps. 表2所列举的数据编码协议最长不超过21个字符, 即0.7 ms即可发送完毕. 但由于ZStack协议栈的存在占用了大量资源, 因此数据发送间隔不能太小.
Research and Development 研究开发 239
3.3 软件设计
整个系统的软件设计分为四个部分, 分别是传感器节点(含协调器)、网关、服务器以及客户端. 各部分软件工作流程如图6所示.
4 系统应用与性能分析
为了验证该系统的实用性, 同时分析系统的运行效率, 在江汉大学交叉科学院与数学与计算机科学学
计算机系统应用
http://www.c-s-a.org.cn
2019 年 第 28 卷 第 4 期
开始
开始
串口初始化
传感器初始化
网络初始化
定时器初始化等待定时器读取数据
数据正确
数据编码发送数据
(a) 传感器数据读取流程
转发至服务器
等待数据
数据解析与验证
数据错误丢弃数据
发送数据(b) 网关数据转发流程
开始
开始
网络设置网络初始化等待服务器数据数据解析与验证
数据正确
数据错误丢弃数据
显示数据
数据错误丢弃数据
数据超出阈值?是
网络初始化
数据库初始化
通过端口1等待数据
数据解析与验证
数据正确存储至数据表
否
通过端口2向客户端发送数据
报警(d) 客户端访问流程
(c) 服务器数据存储流程
图6 系统工作流程
表4 速率测试数据表(单位: ms)
数据发送间隔
5000100050010010
数据收发状态正常正常正常正常
相关节点无数据
图7 传感器部署图
4.2 系统运行
如图9所示为基于Android的移动客户端监控软件. 软件运行后会提醒用户输入服务器IP地址以及数据转发软件所占用的端口号, 以便与数据转发软件建
图8 网关数据
立连接, 从而获取传感器数据. 由于当前系统主要用于内网测试, 因此并没有加入身份验证功能.
240 研究开发 Research and Development
2019 年 第 28 卷 第 4 期
http://www.c-s-a.org.cn
计算机系统应用
图9 软件登录
若上述信息输入正确, 则软件跳转进入如图10所示的运行界面. 在运行界面中, 弧形进度条表示当前粉尘量, 同时辅以优、良、差的文字进行描述; 云朵下方的雨滴图形表示是否漏水有雨滴渗入; 云朵图案右方为烟雾状态; 温度和湿度采用文字的形式告知用户.
图10 软件运行界面
5 结论与展望
本文提出了一种基于CC2530模块的Zigbee无线
环境监控系统. 该系统利用CC2530内部的51单片机作为主控芯片, 模拟外部传感器的接口协议, 从而在不增加接口器件的情况下, 适应不同传感设备的读写需求, 增强了整个系统的扩展性; 在完成对数据的采集后,该主控芯片对环境信息进行采集、编码以及传输, 同时引入了ZStack协议, 降低了传感网络中控制软件的复杂程度; 通过数据库服务器的建立, 实现了对数据的动态、远程访问. 与现有技术相比, 该系统在网络动态布局、扩展性以及软件灵活性方面有了一定的改善.在下一步的工作中, 可以尝试对多个场所的监控系统
进行互联, 建立多层次网络结构, 从而可以实现对更大范围的环境进行有效监控.
参考文献
1徐立. 基于Android和Zigbee的农业温室环境监控系统设
计. 南通职业大学学报, 2018, 32(2): 80–84.
2梁灼勇, 冒杰, 江婕, 等. 智能变电站视频及环境监控系统研
究. 机电工程技术, 2018, 47(7): 60–62, 79. [doi: 10.3969/j.issn.1009-9492.2018.07.019]
3佟伟. 论机房环境监控系统的多功能化. 信息记录材料,
2018, 19(8): 146–148.
4段顼, 黄同成, 张思阳. 基于WiFi大棚种植环境无线监控系
统设计. 邵阳学院学报(自然科学版), 2018, 15(4): 32–37.[doi: 10.3969/j.issn.1672-7010.2018.04.005]
5张晓培, 梁文海. 基于移动端的温室环境监控系统设计. 农
机化研究, 2018, 40(6): 215–219. [doi: 10.3969/j.issn.1003-188X.2018.06.041]
6魏访, 郑朝霞. 基于无线传感器网络的工业环境温湿度监测
系统. 仪表技术与传感器, 2018, (5): 55–57, 82. [doi: 10.3969/j.
issn.1002-1841.2018.05.014]
7杜芬芳. 华数传媒机房集中监控系统的设计与实现[硕士学
位论文]. 杭州: 浙江工业大学, 2015.
8TI. A true system-on-chip solution for 2.4-GHz IEEE
802.15.4 and ZigBee Applications. http://www.ti.com/cn/lit/gpn/cc2530. [2009-04].
Research and Development 研究开发 241
因篇幅问题不能全部显示,请点此查看更多更全内容