无线定位课程设计_第1页
无线定位课程设计_第2页
无线定位课程设计_第3页
无线定位课程设计_第4页
无线定位课程设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、可编辑定位技术及其应用 设计说明书(封面)学院名称: 计算机与信息工程学院 班级名称: 13级物联网 学生姓名: 学 号: 2 题 目:基于WiFi的定位系统设计 指导教师姓 名: 日 期: 2015年11月10日 第一部分:正文部分一、选题背景随着当前移动通信技术的发展以及无线网络的逐渐普及,对于基于定位服务的需求也迅速增加,例如,商场购物车定位和顾客消费习惯的收集;再者是医院重症患者的跟踪监护;以及还有学生上课期间的对所在的位置的收集等。所以定位的计算和服务在人们的日常生活中扮演者越来越重要的角色。尽管基于GPS技术的室外定位已经达到很高的定位精度,但是由于GPS无法在室内进行定位,所以室

2、内定位也就成为目前研究的焦点。现在的室内定位有技术主要有红外定位、超声波定位、WiFi定位等。其中WiFi定位最受人们的关注,因为WiFi定位网络广泛存在于室内的环境中,信息传输的速度比较快,而且硬件成本低,耗能也比较少。有利于在现在普及的WIFI热点的室内实现,极大的弥补了GPS在建筑密集或者室内应用的限制,扩大了室内定位服务的应用行业和范围。2、 方案论证2.1 WiFi定位的网络成员与结构IEEE 802.11主要规定了两种不同类型的基本架构:有基础架构的无线局域网络 (Infrastructure Wireless LAN) 和无基础架构的无线局域网络 (Ad Hoc Wireless

3、 LAN) 。在Wi-Fi定位中常用的架构是有基础架构,如下图2-1所示: 图2-12.2 WiFi定位的流程(1) 首先通过编写程序用来获取该移动设备周边的WiFi的物理地址。(2) 提取WiFi的物理地址并进行相应的解析。(3) 通过使用了NativeWiFi,可以获取到当前WiFi信号的RSSI值,并将其记录便可连续采集当前网卡所采集到所有WiFi信号的RSSI。(4) 添加MAP.html文件将采集到的信息加载到百度地图。移动终端获取WiFi Web服务器WiFi数据平台进行WiFi的解析加载到百度地图 图2-2定位流程图精品文档三、过程论述 3.1界面设计(如下图) 图3-1界面设计

4、图 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-

5、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, htmlwidth: 100%;height: 100%;margin:0;font-family:微软雅黑;#allmapheight:500px;width:100%;#

6、r-resultwidth:100%; font-size:14px;城市名定位 .anchorBL display:none; 经度: 纬度: / 百度地图API功能var map = new BMap.Map(allmap);map.centerAndZoom(new BMap.Point(116.331398,39.897445),11);map.enableScrollWheelZoom(true);/ 用经纬度设置地图中心点function theLocation()if(document.getElementById(longitude).value != & document.g

7、etElementById(latitude).value != )map.clearOverlays(); var new_point = new BMap.Point(document.getElementById(longitude).value,document.getElementById(latitude).value);var marker = new BMap.Marker(new_point); / 创建标注map.addOverlay(marker); / 将标注添加到地图中map.panTo(new_point); 完成上述操作之后选中Form1,在事件选项中选择Load

8、,并双击打开相应代码: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:/加入到工程中并添加引用 ,如下图3-10所示

9、图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(); for (int i = 0; i WBE.L

10、ength - 1; i+) for (int j = i; j WBE.Length - 1; j+) Wlan.WlanBssEntry index; if (WBEi.rssi = WBEj.rssi) index = WBEi; WBEi = WBEj; WBEj = index; for (int i = 0; i 3; i+) STRi = new info(GetStringForMACAddress(WBEi.dot11Bssid), WBEi.rssi.ToString(); foreach (Wlan.WlanBssEntry sub_wbe in WBE) string

11、SSID = GetStringForSSID(sub_wbe.dot11Ssid); string MAC = GetStringForMACAddress(sub_wbe.dot11Bssid); string RSSI = sub_wbe.rssi.ToString(); string LinkQuality = sub_wbe.linkQuality.ToString(); textBox1.AppendText(SSID: + SSID + + MAC: + MAC + + RSSI: + RSSI + + LQ: + LinkQuality + System.Environment

12、.NewLine); JavaScriptSerializer Serializer = new JavaScriptSerializer(); string s = Serializer.Serialize(STR); String S = /api/LocationByWifiData?requestdata= + s + &type=1&key=5888d456644a4d8eb92cf9bc92fa8c85; textBox2.Text = S; textBox2.Show(); 3.3.3提取MAC地址 private void but

13、ton4_Click(object sender, EventArgs e) string _StringURL = textBox2.Text; try HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_StringURL); request.Method = GET; request.Accept = */*; request.KeepAlive = false; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream dataS

14、tream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); string responseFromServer = reader.ReadToEnd(); response.Close(); reader.Close(); dataStream.Close(); this.textBox2.Text = responseFromServer; catch (Exception ex) MessageBox.Show(ex.ToString(); 3.3.4解析MAC和SSID

15、 private string GetStringForMACAddress(byte macAddr) uint num = (uint)macAddr.Length; string array = new stringnum; int num2 = 0; while (long)num2 (long)(ulong)num) arraynum2 = macAddrnum2.ToString(x2).ToUpper();/ToString(x2):X为十六进制,2为每次都是两位数. num2+; return string.Join(:, array);/Join()方法:串联数组里所有字符串

16、,并用指定分隔符连接 private string GetStringForSSID(Wlan.Dot11Ssid ssid) return Encoding.UTF8.GetString(ssid.SSID, 0, (int)ssid.SSIDLength);/0表示索引,ssid.SSIDlength表示解码字节数 3.3.5将解析的数据定位到百度地图 private void button1_Click(object sender, EventArgs e) HtmlElement HE_longitude = webBrowser1.Document.GetElementById(lo

17、ngitude); HE_longitude.SetAttribute(value, location0); HtmlElement HE_latitude = webBrowser1.Document.GetElementById(latitude); HE_latitude.SetAttribute(value, location1); webBrowser1.Document.InvokeScript(theLocation); 四、结果分析4.1 WiFi定位分析图如下图: 图4-1 WiFi定位图由上图可知通过用C#软件编写程序实现了WiFi的定位的基本功能,通过点击获取按钮搜索到周边的WiFi,点击请求和解析的按钮然后得到对应的具体地址。然后点击定位按钮并能将其成功的定位到百度地图上。尽管界面比较简单,但是基本上能获取WiFi定位条件下所需要的数据。经过多次的测试,程序还是比较稳定的,每次都能顺利的运行。总体来说,该WiFi定位系统还是相对完善的,是可执行的。五、结论(或总结)通过本次WiFi定位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论