基于Wi-Fi的信息采集与定位系统设计

发表时间:2021/7/28   来源:《中国科技信息》2021年9月上   作者:宁伟强
[导读] 随着科技的发展,智能手机和4G网络迅速普及。由于大部分地区网络流量收费较高,运营商公共WLAN热点信号强度较弱,Wi-Fi主密钥等软件应运而生。

宁伟强  身份证号码:450902199003****11

摘要:随着科技的发展,智能手机和4G网络迅速普及。由于大部分地区网络流量收费较高,运营商公共WLAN热点信号强度较弱,Wi-Fi主密钥等软件应运而生。人们可以通过这个软件共享连接到手机的WiFi热点,并将热点信息数据上传到服务器数据库。因此,当其他用户使用该软件时,他们不仅可以通过软件的内置地图查看某个区域是否有共享的Wi-Fi热点,还可以通过其他用户共享的Wi-Fi密码免费上网。本文利用智能手机作为定位设备,搜索和收集周围无线接入点的信息,并将信息数据上传到后台服务器,实现了一个无线信息采集和定位系统。该系统利用GPS定位服务和手机的Wi-Fi功能,可以获取手机设备的位置信息,并通过百度地图显示当前位置,可以直观显示设备的当前位置。同时通过手机扫描采集周围的无线AP信息,最后通过Socket通信将采集到的无线AP信息和GPS位置信息以JSON格式发送到远程Socket服务器,实现Wi-Fi的信息采集和定位。
关键词:Wi-Fi;信息采集;定位系统设计
        1  系统整体设计
        本文设计的Wi-Fi信息采集定位系统主要采集智能手机周围的无线AP数据,结合设备当前的位置信息,实时显示在百度地图上,并将采集到的数据发送到远程服务器进行存储。智能终端启动采集客户端后,首先判断手机是否启动了GPS定位服务。如果没有,直接跳转到手机GPS的设置界面。启动GPS后,主界面会在短时间内显示当前GPS信息,包括海拔和经纬度,然后通过百度地图显示。然后用户可以点击查看按钮查看周围Wi-Fi的详细情况,界面会跳转到Wi-Fi列表。在跳转到Wi-Fi列表的过程中,客户端会将主界面获取的GPS数据转移到WiFi列表界面。该列表将显示无线热点的名称、无线设备的MAC地址、加密方法和无线信号强度。同时,客户端将GPS数据和Wi-Fi数据形成JSON格式,然后传输到后台服务器。只要点击无线列表的刷新按钮,就会进行套接字通信来发送数据。
        2  系统设计
        该系统的主要功能模块包括GPS定位、Wi-Fi数据采集、百度地图显示、远程服务器通信等模块。开发环境采用Eclipse和Android SDK搭建。
        2.1  GPS定位
        GPS(全球定位系统)是美国在20世纪70年代开发的,历时20年,耗资200亿美元,1994年完成。整个系统由空间部分、地面部分和用户部分组成。作为新一代卫星导航定位系统,它可以在海、陆、空进行全方位实时导航定位。目前,全球定位系统得到了广泛的应用,从最初用于军事行动到现在,全球定位系统已经广泛应用于各个领域,尤其是民用导航,如车辆导航、船舶海洋导航等。卫星导航定位应用产业已成为八大无线产业之一。全球定位系统是继蜂窝移动通信技术和互联网技术之后,世界上第三个新的信息技术经济增长点。
        Android系统中的Android.location系统包提供定位服务。定位系统包中有五个类别,包括位置管理器、位置提供器、位置监听器、标准和位置。首先,您需要声明并创建一个位置管理器对象来获取系统服务。程序启动后,判断手机的全球定位系统是否是通过启用提供商的方法打开的。如果没有,会弹出消息提示,页面跳转到GPS定位服务设置页面。手机GPS设备可以使用位置管理器中的get Best Provider方法获取,其中get Criteria函数设置地理位置查询的条件,如设置查询精度、速度、是否需要海拔信息等。最后,使用Location Manager中的get Last Known Location方法从GPS设备获取最新的位置信息,并将信息分配给位置变量,然后将位置变量传递给update View函数,添加Location Listener,注册一个周期性的位置更新事件,每1000ms更新一次,最小间隔5m。这个监听器的主要任务是不断刷新,获取GPS信息。当全球定位系统信息发生变化时,它调用更新视图函数。当update View函数接收位置变量时,它首先判断位置变量是否为空。如果不为空,则使用获取经度、获取纬度和获取海拔获取经纬度信息,并在程序界面中实时显示定位信息。
        2.2  Wi-Fi数据采集
        在中国较大的城市,Wi-Fi信号基本覆盖了餐馆等很多服务场所和学校等公共场所。目前很多高校都在图书馆以外的地方在校园网上设置了Wi-Fi。随着经济和科技的不断发展,Wi-Fi将很快成为一种非常常见的公共服务,Wi-Fi网络的建设也将是城市基础设施建设的重要环节。同时,在Wi-Fi覆盖范围不断扩大的背景下,各终端厂商也不断推出各种具有Wi-Fi功能的终端设备。除了常见的笔记本电脑和手机,由于智能家居的概念,电视、电饭煲、冰箱等许多最新的家用电器都嵌入了Wi-Fi模块。Android系统提供的Wi-Fi无线网络API都在android.net.wifi包中,其中主要使用的类有管理Wi-Fi的Wifi Manager类、描述Wi-Fi连接信息的Wifi Info类、存储Wi-Fi网络配置的Wifi Configuration类、存储扫描结果的Scan Result类。首先,我们需要定义和创建Wifi管理器和Wifi Info对象,并获取相关的系统服务。然后使用Wifi Manager提供的start Scan方法扫描Wi-Fi,通过get Scan Result获取扫描结果,将结果存储在Wi-Fi缓冲变量中,并使用to String方法转换为String类型,更新到界面显示控件。
        2.3  百度地图Android SDK
        百度地图Android SDK是基于Android 2.1及以上的应用程序界面。开发者可以用这个SDK开发适合Android移动设备的地图应用。用户可以通过调用SDK接口访问百度地图服务和数据,构建功能丰富、交互性强的Android移动设备地图应用[5]。要使用百度地图,您必须在百度地图开发中心申请一个密钥。有了Key键之后,才能使用百度地图提供的相关服务。开发人员可以根据程序服务生成API密钥[6]。应用完成后,根据功能需求下载相应的开发包。这个系统只需要使用基础定位和基础地图开发资源,如图2所示。解压下载的开发包,将libs文件夹中的所有文件复制到Android项目目录下的libs目录,然后配置Android Manifest.xml文件,在应用中添加API Key和百度地图SDK所需的所有权限。
          
               

        2.4  远程通信
        Android应用一般使用Socket远程与服务器通信[7]。Socket也叫socket,用来描述IP地址和端口,是一个通信链的句柄。Socket通信的主要方法封装在Android SDK的Socket和Server Socket类中。通信过程中有两种关键方法:获取输入流和获取输出流。前者得到一个输入流,后者得到一个输出流。客户端和服务器可以调用自己的get Input Stream和get Output Stream方法,实现服务器和客户端之间的一对一流传输。由于Android的主线程是UI线程,在主线程中进行网络通信时交互界面无法响应,所以要为Socket通信创建一个新的线程。套接字通信需要通过服务器的IP和端口号连接到服务器,端口号的范围一般为1024 ~ 65535。当应用程序向服务器发送数据时,它需要创建一个输出流来将数据写入输出流,使用write UTF方法将数据写入输出流,并在服务器上创建一个输入流来从输入流中读取数据。
        结语:
        无线网络技术已经融入到人们的日常生活中,无线路由器基本安装在每个家庭。无线资源的利用是当前的应用热点。本系统成功实现了基于Wi-Fi的信息采集定位系统的设计,使智能手机客户端能够完成GPS定位,用百度地图显示当前位置,利用手机的Wi-Fi功能搜索周围的无线ap信息,在客户端显示GPS数据和无线AP信息,并将采集的数据以JSON格式发送到远程服务器存储,是无线网络资源共享的重要应用。
参考文献:
[1]程泓璋,罗鑫浩,郭荞声,于子博,刘伟东.基于Wi-Fi探测数据包的公交客流检测研究[J].中国科技信息, 2020(Z1):65-67.
[2]汪宝.智能手机轨迹数据在居民出行调查中的应用[J].上海建设科技,2020(04):56-57+61.
[3]张雪冬,刘颖.基于卫星的定位过程方法研究[J].鞍山科技大学学报,2007(04):441-444.
[4]郭倩,韩博,吴飞龙,朱晓芒.基于云计算的校园LBS定位技术在Android平台上的研究与应用[J].中国教育信息化,2020(06):89-93.

投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: