1、 一种基于 WiFi 传感器网络 的 室内外环境 远程 监测 系统 设计与实现 刘红义 1,2 赵方 1 李朝晖 1 罗海勇 2 宋茂强 1 1 (北京邮电大学 , 软件学院 , 北京 100876) 2(中国科学院 计算技术研究所 , 普适计算研究中心 , 北京 100080) () 摘要 : 本文设计 及 实现 了一种基于 WiFi 传感器网络 的 室内外 远程 监测 系统。 该 系统 采用了基于 SoC 的 低功耗 、小型化 的 WiFi传感器 节点 采集 室 内外 环境信息 ,并 通过 Internet 向 远程 用户提供实时 监测 服务 。 该系统具有 功耗小、 成本低、部署方便等优
2、势 。 关键词 : 无线传感器网络 ; WiFi; 室内外 ;远程 监测 系统 中图分类号 : TP391 文献标识码 : 文章编号 : 9010 Design and Implementation of an Indoor and Outdoor Environment Remote Monitoring System based on WiFi Sensor Network Liu Hong-yi1,2 Zhao Fang1 Li Zhao-hui1 Luo Hai-yong2 Song Mao-qiang1 1 ( Beijing University of Posts and Tele
3、communications, School of Software Engineering, Beijing 100876, China) 2 (Institute of Computing Technology, CA S, Pervasive Computing Research Center, Beijing 100080, China) Abstract An indoor and outdoor environment remote monitoring system based on WiFi Sensor Network was introduced in this paper
4、. The system uses low power consumption and miniaturization WiFi sensor nodes, based on the SoC, collecting indoor and outdoor environmental information, and provides real-time monitoring service to remote users through the Internet. The system has the advantages low power consumption, low cost, fac
5、ilitated deployment and so on. Key words Wireless Sensor Network; WiFi; Indoor and Outdoor; Remote Monitoring System 引言 无线传感器网络( Wireless Sensor Network, WSN)具有感知、计算、无线通信能力和控制功能, 广泛应用于国防、军事、环境监控和设施农业等领域 1,2。 WiFi( Wireless Fidelity) 是一种 目前得到广泛应用的 短距离 无线通信协议 3 ,具有成本 低 、部署方便等 优势 。 本 文 采用 GainSpan 公司 开
6、发 的 低功耗双核SoC( System on Chip) 芯片 GS1010构建了基于 WiFi网络 的 室内 外 环 境远程 监测 系统 ,并 设计了收稿日期: 2010-4-25,改回时间: 2010-6-29 基金项目:国家自然基金 (60873244、 60973310)、北京自然基金 (4102059) WSN-Internet 应用网关, 实现 WSN 和 Internet 的协议数据包转换,以及温湿度、光照度等环境数据信息 的融合。 该系统利用目前已经 得到 广泛部署的 WiFi 网络,可随机接入因特网, 是一种比较理想的 室内外 环境监测解决方案。 1 WiFi 传感 网络
7、系统结构 根据 室内外 环境监测特点, 本文采用 了 图 1所示系统 网络架构 。 该系统主要由分布在 室内外 内的 WiFi传感节点( Node)、数据汇集节点( Sink)和系统管理中心(网关)等三部分组成。其中 WiFi 传感节点负责 定期 采集 室内外 环境信息(温湿度、光照度等),数- 2 - 据汇集节点 负责 接收 WiFi传感节点采集的 各种 数据 。数据汇集节点和 传感节点基于 WiFi 网络 进行数据通信 。系统管理中心 负责 将 WSN 网络 接入 Internet, 并对 数据包 的相关信息(温湿度、光照度等)进行提取和 解析, 然后 存储到数据库, 供以后 分析 和 显
8、示 用 。 W S N监 测 区 域W S NI n t e r n e t网 关N o d e S i n k客 户 端图 1 系统结构图 基于 WiFi 传感器网络 的 室内外 监测系统的体系结构如图 2 所示。其中监测的 目标网络为无线传感器网络 。 系统主要 包含以下 功能 模块 : (1)网络接口 模块 :对整个无线传感器网络进行监听; (2)数据处理 模块 :解析无线传感器网络协议,接收无线传感器网络中的节点数据 包 、 分析数据包中的数据,对解析好的数据进行分类; (3)命令发送 模块 :接收 browser 部分的命令设置请求,对无线传感器网络的属性进行设置; (4)定位 计算
9、 模块 :读取节点的位置信息,发送到 WEB接口用于节点图像在 browser 部分的显示; (5)数据库操作模块 :在服务器端完成数据库的相关操作及上载地图的存储功能、异常事件告警和日志存储功能。 目 标 网 络W S NW S N服 务 器 ( 无 线 传 感 器 网 络 网 关 )节 点 定 位 接 口 命 令 发 送 接 口 W E B 接 口数 据 处 理 数 据 提 取 分 类数 据 库 接 口 ( H i b e r n e t ) 网 络 接 口 ( S O C K E T )视 图 层B r o w s e r ( 客 户 端 )监 测 区 域 主页 面历 史 记 录 查询
10、页 面选 定 节 点 实时 监 测 页 面( J S P + A j a x + V m l + F o u s i o n C h a r t s )图 2 室内外 WSN 监测 系统的体系结构 2 室内外 远程 监测 系统设计 2.1 WiFi传感节点 WiFi传感节点由传感器 模块 ( SH11/TSL2550) 、处理 及 无线电通信模块 ( GS1010) 和电源供应模块 三部分组成 ,其 结构如图 3 所示 。 G S 1 0 1 0 S o C电 源 供 应 模 块S H 1 1传 感 器 模 块 处 理 及 无 线 通 信 模 块T S L 2 5 5 0图 3 基于 GS10
11、10 的 传感节点 体系结构 传感器模块集成了 SH11 和 TSL2550等传感器,它们分别负责监测区域 内温湿度和光照度信息的采集,该信息 均为数字信号输出,无需 A/D 转换 4。处理及无线传输模块采用了低功耗高集成度的 SoC芯片GS1010,负责完成整个传感节点的数据存储、处理和无线收发操作。电源供应模块为传感节点提供正常运行 所需要的能量,本文采用 3.6VDC5号 AA电池供电,并使用开关电源提供 GS1010 工作所需 的 1.8VDC。 GS1010 SoC 芯片 使用了 两个 ARM7 处理器,其中一个 为 应用处理器 ,内部集成了 Flash 和 SRAM 等存储器 ,外
12、扩 了两个 ADC、 I2C、 GPIO 等接口 , 用于接收传感器采集的 模拟和数字 信息 。 另一个处理器 集成了 802.11b/g 的 MAC/PHY 层,主要 负责无线数据收发。 该芯片 支持 IEEE802.11b/g/n 等 协议栈。 2.2服务器软件 平台 本系统服务器 端 软件 开发采用了 J2EE 技术, 系统 平台 包含 视图层 、业务逻辑层和数据访问层 等 三层结构。 其中 视图层采用 Ajax+Jsp 技术 , 客户端 可以使用 多 种 方式 显示 室内外 环境 信息。 客户端 基于 Ajax无刷新技术和异步通信技术 5, 定期主动 向服务器端发出 请求 ,以 获取
13、最新 的环境 信息。业务逻辑层采用Servlet 技术响应客户端 发出的各种 请求, 它 利用Socket 套接字监听网络 是否有 数据包 到达 , 还 可 根据室内外 环境的变化 发送指令数据包。业务逻辑层 不仅要负责完成对接收到的 数据包 进行解包和 解析, 并使用 Servlet 技术 把相关信息 发送到互联网, 而且还要 对Servlet 接收 到 的用户指令 进行 打 包, 然后 发送 到无线传感器网络,从而实现 WSN 和 Internet网络 的 相互 融合。数据访问层采用 Hibernate 技术实现数据库 的 访问, Hibernate 技术 采用 对象 /关系映射模型 ,有
14、效 屏蔽了 底层数据库, 为 业务逻辑层提供 各种 数据操作接口,实现软件 开发的 模块化。 服务器软件主要 包括以下两大功能 : - 3 - ( 1) 无线传感器网络节点数据的采集和管理 这部分功能 进一步 细化为 网络接口 、 数据提取分类 和 定位算法接口 等 。它们主要 负责接收来自无线传感器网络节点的数据包, 在 对数据包进行分解 后, 对相关数据进行处理,完成 环境监测和 传感网 的 管理 功能。定位算法接口 读取节点位置的相关配置文件,对节点位置 进行相应 转化 。 ( 2) 监测数据的组织与管理 这部分主要 包括 数据库接口 、 数据处理 、 命令发送接口 和 WEB 接口。当
15、 WEB 接口发现修改网络属性请求时,向传感器网络发送修改属性命令。将封装好的数据发送给 WEB接口 , 响应 browser 部分的数据请求,完成采集数据的数据库存储操作 , 并 对 日志 进行 记录,接收 WEB 接口发来的数据库索引请求提取相应数据给 WEB 接口,对节点的相关信息(包含位置信息)进行封装 。 服务器的 工作流程图如图 4 所示。 启 动 服 务是 否 有 客 户 端 请 求判 断 访 问 类 型温 室 环 境实 时 监 控历 史 记 录查 询节 点 定 位控 制 W S N 命 令控 制 W S N 命 令S o c k e t 监听 W S N调 用 持 久层 接 口
16、 ,操 作 数 据库定 位 算 法对 命 令 打 包接 收 W S N 数 据 包是 否 监 听 到W S N 数 据 包解 析 数 据 包发 送 解 析后 数 据解 析 后 数 据写 入 数 据 库S o c k e t 向 W S N发 送 数 据 包发 送 服 务 器 端 反 馈 信 息传 输 反 馈 信 息 结 束一 般 命 令一 般 命 令是 否 接 收 到 服 务关 闭 命 令退 出 服 务是否否是是否图 4 服务器工作流程图 服务 启动后,等待客户端请求,客户端向服务器提出请求,服务器接受请求并判断请求类型,主要请求类型有 室内外 环境实时监控、历史记录查询、控制WSN 命令、节
17、点定位和一般性命令。当服务器接收到客户端请求 室内外 环境实时监控,则服务器通过Socket监听 WSN数据包,监听不成功,则继续监听;监听成功,则接收数据包,并 进行 解析,将解析后的数据包反馈给客户端,并写入数据库。当接收到其它类型的请求时,服务器根据不同的请求,做出相应的处理,服务器将处理后的结果反馈给客户端。若收到服务 关闭命令,退出服务。 2.3数据监听 网关 使用 Socket 编程对无线传感器网络进行监听 , 并 接收传感器数据 。 该监听机制 采用 JAVA语言实现 , 其伪代码如下 : _ 初始化服务器 TCP Channel() 绑定的端口号为 8155: 初始化 Sele
18、ctor 对象 : 初始化服务器 TCP Channel 对象 : 获取服务器 TCP Channel 对应的 ServerSocket 对象 : 把 Socket 绑定到监听端口 8155 上 : 将服务器 TCP Channel 设置为非阻塞模式 : 将服务器 TCP Channel 注册到 Selector 对象 , 并指出服务器 TCP Channel 对无线传感器网络数据包的操作 为可接受请求操作 : while (true) 应用 Select 机制轮循是否有用户感兴趣的新的网络事件发生,当没有新的网络事件发生时,此方法会阻塞,直到有新的网络事件发生为止 : 得到活动的网络连接选择
19、键的集合 : 循环遍历整个选择键集合 : while (keys.size0) 如果关键字状态是为可接受,则接受连接,注册通道,以接受更多的事件,进行 相关的服务器程序处理 ; if(key.isReadable() 如果关键字状态为可读,则说明 TCP Channel 是一个客户端的连接通道,进行相应的读取客户端数据的操作 if(key.isWritable() 如果关键字状态为可写,则也说明 Channel 是一个客户端的连接通道,进行相应的向客户端写数据的操作 _ 通过使用 NIO 工具包进行并发型程序设计, 仅仅- 4 - 使用 一个或者很少几个 Socket线程 , 就 可以处理成千
20、上 万个 活动的 Socket连接, 可 大大降低服务器端程序开销 。 网络 I/O 采取非阻塞模式,线程不再在读或写时阻塞,操作系统可以更流畅 地 读写数据并可以更有效地向 CPU传递数据进行处理,提高系统性能。 2.4数据包解析 本系统产生 服务 、管理和应用等 三类 数据包 。服务 数据包用于建立和维护一个网络连接,它们包括802.11 的 MAC 层扫描、认证帧, 以及 ARP 数据包和DHCP 数据包。在网络连接、释放和重新载入过程中,这些数据包会在无线局域网和网络协议栈中自动发送。管理数据包在节点和网络管理系统( NMS)之间传送, 这些数据包 格式遵循 简单网络管理协议( SNM
21、P)。数据包 的交互流程 如图 5 所示 。 N M SN O D ETRAPGET-RESPONSEG E TGET-RESPONSES E T1 9 2 . 1 6 8 . 3 . 1 7 3 1 9 2 . 1 6 8 . 3 . 1 11 6 21 6 3图 5 数据包流 交互流程 服务器监测底层无线传感器网络,当网络产生数据时,以数据包的形式发送到服务器网关。节点发送的数据包格式如图 6 所示。 C O N T E N TF O R M A TD a t a F o r m a t V e r s i o n N u m b e r L e n g t hT i m e S t a
22、m pN o d e I DS e q u e n c e N u m b e rD a t aE x t e n s i b l eE x t e n s i b leT a g -L e n g t h -V a l u eT a g -L e n g t h -V a l u eT a g -L e n g t h -V a l u eT a g -L e n g t h -V a l u e图 6 无线传感器网络节点数据包格式 图 6 中 TimeStamp、 NodeID、 SequenceNumber、Data 项为必选项。 TimeStamp项包含 4字节长的时间戳; NodeI
23、D 项以 6 字节 MAC 地址形式标识节点 ID号; SequenceNumber 项是一个将所有连续发送的数据包数目累加的计数器,用来测试网络中的数据包发送错误率。 Data 项长度取决于网络中采集的节点数据,包含了光照数值、温度数值、节点电压、节点 RSSI值等信息。 3.实验结果 为了验证 本文设计的 室内外 远程监测系统有效性和实用性 , 作者分别 在北京邮电大学明光楼和中 科 院计算所 搭建了 实验 系统 ,对科研大楼内的温湿度、光照度等信息进行远程监测 。 基于该系统, 用户使用浏览器 , 不仅 可以在远程观测到实验现场的环境信息,而且还可以 获得实验现 场环境信息的 历史统计情
24、况。此外,根据应用需求,本文通过 动态 增加 WiFi 节点的休眠时间,有效延长了节点的电池使用寿命。 数据 监测 结果 以线性图 方式 动态 显示 监测节点的数据变化。 环境数据的历史查询 除了可以直接查询所有记录外,还支持按小时、按天、按月和按年平均 。 4 总结 本文 设计和实现了一个基于 WiFi传感器网络的室内外 环境信息 实时 远程监测系统 。该系统 与网关通信并利用 Socket监听程序接收数据包,进而解析数据包并将解析后的数据存入数据库。 本系统已经开始部署并将不断推广使用。 参考文献 : 1孙利民、李建中、陈渝、 朱红松 . 无线传感器网络 . 北京 : 清华大学出版社 .
25、2005. 2罗凯、李淼、胡泽林 . 基于 WSN 的农业信息远程监控系统的 设计与实现 . 自动化与仪器仪表 . 2008 No.4 pp.14 -17 3杜 毓聪 、 金连文 . 通过 WiFi移动 IP网络操控家用机器人方案在 PDA上的实现 .计算机应用 . 2009 Vol.29 No.7 pp.1865-1867 4王琳 、 别红霞 、 李锦涛 、 罗海勇 、 王非 . 煤矿瓦斯报警无线传感器网络节点设计与实现 . 电子技术应用 . 2006 Vol.32 No.5 pp.71-73 5许川佩 、 张民 、 张婧 . 基于 Ajax 的 J2EE 安全应用框架 . 计算机工程 . 2010 Vol.36 No.4 pp.110-111 作者简介 : 刘红义 ( 1984 ),男 ,北京邮电大学硕士生。 研究方向无线传感器网络,多媒体技术 (邮箱: ; 电话:15210833050 ) 赵方 (1968-), 女, 博士,副教授 。研究方向无线传感器网络,下一代网络协议。 李朝晖( 1966),女, 博士, 副教授。研究方向为图像与视频处理、多媒体技术。 罗海勇( 1967),男,博士, 高级工程师 。 主要研究领域为无线定位、普适计算 和多媒体技术 。 宋茂强( 1957),男,教授。主要研究领域为通信软件、流媒体监控技术。