GPS NMEA

NMEA-0183是美國國家海洋電子協會(National Marine Electronics Association)制定的GPS介面協定標準。這種介面協定採用ASCII碼輸出,以下為NMEA-0183常見的指令:

語句語句內容
GGAUTC時間、緯度值、經度值、定位狀態(無效、單點定位、差分)、觀測的GPS衛星個數、HDOP值、GPS橢球高、天線架設高度、差分數據齡期、差分基準站編號、校驗和
GLLUTC時間、緯度值、經度值、定位狀態(無效、單點定位、差分)、校驗和
GSA定位模式(M-手動,強制二維或三維定位;A-自動,自動二維或三維定位)、定位中使用的衛星ID號、PDOP值、HDOP值、VDOP值
GSV視野中的GPS衛星顆數、PRN編號、衛星仰角、距正北的角度(方位角)、信噪比
MSS信標台的信號強度、信噪比、信標頻率、串列傳輸速率、通道號
RMCUTC時間、定位狀態(A-可用,V-可能有錯誤)、緯度值、經度值、對地速度、日期等
VTG對地速度等
ZDAUTC時間、年、月、日、當地時區、時區的分鐘值等

格式定義:

符號(ASCII)定義HEXDEX說明
$起始位2436語句起始位
aaccc地址域   前兩位為位識別符,後三位為語句名
“,”域分隔符號2C44域分隔符號
ddd……ddd資料塊  發送的資料內容
“*”校驗和符2A42星號分隔符號,表明後面的兩位數是校驗和
hh校驗和  校驗和
/終止符0D,0A13,10回車,換行

GPS DOP and Active Satellites(GSA)當前衛星資訊

$GPGSA,<1>,<2>,<3>,<4>,,,,,<12>,<13>,<14>, <15>,<16>,<17>*hh
$GPGSA,A,3,14,15,05,22,18,26,,,,,,,2.1,1.2,1.7∗3D
項目說明
1模式 :M = 手動, A = 自動
2定位型式 1 = 未定位, 2 = 二維定位, 3 = 三維定位
3~14PRN 數字:01 至 32 表天空使用中的衛星編號,最多可接收12顆衛星資訊
15PDOP位置精度因數(0.5~99.9)
16HDOP水準精度因數(0.5~99.9)
17VDOP垂直精度因數(0.5~99.9)
hhChecksum.(檢查位)

GPS Satellites in View(GSV)可見衛星資訊

$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,<4>,<5>,<6>,<7>*hh
$GPGSV,3,3,10,29,07,074,,30,07,163,28*7D
項目說明
1GSV語句的總數
2本句GSV的編號
3可見衛星的總數,00 至 12
4衛星編號, 01 至 32
5 衛星仰角, 00 至 90 度
6 衛星方位角, 000 至 359 度。實際值
7 訊號雜訊比(C/No), 00 至 99 dB;無表未接收到訊號
hh Checksum.(檢查位)
第4,5,6,7項個別衛星會重複出現,每行最多有四顆衛星。其餘衛星資訊會于次一行出現,若未使用,這些欄位會空白。

Global Positioning System Fix Data(GGA)GPS定位資訊

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>,<13>,<14>*hh
$GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,−5.7,M,,0000∗77
項目 說明
1UTC時間,hhmmss(時分秒)格式
2緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)
3緯度半球N(北半球)或S(南半球)
4經度dddmm.mmmm(度分)格式(前面的0也將被傳輸)
5經度半球E(東經)或W(西經)
6GPS狀態:0=未定位,1=非差分定位,2=差分定位,6=正在估算
7正在使用解算位置的衛星數量(00~12)(前面的0也將被傳輸)
8HDOP水準精度因數(0.5~99.9)
9海拔高度(-9999.9~99999.9)
10地球橢球面相對大地水準面的高度
11差分時間(從最近一次接收到差分信號開始的秒數,如果不是差分定位將為空)
12差分站ID號0000~1023(前面的0也將被傳輸,如果不是差分定位將為空)
13~14不明,空白
hhChecksum.(檢查位)

Recommended Minimum Specific GPS/TRANSIT Data(RMC)推薦定位資訊

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A*54
項目說明
1UTC時間,hhmmss(時分秒)格式
2定位狀態,A=有效定位,V=無效定位
3緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)
4緯度半球N(北半球)或S(南半球)
5經度dddmm.mmmm(度分)格式(前面的0也將被傳輸)
6經度半球E(東經)或W(西經)
7地面速率(000.0~999.9節,前面的0也將被傳輸)
8地面航向(000.0~359.9度,以真北為參考基準,前面的0也將被傳輸)
9UTC日期,ddmmyy(日月年)格式
10磁偏角(000.0~180.0度,前面的0也將被傳輸)
11磁偏角方向,E(東)或W(西)
12模式指示(僅NMEA0183 3.00版本輸出,A=自主定位,D=差分,E=估算,N=資料無效)
hhChecksum.(檢查位)

Track Made Good and Ground Speed(VTG)地面速度資訊

$GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh
$GPVTG,359.95,T,,M,15.15,N,28.0,K,A∗04
項目說明
1以真北為參考基準的地面航向(000~359度,前面的0也將被傳輸)
2以磁北為參考基準的地面航向(000~359度,前面的0也將被傳輸)
3地面速率(000.0~999.9節,前面的0也將被傳輸)
4地面速率(0000.0~1851.8公里/小時,前面的0也將被傳輸)
5模式指示(僅NMEA0183 3.00版本輸出,A=自主定位,D=差分,E=估算,N=資料無效)
hhChecksum.(檢查位)

GPZDA日期和時間

$GPZDA,<1>,<2>, <3> , <4> , <5> , <6> *hh
$GPZDA,204007.00,13,05,2022,,*62
項目說明
1UTC時間,hhmmss(時分秒)格式
2
3
4
5本地時區小時便宜量
hh本地時區分鐘便宜量

GPS模塊輸出的數據是NMEA格式,其中GPGGA字段包含我們需要的經緯度信息
其格式是緯度:ddmm.mmmmm(度分)經度:dddmm.mmmmm(度分)
將ddmm.mmmm轉換成dd.ddddd 的經緯度
轉換公式 dd.ddddd = dd + mm.mmmm/60
Excel 轉換公式為 =INT(A2/100)+(MOD(A2,100)/60)

參考資料:

http://blog.ittraining.com.tw/2016/02/gpsgprmc.html

https://www.codeprj.com/zh/blog/a4b9d91.html

https://www4.hhlink.com/%E7%B6%93%E7%B7%AF%E5%BA%A6%E8%B7%9D%E9%9B%A2

https://www.796t.com/content/1549111517.html

https://medium.com/@peicheng_88746/%E9%80%8F%E9%81%8E%E7%B6%B2%E5%9D%80%E9%96%8B%E5%95%9F%E5%9C%B0%E5%9C%96-app-%E4%B8%A6%E9%A1%AF%E7%A4%BA%E7%89%B9%E5%AE%9A%E5%9C%B0%E9%BB%9E%E8%B3%87%E8%A8%8A-6cc73ee2a871

http://aprs.gids.nl/nmea/

https://www.csie.nuk.edu.tw/~brchang/%E5%AF%A6%E9%A9%973.pdf