微控制器如何利用GPRS模組獲取位置資訊

GPRS是如何獲取位置的呢?GPRS不同於GPS,我們都知道GPS是透過衛星來定位,而GPRS是透過基站來定位,其定位精度收到通訊基站的位置和密度的影響在沒有基站的位置上,誤差範圍會比較大,也許繫有人會問既然GPS定位更精準,拿為什麼還需要基站定位呢?這是因為GPS定位只能在空曠的地方接收到訊號,比如在高樓密集的城市,高架橋下,室內等GPS訊號會很差或接收不到訊號,同時也會受天氣的影響如果天氣差GPS訊號強度會低很多。但基站定位雖精度雖不及GPS,但只要有基站至室內也可定位,且不會收天氣的影響。隨著基站的數量越來越多,GPRS的定位也會越來越準確。

微控制器如何利用GPRS模組獲取位置資訊

基站定位示意圖

獲取位置流程

微控制器如何利用GPRS模組獲取位置資訊

流程圖

獲取到基站的位置資訊後我們可以呼叫LBS的資料倉庫API介面進行查詢,這裡推薦一個比較好用的介面這個網站的查詢介面是免費開放的,但是有限制,每5分鐘限制查詢300次,基站/WIFI/經緯度查詢介面每日限制查詢1000次如果我們的查詢次數不多的話是足夠用的,不夠使用也有收費的可以用。

基站查詢介面可查詢全國移動聯通電信的2G/3G/4G基站位置資訊,收錄資料超過兩萬條。下面是提供查詢的API介面:

微控制器如何利用GPRS模組獲取位置資訊

API介面

有與GPRS模組可以與伺服器通訊所以我們在獲取到基站的位置資訊之後直接將資料透過微控制器串列埠透過GPRS模組傳送到伺服器進行查詢即可。

微控制器如何利用GPRS模組獲取位置資訊

GPRS通訊示意圖

1。 微控制器透過AT指令伺服器的相關資訊配置進模組

(1) 設定工作模式為網路透傳模式 AT+WKMOD=“UDC”

(2) 使能 socket A AT+SOCKAEN=“on”

(3) 設定 socket A 為 TCP 客戶端,伺服器地址為 api。cellocation。com,伺服器埠號為 81。 AT+SOCKA=“TCP”, api。cellocation。com“,81

(4) 使能心跳包 AT+HEARTEN=”on“

(5) 設定心跳包傳送間隔 AT+HEARTTM=30

(6) 使能註冊包 AT+REGEN=”ON“

2。 查詢基站資訊

微控制器串列埠傳送 AT+LBS?

返回座標資訊 如: LAC =21269,CID =30321

3。 呼叫資料介面進行位置查詢

GET /cell/?mcc=460&mnc=1&lac=4301&ci=20986&output=csvHTTP/1。1

Host:api。cellocation。com:81

傳送資料時這個位置一定要空兩行

傳送時將lac和ci替換為獲取到的座標資訊即可,返回的資料是CSV格式的,我們用”,“來解析即可獲得經緯度和具體的位置資訊