室内定位指纹采集系统-Android WIFI版本
本文主要介紹了物聯網室內定位中,指紋定位系統研究過程中需要的軟件開發思路,目前完成的有Android端WIFI信號的獲取與劃定采集區域采集WIFI信號指紋庫等功能。
聲明:
- 本系統涉及軟件只用于學術研究,切乎用于其它用途。
- 軟件存在版權問題所以暫不開放源碼,只提供軟件試用版本和軟件開發思路。
- 希望給自己一個梳理開發過程的機會,若剛好你需要可以一起討論,并提出寶貴的意見。
需求
指紋定位系統分為離線采集和在線定位兩個階段,離線采集階段,需要將定位區域內的信息獲取到并存到相應的數據庫中完成指紋庫的構建,本次需求主要為WiFi信號指紋庫的構建,所采用的采集設備為Android手機,系統服務可部署在服務器中,通過Android端連接服務器,完成指紋庫的構建。
設計思路:
指紋采集流程:
創建需要采集區域信息,創建需要采集區域的AP信息,由于采集的是WiFi的指紋信息,所以需要事先將WiFi的信息錄入,采用錄入mac的方式進行,當采集WiFi強度時只采集錄入的wifi的強度(AP強度);根據確定的區域,確定好原點坐標,將區域劃分成坐標點,在采集的時候,需要輸入指紋的坐標點,所以需要事先完善好坐標點的劃分;到相應的坐標點輸入信息并采集,數據通過服務器存入到數據庫中,一次測量的點的信息應該不止一個而是一組,最終通過多次測量得出平均值或其他方法求得的值作為該點的wifi指紋點。
數據格式大約如下:(x,y)->(1,1)(rssi1,rssi2,rssi3,rssi4,…)
指紋數據庫設計:
數據庫應包含區域信息、AP信息、坐標點信息、多次采集AP強度信息、指紋信息。
此處不再論述數據庫的詳細設計,直接貼出數據庫的結構圖:
主要有區域表、ap表、坐標表、測量表、指紋生成表;提供兩種視圖便于查看數據,如圖:
技術選型
- 數據庫選擇使用mysql
- 服務器端采用SSM架構編寫(Java版)
- Android端采用MVP模式編寫
注:AP即是在我們需要采集指紋區域內我們自己部署的WiFi路由器的稱呼
執行流程:
首頁:
設置服務器:
訪問服務器網址,錄入地區:注意ap的個數不用亂寫,要按照真實的來寫
進入查看周圍錄入區域AP點,點擊選擇區域,點擊需要錄入的ap,錄入到區域中,待采集時將直接采集錄入ap點的rssi信息
錄入ap
進入采集WIFI指紋界面,首先選擇區域,然后點擊準備,當提示準備開始后開始點擊采集,采集完成后,點擊生成指紋,一次采集次數和間隔可調整,生成的指紋為平采集多次的平均值,指紋點數據可根據數據庫的多次采集到的信息的數據進行自己處理,系統提供的指紋點為已經求平均后的,可在視圖measureinfo中查看采集多次的數據,該數據為原始數據也是最重要的,自己可針對做處理的數據。
問題總結:
- 采集WIFI信號的準確性問題,當兩次采集間隔過小時,采集到的信息存在緩存,不具備時變性
- 指紋點生成可能會出現不成功現象,多次采集的數據measureinfo會保存,可自行通過多次采集到的數據去根據自己的算法計算指紋點。
- 后續問題繼續添加
后續更新:
- 暫時只支持WiFi版本指紋采集,后續可能加入地磁等其他更多的信息
- 后續可能繼續更新此類博客
下載試用
- 數據庫腳本
- 服務器war包
- Android安裝包-已針對Android6.0以上適配,請選擇允許訪問網絡等權限否則將不會正常運行
1 本地創建db_indoorpositon數據庫,導入腳本文件創建數據庫表等
2 安裝java環境,下載tomcat解壓版,將war包放入到webapps下
3 啟動tomcat,在bin/startup.bat,在自動解壓后的FingerPrintMeasurementSystem中進入WEB-INF\classes\config,找到spring-mybatis.xml,修改數據庫用戶名和密碼。若不修改,請保持數據庫名為root,密碼為123456
4 打開app,修改服務器地址,輸入本地局域網內的服務器ip即可,注意app需要與服務器處在同一局域網內。
發送郵件‘csdn-指紋采集系統獲取’到zhuimengqingcun@126.com,
收到后將回信給您或直接留言即可。
相關資料可參看:
https://www.cnblogs.com/rubbninja/p/6120964.html 室內定位系列(一)——WiFi位置指紋(譯)
總結
以上是生活随笔為你收集整理的室内定位指纹采集系统-Android WIFI版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件测试代码表,软件测试函数列表功能图程
- 下一篇: 上网行为管理系统的管理方式有哪些?