在大數據時代下,越來越多的應用,或多或少的都跟物聯網有着各種牽連。前段時間,筆者在做一個項目時,使用到了GPS模塊實現高精度定位,用過GPS模塊的小伙伴們應該會知道,普通的GPS模塊定位精度會在幾米甚至幾十米的范圍內,而要實現更高精度的定位,就需要借用差分基站來實現糾偏了,當然,前提是所用的GPS模塊需要自帶差分解算功能,那么,我們只需要將從差分基站獲取到的差分數據寫到GPS模塊里面即可,否則的話,我們可能就需要自己做差分解算了。
不過,這篇文章,筆者可沒打算給大家介紹GPS高精度定位的問題,今天筆者主要給大家介紹一下,如何獲取差分數據。
當然咯,網上也有不少網絡工具可以快速實現對差分服務器的連接,從而獲取到差分數據,但是,很多應用場合,僅僅只是像單片機這樣的終端設備,我們就沒辦法借助基於PC的網絡工具來獲得差分數據了。這個時候,我們可能就需要一個能聯網的模塊,比如2G模塊、4G模塊、NB模塊等。
所以,今天筆者就要給大家介紹一款4G模塊,並且教大家,如何用這個4G模塊連接差分服務器,從而獲取到差分數據。
說實話,在做這個項目之前,筆者對今天要給大家分享的這些知識是一無所知的,但是項目需要,也沒辦法,不得不到處找資料、找資源、尋求技術支持,折騰了好長一段時間,才終於搞清楚了是怎么一回事,因為,為了讓后來者少走彎路,特在此給大家分享這些知識點,希望能幫助到你們。好了,話不多說,先來看下我們今天需要用到的這個比較重要的4G模塊吧,實物圖如下:
這個模塊是“山東有人信息技術有限公司”推出的一款全網通的5模13頻的4G透傳模塊,尺寸的話,也並不是很大,當然,相對於NB或2G模塊來說,還是會有點點大(下圖來自於官網資料):
從官方手冊上,我們知道,這個模塊供電方式有兩種,一種是DC5~16V供電(模塊自帶穩壓電路),另外一種就是DC3.4V~4.2V供電(廠家建議供電3.8V,瞬間帯載能力2.5A以上),當然咯,為了快速驗證,筆者還購買了一個廠家提供的配套的底板用於測試。底板跟4G模塊整體連接實物圖如下圖所示:
關於這個4G模塊的更多知識,筆者就不在此贅述了,請直接移步到官網,獲取更詳細的信息:http://www.usr.cn/Product/179.html。
好了,硬件我們是有了,接下來,我們就需要獲取一個差分賬號和差分密碼了。筆者這里用的是千尋的差分服務器,當然,大家也可以用別的差分服務器,或者自己購買差分基站(只是成本有點高,哈哈)。
我們直接來到千尋的服務商城:https://mall.qxwz.com/market/services
可以看到,這里有很多種不同類型、不同價格的服務產品:
大家可以根據自己的實際需要,購買對應的產品,筆者這里只是測試,所以就直接買了個便宜的服務“千尋硅步-FindM”,看到這里,或許有人有疑問了:“千尋雲蹤-FindS”不是更便宜么?哈哈,別奇怪,筆者還沒笨到分不清楚6塊錢跟1塊錢的區別,筆者這里之所以購買“千尋硅步-FindM”,是因為后面GPS差分定位需要用到這個服務。好了,關於這個地方就不糾結了,大家仔細看下每個服務的介紹便清楚明了了!
在購買成功后,我們就可以在“用戶中心”里面看到我們購買過的產品了,下圖就是筆者購買過的一些產品了:
這里順便溫馨提示一下大家,其實新用戶可以免費體驗這些服務的,所以大家可以自己注冊賬號,免費申請一些服務用來測試。
好了,接下來,我們在購買的服務中,找到我們這次測試需要用到的服務“FindM-千尋硅步”,點擊進去之后,我們可以看到自己之前購買過的所有跟FindM-千尋硅步”相關的服務。
排在最上面的名為“FindM_20190710_hd0D2W”,就是筆者剛才購買的服務,從文件命名上就能區分開來了。接下來,我們點開右邊的“服務配置”選項,獲取我們購買的服務的相關信息:
然后,我們選擇左上角的“設備服務號”,來獲取我們的差分賬號和密碼(密碼可以自己修改,符合千尋密碼規則即可):
新購買的服務,在使用之前需要先激活,才能正常使用,但是,一旦激活了,就開始計時了,所以大家小慎重哈,尤其是如果購買了多個服務,暫時不打算使用的服務千萬先別激活!
服務激活成功后,接下來我們就要開始使用這個服務了。當然咯,在使用之前,我們先要對差分賬號和密碼做一個小小的處理,因為根據Ntrip協議,用戶名和密碼之間需要用冒號(:)鏈接的,並且要轉成Base64編碼格式,有關Ntrip協議相關的知識,詳情請看:https://www.cnblogs.com/hanford/p/6028156.html。
筆者直接百度了一個在線轉換的工具,直接將ASCII格式的賬號和密碼轉成了Base64編碼格式,然后我們直接將轉換后的結果復制下來即可:
好了,接下來我們就要來開始配置4G模塊的參數了!我們打開配置軟件,選擇好對應的串口參數,並打開串口,同時,我們選擇4G模塊的工作模式為“網絡透傳模式”,然后填入“網絡透傳模式相關參數”,我們直接將“千尋硅步”服務器的域名即對應的坐標系的端口號填入即可,筆者這里同時連了兩個服務器,所以配置了兩個服務器的參數,如果大家只需要連接一個服務器,那么直接填其中一個即可。在測試板上發送“[USR-7S4 V2]”字符后,意味着模塊成功啟動了:
這個時候,我們點擊“進入配置狀態”按鈕,即可讓模塊進入配置狀態,當出現一下內容是,表示模塊成功進入了配置狀態:
接下來,我們點擊“設置所有參數”按鈕,設置軟件變自動將我們填入的參數,寫入到了4G模塊當中,當出現如下界面時,意味着參數寫入成功:
接下來,我們需要重啟一下模塊,在模塊成功重啟后,等十幾秒鍾我們會看到中紅燈跟綠燈中的那個網絡指示燈在閃(前提是得插入SIM卡,並接上天線),同時,底板上的LINKA和LINKB指示燈也會亮起(如果只連接了一個服務器,就只會亮其中一個)。接下來,我們只需要在4G模塊的設置軟件中,下入如下指令,並通過串口發送即可(值得一提的是,最后一條指令后面一定要用兩個回車換行符):
GET /RTCM32_GGB HTTP/1.0
User-Agent: NTRIP LefebureNTRIPClient/20131124
Accept: */*
Connection: close
Authorization: Basic cXhmbnpjMDA2OjEyMzQ1Njc=
當我們看到串口返回“ICY 200 OK”字符時,意味着我們已經成功連接了千尋的差分服務器,關於這一串指令的具體含義,相信大家在前面看有關Ntrip協議的內容的時候,就已經很清楚了,筆者也就不做過多解釋了,還沒搞懂的,再去多看幾遍:https://www.cnblogs.com/hanford/p/6028156.html.
前面的部分幾乎不用修改,只需將最后的差分賬號和密碼改成我們自己的就好了。在成功連接了千尋的差分服務器之后,我們只需要再回傳一條GGA數據即可獲取RTCM32格式的差分電文數據,並且,在獲取差分數據的過程中,我們也需要在規定時間內回傳GGA數據(可能有些差分服務器沒有這個要求,不過千尋的是需要的)。當然咯,這個RTCM32格式的電文,是二進格式的數據流,需要在十六進制模式下才能看得比較清楚一些,在ASCII模式下就是一堆的亂碼了。
當然咯,看到這一大串的十六進制數,可能不熟悉的小伙伴們也是一臉懵逼,筆者這里就簡單提一下RTCM32格式的電文的幀構成吧,如下圖所示:
相信看到上面這個圖,大家就很明白了,具體的內容,大家需要了解的話,就請自行查閱資料吧,另外,關於GNGGA的相關內容,也是跟GPS相關了知識了,百度也是一大把,筆者這半桶水也不好多說啥了。
好了,關於如何利用4G透傳模塊獲取差分數據的相關內容就介紹到這了,我們只要搞懂了如何連接並獲取差分數據,那么在以后的應用中,將這部分功能做到處理中即可。如看了這篇文章后,還有什么不理解的地方,可以站內私信筆者喲,期待您的關注,筆者后續會給大家帶來更多極具實用性的精彩內容!你們的支持,是我堅持寫作的最大動力,希望我的分享,能夠幫助要更多需要的人!