通過4G模組定位裝置
問題
最近考慮到裝置定位功能的改進, 考慮到成本與定位精度的要求, 單獨加GPS模組不太適用於我們, 因此將定位的功能希望通過基站定位實現, 達到模組多用;
結果
更換模組
最簡單的辦法就是將4G模組改為含定位功能的模組, 不過要額外增加GNSS天線等, 4G模組的價格也會升高, 而且室內訊號差因為這些這種方法就暫時不考慮了.
移遠定位服務
其次就是通過移遠模組自帶的AT
進行基站定位, 本質就是呼叫移遠的IOT雲服務進行基站定位.
要先在移遠物聯網雲服務平臺申請token, 然後在模組中通過以下AT指令獲取座標;
AT+QICSGP=1,1,"UNIWAP" ,"","",1
AT+QIACT=1
AT+QLOCCFG="contextid",1
AT+QLOCCFG="token","xxxxxxxxxxxx"
AT+QLOCCFG="server","47.74.213.211:80"
AT+QCELLLOC
通過LAC和CID定位
通過查移遠ec20的AT指令手冊可以找到能獲得lac和cid的指令;
1.撥號註冊時獲取
AT+CREG=2
AT+CREG?
- 裝置撥號成功後再獲取:
AT+CGREG= 2
AT+CGREG?
3. 通過Engineering mode
獲取該資訊:
AT+QENG=?
#返回OK表示支援工程模式,執行下面的指令
AT+QENG="servingcell"
Response
In the case of GSM mode:
+QENG: "servingscell",<state>,"GSM",<mcc>,<mnc>,<lac>,<cellid>,<bsic>,<arfcn>,<band>,<rxlev> ,<txp>,<rla>,<drx>,<c1>,<c2>,<gprs>,<tch>,<ts>,<ta>,<maio>,<hsn>,<rxlevsub>,<rxlevfull>,<rxqualsub>,<rxqualfull>,<voicecodec>
OK
In the case of WCDMA mode:
+QENG: "servingcell",<state>,"WCDMA",<mcc>,<mnc>,<lac>,<cellid>,<uarfcn>,<psc>,<rac>,<rscp>,<ecio>,<phych>,<sf>,<slot>,<speech_code>,<comMod>
OK
In the case of LTE mode:
+QENG: "servingcell",<state>,"LTE",<is_tdd>,<mcc>,<mnc>,<cellid>,<pcid>,<earfcn>,<freq_band_ind>,<ul_bandwidth>,<dl_bandwidth>,<tac>,<rsrp>,<rsrq>,<rssi>,<sinr>,<srxlev>
OK
AT指令手冊:
EC25&EC21 AT Commands Manual
EC2x&EG9x&EM05_QuecCell_AT_Commands_Manual_V1.0
這時候我們得到了LAC和CID, 就可以根據這兩個值進行基站定位, 而定位需要基站位置資料庫, 這種資料有服務商提供一般是地圖服務商(地圖GPS資訊匹配基站資訊WiFi資訊儲存到資料庫)或者一些其它的提供商, 需要找到靠譜的服務提供方, 參考文章中有幾個服務方沒用過, 有需要的可以嘗試一下, 通過提供商給的介面查詢位置即可;
參考文章
1.基站定位LAC,CID轉經緯度 提供測試介面
2. LBS資料倉庫 基站資料庫
3. 偽基站識別技巧 介紹LAC CID的含義,以及一些基礎知識,值得一看
4. How to find the Cell Id location with MCC, MNC, LAC and CellID (CID) 介紹了幾個值的含義,以及提供了一個全球的MCC和MNC的list方便確定服務提供商;
5. 移遠EC20基站定位 移遠模組介面定位的文章