#NAME?站長工具seo優(yōu)化系統(tǒng)
到目前為止,您可能已經(jīng)看過我的一些與 Raspberry Pi 和位置數(shù)據(jù)相關(guān)的教程。我是這些小型物聯(lián)網(wǎng) (IoT) 設(shè)備的忠實(shí)粉絲,并編寫了有關(guān)使用 Golang 進(jìn)行 WLAN 定位 和 使用 Node.js 進(jìn)行 GPS 定位的教程。
我想繼續(xù)沿著 Golang 路線,做一個(gè)關(guān)于 GPS 定位的教程,并將該數(shù)據(jù)存儲(chǔ)在 HERE XYZ 中以便實(shí)時(shí)查看。換句話說,讓 Raspberry Pi 使用 Golang 收集 GPS 數(shù)據(jù),將其推送到 HERE XYZ,并通過查詢 HERE XYZ 中的數(shù)據(jù)在某些 Web 客戶端上實(shí)時(shí)查看。
我們將看看如何完成所有這些,如果一切順利,我們最終可能會(huì)得到如下所示的結(jié)果:
rpi-golang-gps-路線
上圖是我在車?yán)飵е?Raspberry Pi 開車時(shí)得到的結(jié)果。
要求
要成功學(xué)習(xí)本教程,必須滿足一些要求??赡芸梢允褂米凅w,但我只能確認(rèn)什么對我有用。
在硬件方面,我使用以下設(shè)備:
樹莓派零W
新6M GPS
有源外置天線
用于外部天線的 U.FL 適配器
您可能可以使用任何具有 WiFi 的 Raspberry Pi 型號。如果你的 Raspberry Pi 有一個(gè) LTE 模塊,那就更好了,因?yàn)槲抑皇菍⑹謾C(jī)連接到車上來訪問互聯(lián)網(wǎng)。
GPS 模塊與我在之前的教程中引用的模塊相同, ?它直接連接到我的計(jì)算機(jī)。你需要一個(gè)天線;否則,可能需要幾天時(shí)間才能修復(fù)衛(wèi)星。
在軟件和服務(wù)方面,您需要以下內(nèi)容:
Golang 安裝在您的開發(fā)主機(jī)上
一個(gè)免費(fèi)的 HERE 帳戶
您需要一個(gè) HERE 帳戶來配置 HERE XYZ 來存儲(chǔ)您的位置數(shù)據(jù)。由于 Golang 編譯為本機(jī)二進(jìn)制文件,因此您只需要在開發(fā)計(jì)算機(jī)上使用它即可。如果您嘗試在 Raspberry Pi 上進(jìn)行開發(fā),由于硬件規(guī)格較弱,構(gòu)建過程可能會(huì)很慢。
使用 Golang 在 Raspberry Pi 上收集 GPS 數(shù)據(jù)
如果您閱讀過我之前的教程,標(biāo)題為 使用 Golang 和串行 UART 連接對 NEO 6M GPS 位置進(jìn)行反向地理編碼,其中一些內(nèi)容看起來會(huì)很熟悉。不過,復(fù)習(xí)一下也沒什么壞處。
在創(chuàng)建新項(xiàng)目之前,請執(zhí)行以下命令:
1
去 獲取 github 。com / paulmach / go . 地理數(shù)據(jù)格式
2
去 獲取 github 。com / adrianmo / go - nmea
3
去 獲取 github 。com / jacobsa / go -串行/串行
上面的命令將會(huì)獲取我們所需要的包,為我們節(jié)省大量的開發(fā)時(shí)間。Serial ?包將允許我們訪問 Raspberry Pi 和 GPS 模塊之間的串行連接, ?go-nmea 包將允許我們將原始 GPS 數(shù)據(jù)解析為我們可以理解的內(nèi)容,而 go.geojson包 將允許我們創(chuàng)建 GeoJSON要發(fā)送到 HERE XYZ 的格式化數(shù)據(jù)。
有了必要的包后, 在$GOPATH中的某個(gè)位置創(chuàng)建一個(gè)main.go 文件 ?并添加以下樣板代碼:
1
上面的代碼是一個(gè)很好的起點(diǎn)。我們所說的是打開 Raspberry Pi 上的/dev/ttyS0 串行端口并使用 9600 的波特率。對于傳入的任何數(shù)據(jù),我們將使用 a 訪問它并將 Scanner 其打印出來。我們使用 a 是 Scanner 因?yàn)槲覀兿胍暾臄?shù)據(jù)行,而不是零散的數(shù)據(jù)。