GPS data Parsing - cchamchi/cansat GitHub Wiki

GPS์—์„œ ์‹ค์ œ๋กœ ๋‚˜์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ parsingํ•ด ๋ด…์‹œ๋‹ค

์šฐ์„  passthru ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด GPS ์—์„œ ์–ด๋–ค ์‹ ํ˜ธ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ๋Š” cansat์šฉ package๊ฐ€ arduino์— ์ธ์Šคํ†จ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋ฅผ ์ฐธ๊ณ  ํ•˜์„ธ์š”

https://github.com/cchamchi/cansat/wiki/Cansat-Package-install

#include <CansatSystem.h>
#include <CansatSerial.h>

static CansatHwSerial PLport(Serial1);
void setup() { 
  CansatSystemInit(); 
  PLport.begin(9600);

  Serial.begin(9600);

  PLport.RxModePortSet(RxMode_GPS_PORT);
  
}
void loop() {
  while (Serial.available()) Serial1.write(Serial.read());
  while (Serial1.available()) Serial.write(Serial1.read());
}

์•„๋ž˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ 1์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

$GNGGA,064537.00,3723.06061,N,12707.40444,E,2,11,1.04,53.6,M,18.9,M,,0000*70
$GNGSA,A,3,08,26,27,31,50,16,21,23,42,,,,1.64,1.04,1.26*12
$GNGSA,A,3,74,85,,,,,,,,,,,1.64,1.04,1.26*11
$GPGSV,3,1,10,04,20,079,46,08,44,228,38,16,57,042,41,21,21,052,46*78
$GPGSV,3,2,10,23,32,241,42,26,35,074,48,27,88,298,47,31,11,137,43*70
$GPGSV,3,3,10,42,43,152,39,50,43,152,40*75
$GLGSV,1,1,04,74,38,102,42,75,,,32,85,77,100,34,,,,22*64
$GNGLL,3723.06061,N,12707.40444,E,064537.00,A,D*76
$GNRMC,064538.00,A,3723.06067,N,12707.40443,E,0.018,,050418,,,D*60
$GNVTG,,T,,M,0.018,N,0.034,K,D*36

๊ฐ๊ฐ์˜ ์˜๋ฏธ๋Š” http://navspark.mybigcommerce.com/content/NMEA_Format_v0.1.pdf ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”

์šฐ๋ฆฌ๋Š” GGA,RMC,VTG ์ •๋ณด๋ฅผ ์ด์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. GGA์ •๋ณด๋Š” ๋™์ผํ•˜๋‹ˆ ์•„๋ž˜ GPGGAํฌ๋ฉง์„ ๋ด…์‹œ๋‹ค

$GNGGA,064537.00,3723.06061,N,12707.40444,E,2,11,1.04,53.6,M,18.9,M,,0000*70
- UTC๋Š” 064537.00 ์ž…๋‹ˆ๋‹ค. 06์‹œ 45๋ถ„ 37.00์ดˆ ์ž…๋‹ˆ๋‹ค.ํ•œ๊ตญ์‹œ๊ฐ„์œผ๋กœ๋Š” 9๋ฅผ๋”ํ•œ 15์‹œ47๋ถ„37์ดˆ๋„ค์š”
  hour=