无线定位课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定位技术及其应用设计说明书
(封面)
学院名称:计算机与信息工程学院
班级名称: 13级物联网
学生:
学号: 2
题目:基于WiFi的定位系统设计指导教师
姓名:
日期: 2015年11月10日
第一部分:正文部分
一、选题背景
随着当前移动通信技术的发展以及无线网络的逐渐普及,对于基于定位服务的需求也迅速增加,例如,商场购物车定位和顾客消费习惯的收集;再者是医院重症患者的跟踪监护;以及还有学生上课期间的对所在的位置的收集等。所以定位的计算和服务在人们的日常生活中扮演者越来越重要的角色。
尽管基于GPS技术的室外定位已经达到很高的定位精度,但是由于GPS无法在室进行定位,所以室定位也就成为目前研究的焦点。现在的室定位有技术主要有红外定位、超声波定位、WiFi定位等。其中WiFi定位最受人们的关注,因为WiFi定位网络广泛存在于室的环境中,信息传输的速度比较快,而且硬件成本低,耗能也比较少。有利于在现在普及的WIFI热点的室实现,极大的弥补了GPS在建筑密集或者室应用的限制,扩大了室定位服务的应用行业和围。
二、方案论证
2.1 WiFi定位的网络成员与结构
IEEE 802.11主要规定了两种不同类型的基本架构:有基础架构的无线局域网络 (Infrastructure Wireless LAN) 和无基础架构的无线局域网络 (Ad Hoc Wireless LAN) 。在Wi-Fi定位中常用的架构是有基础架构,如下图2-1所示:
图2-1
2.2 WiFi定位的流程
(1)首先通过编写程序用来获取该移动设备周边的WiFi的物理地址。
(2)提取WiFi的物理地址并进行相应的解析。
(3)通过使用了NativeWiFi,可以获取到当前WiFi信号的RSSI值,并将其记录便可连续采集当前网卡所采集到所有WiFi信号的RSSI。
(4)添加MAP.html文件将采集到的信息加载到百度地图。
图2-2定位流程图
三、过程论述
3.1界面设计(如下图)
图3-1界面设计图
3.2 控件的设计
3.2.1 Label的使用:在工具箱中找到Label,拖放至设计界面中,如图3-2、图3-3所示,可以对其属性进行修改,以及在界面中移动其位置。
图3-2工具箱图3-3属性
3.2.2 TextBox的使用:在工具箱中找到TextBox,拖放至设计界面中,如图3-4、图3-5所示,可以对其属性进行修改,在界面中移动其位置。
图3-4 TextBox工具图图3-5 TextBox属性图
3.2.3 Button的使用在工具箱中找到Buttton,拖放至设计界面中,如图3-6、图3-7所示,可以对其属性进行修改,以及在界面中移动其位置。
图3-6 Button工具图图3-7 Button属性图
3.2.4实现基于WebBrowser加载Baidu地图,如图3-8所示。
图3-8 WebBrowser工具图
3.2.5在bin/Bebug路径下,新建文本文件,输入以下容,并重命名为Map.html,保存并退出,如图3-9所示。
图3-9 Map.html嵌入图
3.3功能设计
3.3.1加载百度地图的代码实例
新建一个txt文件,输入代码后将该文件改为Map.html,以下是代码:
body, html{width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}
#allmap{height:500px;width:100%;}
#r-result{width:100%; font-size:14px;}
.anchorBL{
display:none;
}
完成上述操作之后选中Form1,在事件选项中选择Load,并双击打开相应代码:private void Form1_Load(object sender, EventArgs e)
{
string str_url = Environment.CurrentDirectory + "/Map.html";
Uri url = new Uri(str_url);
this.webBrowser1.Navigate(url);
}
此时运行程序界面上会出现加载到WebBrowser的百度地图。
3.3.2 获取AP的相关信息
(1)下载ManagedWiFi:managedwifi.codeplex./
加入到工程中并添加引用,如下图3-10所示
图3-10添加AP
并申请命名空间为: using NativeWifi;
(2)获取WIFI的名称以及MAC地址,代码如下:
private void button3_Click(object sender, EventArgs e)
{
WlanClient client = new WlanClient();
foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
{
Wlan.WlanBssEntry[] WBE =
wlanIface.GetNetworkBssList();