wifi定位实验报告.docx
《wifi定位实验报告.docx》由会员分享,可在线阅读,更多相关《wifi定位实验报告.docx(13页珍藏版)》请在三一办公上搜索。
1、定位实验题目:基于WIFI位置指纹的室内定位实验成员:2012年12月一、实验题目实验题目基于Wifi位置指纹的室内定位实验实验要求学习android平台使用、android编程、android环境下wifi设备查看操作。实验内容利用最少数目的wifi热点设备,能够实时地对手机进行定位。二、实验目的目前全球定位系统(GPS,Global Positioning System)是获取室外环境位置信息通过实施 项目的最常用方式。但由于卫星信号容易受到各种障碍物遮挡,GPS/APGS等卫星定位技 术并不适用于室内或高楼林立的场合,目前无线室内定位技术迅速发展,已成为GPS的有 力补充。了解智能手机如
2、何利用Wifi热点设备信号强度进行室内定位。三、实验原理l. Android系统架构简介Android系统架构见图,它建立于Linux内核之上,包含了各种设备驱动 和管理模块,囊括了非常齐全的类库和框架,包括轻量级数据库SQLite、浏览 器Webkit等。整个系统建立在Dalvik虚拟机上,应用程序使用Java语言编 写。Android系统提供了丰富的框架(活动管理、位置管理等)来管理系统的软、硬件资源,整合了常用的应用程序(联 系人、电话本等),并开放了很全面的API供用户使用,整个平台具有良好的开 放性和扩展性。Android杂貌条拘2. 采用基于射频指纹的定位方法移动终端需要获得周围A
3、P的RSSI指纹特征,Android系统提供的接口可以 很方便地实现这一功能。3. 定位算法由于室内环境复杂,WiFi无线信号具有较强的时变无线信号传播衰减模型 难以很好的表征距离与信号强度间的映射关系,采用基于射频指纹匹配定位方 法,它具有较好的定位鲁棒性。指纹匹配方式定位算法建立在实验数据基础上, 它主要包括离线训练和在线定位两个阶段,其中离线训练阶段的任务是建立射频 信号强度向量和客户端位置间的一一对应关系,形成一个指纹库(radio map), 定位阶段则使用实时采集的信号强度向量去匹配训练阶段构建的指纹库,从而获 得目标的位置估计。4. 本次实验所采用的基本原理和基本思想如下:当手机
4、程序初次运行时,会创建一个数据库,数据库中包含两个表,一 个记录用户所采集的地点信息,另一个表记录每个之前所记录的地点信 息所对应的wifi信息,为一对多的关系。手持手机设备采集指纹信息,即地点信息,指纹信息会存入之前创建的数据库中,即把输入的地点名称录入表1中,并对此地点的wifi进行 扫描,将满足一定要求的wifi信息,每个wifi SSID+地点名称 作为一 个记录存进表2中。采集的指纹信息越多,定位就会越准确。定位时,先扫描得到所在地点的wifi信息列表,然后与数据库中每一个 地点所拥有的wifi信息进行匹配,若待定位地点的wifi信息绝大部分 都在数据库中某一地点的wifi信息列表中
5、(允许存在一定的误差),则 可以认为当前地点就是数据库中的那一个地点,于是输出那一个地点的 名称,完成定位。四、实验流程1. 首先在手机上面打开应用程序:如图1图12. 然后添加指纹信息,运行效果图如下图2和图3:图3重复此过程,直到数据库中有一定的数量的指纹信息3. 进入到查询界面,如图4:电E & Q壬笆很:网W44. 查询当前所在的位置,结果如图5所示:图5五、个人工作及总结本次实验我主要负责程序中关于指纹数据库初始化模块和查询用户当前位 置模块。在指纹数据库初始化模块中,主要任务是建立如下结构的表1: wifi和表 2: location:表IDWifi_SSIDLocation_ID
6、表:Location_IDLocation_name其中表一和表二通过Location_ID进行关联,建表的目的是存储location 信息及其对应的wifi列表信息,一个location信息对应多个wifi信息。在查询用户当前位置模块中,主要是进行待定位地点wifi列表信息与数 据库中已经存在地点的wifi列表信息进行匹配。在此过程中用一个数 组wificount保存匹配的wifi个数,wificounti代表待定位地点 wifi列表信息与数据库表二中location_ID为i的地点所拥有的wifi 列表信息匹配的wifi个数。最初实验只有两者个数完全一样时才输出此地点,但是在实际操作运行时
7、总是没有匹配的信息输出。后来经过分析和查相关的资料,发现生活 中很多wifi信号不是很稳定,并且wifi信号受外界环境的影响较大, 手机就算是在同一地点所收到的wifi信号变化也会很大,于是考虑允 许wificounti有一定的误差,但是多少范围内的误差即能尽大可能的 不影响定位的误差,又可以实现定位?后来经过测试,当wificounti 左右变化不超过3的时候可以满足一般性要求,实现定位。通过本次实验,知道了 wifi定位的基本原理,并且在实际中给予实现;熟 悉了安卓开发的一般性步骤,提升了自己的能力。同时发现,此安卓程序存在诸 多问题和可以改进的地方,如采集指纹信息的时候必须人为操作,可以
8、设置一个 定时器,周期性的进行采集。六、附录:实验代码1. 程序运行主入口:程序运行的主入口package com.example.w4;import java.util.List;import .wifi.ScanResult;import .wifi.WifiInfo;import .wifi.WifiManager;import android.os.Bundle;import android.app.Activity;import android.content.ContentValues;import android.content.Intent;import android.dat
9、abase.sqlite.SQLiteDatabase;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity (public static int locationnum=0;public static int
10、 wifinum二new int100;public TextView text1,text2,text3,text4,text5;Override创建public void onCreate(Bundle savedInstanceState) ( super.onCreate(savedlnstanceState);setContentView(R.layout.activity_main);DBHelper source=new DBHelper(this);SQLiteDatabase db =source.getWritableDatabase();Buttonlocationadd
11、button二 (Button)findViewById(R.id.locationaddbutton);Button searchbutton =(Button)findViewById(R.id.searchbutton);locationaddbutton.setOnClickListener(newAddButtonClickListener();searchbutton.setOnClickListener(new SearchButtonClickListener();text1=(TextView)findViewById(R.id.text1);text1.setText(R.
12、string.hello_world);/ “输入当前地点的位置”按钮的动作监听器public class AddButtonClickListener implements OnClickListener(Overridepublic void onClick(View v) (locationnum+;Intent intent =new Intent(MainActivity.this,Add.class);startActivity(intent);/ “查询当前所在的位置”按钮的动作监听器public class SearchButtonClickListener implement
13、s OnClickListener( Overridepublic void onClick(View v) (Intent intent =new Intent(MainActivity.this,Search.class);startActivity(intent);2. 指纹数据库初始化模块:/创建一个空的数据库,初始化数据库package com.example.w4;import android.content.Context;import android.database.DatabaseErrorHandler;import android.database.sqlite.SQL
14、iteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.widget.Toast;public class DBHelper extends SQLiteOpenHelper (private static final int DATABASE_VERSION =1;private static final String DATABASE_NAME =wifilocation.db”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- wifi 定位 实验 报告
链接地址:https://www.31ppt.com/p-4926129.html