基于Wi-Fi的旅游团脱团预警系统的设计与实现

网络 无线技术
Wi-Fi是当今日常生活中使用十分广泛的无线传输技术,随处可见的Wi-Fi网络大大促进了移动互联网的发展。网络覆盖范围小是智能路由的一个缺点,但是在某些特定情景下,利用其覆盖面积小的特点,可以满足特殊的需求。例如需要监控某个终端是否处于一定范围内时,我们可以通过监控该终端是否处于某个Wi-Fi覆盖区域内来实现。本文根据这一思路,设计并实现了一套旅游团脱团预警系统,通过基于OpenWrt的智能路由器实现Wi-Fi探针,监控路由器信号范围内的终端,并由基于Android系统实现的手机客户端进行分析比对,最终达到脱团预警的目的。

Wi-Fi是当今日常生活中使用十分广泛的无线传输技术,随处可见的Wi-Fi网络大大促进了移动互联网的发展。网络覆盖范围小是智能路由的一个缺点,但是在某些特定情景下,利用其覆盖面积小的特点,可以满足特殊的需求。例如需要监控某个终端是否处于一定范围内时,我们可以通过监控该终端是否处于某个Wi-Fi覆盖区域内来实现。本文根据这一思路,设计并实现了一套旅游团脱团预警系统,通过基于OpenWrt的智能路由器实现Wi-Fi探针,监控路由器信号范围内的终端,并由基于Android系统实现的手机客户端进行分析比对,最终达到脱团预警的目的。

Wi-Fi是一种短程无线传输技术,能够在一定范围内支持互联网接入的无线电信号。它的***优点是传输速度较高,在信号较弱或有干扰的情况下,带宽可调整,有效地保障了网络的稳定性和可靠性。另外它的传输有效距离也很长,在开放性区域通信距离可达305米,使用特殊的天线技术可以达到1000米左右,在封闭性区域通信距离为76米~122米,加入功率放大电路可以增加其传输距离。近年来,Wi-Fi技术在智能家居、工业控制、移动手持设备等嵌入式环境中需求日益增多。

如今随着智能终端设备的普及、智能路由器的发展,市场上出现了一系列结合智能终端和智能路由器的应用系统。随着旅游业的迅速发展、旅游人数的增多,经常有“游客脱团”现象的发生,导游需要时刻关注旅行团中人员数量,这对于导游来说是种负担。利用Wi-Fi的探测功能可以开发一套脱团预警系统,在旅游团中,导游可根据该系统查看团员是否脱团。其优势在于搭建成本小、使用方便。但由于智能路由器是依据终端设备与人的映射来建立监控,其准确性可能会差于传感器的检测。

本文以基于Android系统的智能手机和基于OpenWrt的智能路由为例,设计实现了一套监控系统,其使用场景为前文所述的旅游团导游监控团员是否脱团。该套系统具有简单易用、简易部署的特点,十分符合上述使用场景。

系统模块设计

该系统主要由3部分内容构成:搭载在Android系统上的脱团预警APP客户端、智能路由器上的编程、服务器端。图1展示了3个组件的不同职能和相互之间的联系。


图1 系统示意图

1.Android客户端设计 Android客户端供团队中的导游或领队使用,主要具有以下两个方面功能。

***,导游可以方便地通过客户端连接智能路由,连接完毕后可以通过认证系统获取用户身份,完善相应权限的鉴权操作。通过了鉴权的用户可以查看所连接路由的信息,并且对路由进行操作。由于智能终端和智能路由的可交互操作,在该应用场景下,用户无需连接互联网即可获得流量统计的相关数据。

第二,导游在连接互联网之后,可以新建旅游团,完善旅游团信息,等待团员的签到,流程如图2所示。导游新建旅游团完毕后,团员可通过签到网址进行签到,此操作是为了获取团员的手机MAC地址,为后续的脱团监测所用。游客签到的流程如图3所示。游客签到完毕后,导游可开启脱团预警功能,脱团预警的流程如图4所示。


图2 新建旅游团流程图


图3 游客签到流程图

2.智能路由器端功能设计智能路由器上需要进行以下两个模块的开发。

(1)需要开发数据采集模块,采集连接到路由器上手机的MAC地址。该功能采用Wi-Fi探针技术实现,原理是利用智能设备商Wi-Fi模块发出的无线广播信号进行设备的感知。

(2)保存采集到的MAC地址、连接时间等数据,存储在本地,以供客户端进行分析和展现。

由于OpenWrt系统的长足发展,其支持的路由芯片越来越多,通过简单易用的方式降低了嵌入式Linux开发的门槛。因此本课题中的智能路由器基于OpenWrt进行开发。


图4 脱团预警流程图

3.服务器端功能设计服务器端的主要职能是负责与客户端的通信,在后台备份旅游团数据。服务器提供了接口可供客户端调用,客户端通过提供的接口进行旅游团的创建。同时,服务器端维护了签到的入口,游客通过签到入口将个人信息上报至服务器,服务器将对应信息同步给客户端,本文中的服务器端基于Play框架进行开发。

智能路由器端实现原理

1.数据采集模块数据采集模块是智能路由器端的核心,该模块通过以下3个子模块进行数据采集。

(1)数据搜集。数据搜集子模块工作在路由器的驱动层。路由器硬件接收到当前信道上的数据帧之后上报硬件终端。终端处理函数通过帧头信息判断帧的类型,并将相关信息提取出来,然后调用数据广播子模块提供的数据发送接口,发送给用户层的数据接收子模块。

(2)数据广播。数据广播子模块实时监听数据搜集子模块发送来的数据,将数据搜集子模块发送的数据发送给数据接收子模块,这些是主要的探针数据。数据广播子模块与其他子模块之间的数据交互如图5所示。


图5 数据广播子模块交互示意图

(3)数据接收。数据接收子模块根据应用层发来的参数,决定是否接收驱动层发送上来的数据,以及接收数据后,将数据以怎样的格式打印到控制台。数据接收子模块是连接驱动和应用层的一个核心模块,需要实时监听驱动层送来的探针数据,又可以接收用户设定的参数,将一些参数通过数据广播子模块设定进内核并驱动。该模块目前接收两个主要的用户设置参数,一是监听探测数据,二是设置RSSI的值。

2.数据处理模块数据处理模块调用数据侦听模块,获取数据侦听模块打印到控制台的数据,通过脚本将需要的探测帧的数据过滤出来,为每条数据打上时间戳,并进行简单的加密处理,***将处理好的数据写入本地文件,保存在固定路径中。

客户端将每隔一定时间请求路由器端的数据,通过FTP登录路由器,下载指定路径中的文件,对文件进行解析后获得所需的数据。

关键技术

1.利用Wi-Fi探针监测获取原始数据 802.11协议可以支持利用Wi-Fi探针实现监测周围终端的功能。协议要求每个AP(Access Point)每隔一定时间(几十毫秒到几秒不等)向周围的终端广播beacon帧,告知周围终端自己的信息,并通知终端可以连接。每个终端除了监听周边AP发送的beacon帧以外,还会发送probe帧,告知AP自己的MAC地址,并请求连接。

一般的无线路由器信号强度在-30dbm~-120dbm,有效距离大概是50~100米。利用路由能够搜索周围终端的MAC地址。路由收到探测帧后,将MAC地址记录下来,生成“MAC地址-信号强度-时间”格式的原始数据,将其保存成文本文件,等待服务器定时下载,进行处理分析。

2.通过处理原始数据进行脱团预警在本文的监控系统中,脱团预警是通过比对原始数据与白名单中的数据实现的。在智能路由器端,每隔一定时间刷新一次原始数据并写入文件保存;在客户端,每隔一定时间下载一次原始数据文件,并与白名单中的数据进行比对,如果发现白名单中的某个MAC地址没有在原始数据文件中出现,则发出警告。

由于原始数据量较为庞大,而白名单通常只有十几个到几十个,因此我们采取的比对算法如下:

  • (1)将客户端本地保存的白名单复制到哈希表中,以MAC地址为key;
  • (2)遍历原始数据,每条MAC地址均在哈希表中查找,如果找到该条地址,则将该条地址从哈希表中移除;
  • (3)如果哈希表长度变为0,说明所有白名单中的地址均在原始数据中出现,比对结束;
  • (4)如果原始数据遍历完毕,则哈希表中剩余的地址为未出现的地址,发出脱团预警。

在白名单长度不太长的情况下,哈希表的性能不会有太大降低,可近似认为每次查找的时间复杂度为O(1),总的比对过程时间复杂度为O(n),较为高效。

结束语:本文基于旅游团的实际需求出发,设计了一套完整的脱团预警监控系统,并基于Android系统、Play框架和OpenWrt平台进行了实现。该套系统在测试和实际使用中均取得了良好的效果,同时也为Wi-Fi探针技术的应用做出了有益的探索,为基于Wi-Fi面向不同情景应用系统的开发提供了一些参考价值。

责任编辑:未丽燕 来源: 通信世界网
相关推荐

2024-01-29 10:26:00

Wi-Fi

2020-04-08 16:09:37

机器学习Wi-Fi网络

2012-07-04 10:49:54

Wi-Fi

2017-03-06 15:45:44

Windows 10WindowsWi-Fi Sense

2020-12-07 11:28:02

Wi-FiWi-Fi 6

2021-08-01 12:39:26

Wi-Fi 7网络Wi-Fi 6

2011-11-28 14:36:41

2010-08-23 10:37:34

WI-FIWLAN

2012-07-13 10:23:04

Wi-Fi

2019-07-10 16:23:55

Wi-Fi

2016-01-13 10:45:57

Wi-FiHalow

2012-11-20 16:12:55

WLAN视频无线局域网

2010-09-13 12:07:04

Wi-Fi

2011-04-02 11:42:01

ITWi-Fi

2015-10-22 22:57:21

2011-12-09 12:29:11

Wi-Fi 网络管理

2009-03-02 20:22:05

Wi-Fi802.11

2020-08-12 09:26:08

谷歌地震预警系统安卓手机

2009-04-01 10:36:00

WAPI
点赞
收藏

51CTO技术栈公众号