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

下载本文档

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

文档简介

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

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

3、(AdHoc Wireless LAN) 。在 Wi-Fi 定位中常用的架构是有基础架构,如下图 2-1 所示:STA3AP 接入点ESSSTA4STA2AP接入点DS 分配系统STA1BSS1图 2-12.2 WiFi 定位的流程 ( 1)首先通过编写程序用来获取该移动设备周边的 WiFi 的物理地址。( 2)提取 WiFi 的物理地址并进行相应的解析。( 3)通过使用了 NativeWiFi ,可以获取到当前 WiFi 信号的 RSSI 值,并将其记 录便可连续采集当前网卡所采集到所有 WiFi 信号的 RSSI。(4)添加 MAP.html 文件将采集到的信息加载到百度地图。移动终端获取

4、 WiFiWeb 服务器WiFi 数据平台进行 WiFi 的解析加载到百度地图图 2-2 定位流程图三、过程论述3.1 界面设计(如下图)图 3-1 界面设计图3.2 控件的设计3.2.1 Label 的使用:在工具箱中找到 Label ,拖放至设计界面中,如图 3-2、图 3-3 所示,可以对其属性进行修改,以及在界面中移动其位置。图 3-3图 3-2 工具箱属性3.2.2 TextBox 的使用: 在工具箱中找到 TextBox,拖放至设计界面中,如图 3-4 、图 3-5 所示,可以对其属性进行修改,在界面中移动其位置。图 3-4 TextBox 工具图图 3-5 TextBox 属性图

5、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 文件,输入

6、代码后将该文件改为 Map.html ,以下是代码: 微软雅黑body, htmlwidth: 100%;height: 100%;margin:0;font-family:;#allmapheight:500px;width:100%; #r-resultwidth:100%; font-size:14px;uscript type=text/javascript 城市名定位 .anchorBLdisplay:none;经度 : 纬度 : / 百度地图 API 功能var map = new BMap.Map(allmap);map.centerAndZoom(new BMap.Point(

7、116.331398,39.897445),11); map.enableScrollWheelZoom(true);/ 用经纬度设置地图中心点 function theLocation()if(document.getElementById(longitude).value != & document.getElementById(latitude).value != )map.clearOverlays();var new_point = new BMap.Point(document.getElementById(longitude).value,document.getElementB

8、yId( latitude).value);var marker = new BMap.Marker(new_point); / 创建标注 map.addOverlay(marker); / 将标注添加到地图中 map.panTo(new_point);完成上述操作之后选中 Form1,在事件选项中选择 Load,并双击打开相应代码:private void Form1_Load(object sender, EventArgs e)string str_url = Environment.CurrentDirectory + /Map.html; Uri url = 此时运行程序界面上会出现

9、加载到 WebBrowser的百度地图3.3.2 获取 AP的相关信息(1)下载 ManagedWiF:i managedwifi.codeplex./加入到工程中并添加引用 ,如下图 3-10 所示图 3-10 添加 AP 并申请命名空间为: using NativeWifi;(2)获取 WIFI 的名称以及 MAC地址,代码如下:private void button3_Click( object sender, EventArgs e) WlanClient client =new WlanClient ();fore ach ( WlanClient . WlanInterface w

10、lanIface in client.Interfaces)Wlan. WlanBssEntry WBE = wlanIface.GetNetworkBssList();for ( int i = 0; i WBE.Length - 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 = newinfo (GetSt

11、ringForMACAddress(WBEi.dot11Bssid), WBEi.rssi.ToString();foreach ( Wlan. WlanBssEntry sub_wbe in WBE)string SSID =GetStringForSSID(sub_wbe.dot11Ssid);string MAC =GetStringForMACAddress(sub_wbe.dot11Bssid);string RSSI = string LinkQuality = textBox1.AppendText( SSID: + SSID + + MAC: + MAC + + RSSI: +

12、 RSSI + + LQ: + LinkQuality + System. Environment .NewLine);JavaScriptSerializer Serializer = new JavaScriptSerializer ();string s = Serializer.Serialize(STR);String S =api.haoservice./api/LocationByWifiData?requestdata=+ s +&type=1&key=5888d456644a4d8eb92cf9bc92fa8c85 ; textBox2.Text = S;textBox2.S

13、how();3.3.3 提取 MAC地址private void button4 Click(object sender, EventArgs e) string _StringURL = textBox2.Text;tryHttpWebRequest request =(HttpWebRequest)WebRequest.Create(_StringURL); request.Method = GET; request.Accept = */*;request.KeepAlive = false;HttpWebResponse response =(HttpWebResponse)reque

14、st.GetResponse();Stream dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); string responseFromServer = reader.ReadToEnd();response.Close();reader.Close();dataStream.Close();= responseFromServer;catch (Exception ex)MessageBox.Show(ex.ToString();3.3.4 解析 MAC

15、和 SSIDprivate 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)0, (int)ssid.SSIDLength);/0 表示索引, ssid.SSIDlength 表示解码字节数3.3.5 将解析的数据定位到百度地图private void button1 Click(object sender, EventArgs e) HtmlElement HE_longitude = HE_longitude.SetAttribute(value, location0);HtmlElement HE_latitude = 四、结果分析4.1 WiFi 定位分析图如下图:图 4-1 WiFi 定位图由上图可知通过用 C#软件编写程序实现了 WiFi 的定位的基本功能, 通过点 击获取按钮搜索到周边的 WiFi ,点击请求和解析的按钮然后得到对应的具体地 址。然后点击定位按钮并能将其成功的定位到百度地图上。 尽管界面比较简单, 但是基本上能获取 WiFi 定位条件下所需要的数据。经过多次的测试,程序还是 比较稳定的,每次都能顺利的运行。总体来说,该 WiFi 定位系统还是相对完善 的,是可执行的。五、结论(或总结)通过本次 WiFi 定位系统的课程设计,我们了解了 WiFi 定位的基本原

温馨提示

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

评论

0/150

提交评论