Quectel BG96 - LTE & GPS 모듈

6월 초에 BG96 LTE&GPS 모듈을 지인에게 빌려 간단한 기능 검증을 하려고 하였지만, 6월은 올해 최악의 컨디션으로 지낸 기간이 아닐까 싶다. 6월 초에는 몸살로 일주일을 앓아 눕고 정말 체력이 떨어진것을 새삼 느끼게 되었고, 이번주는 아스트라제네카 잔여백신 예약에 성공하여 백신 접종에 따른 부작용(?)으로 며칠 몽롱한 상태로 지내다 이제야 정신을 차려 BG96 모듈의 기능을 검증하려고 한다.

지인에게 받은 모듈을 3개의 uart 포트 및 1개의 usb 포트로 구성되며, usb 포트를 연결할 경우 Quectel에서 제공하는 프로그램을 사용하여 AT 커맨드 및 시리얼을 확인할 수 있다. 만약 Quectel에서 제공하는 프로그램을 사용하지 않고 uart 포트를 연결하여 시리얼 데이터를 받고자 한다면, GPS uart 포트를 활성화 시키기 위한 AT 커맨드를 BG96 모듈에 전달해야 한다.

 

BG96 모듈의 GPS uart 포트는 비활성화 상태인 경우, 아래 AT 커맨드를 실행하여 GPS uart 포트를 활성화시켜야 한다.

AT+QGPSCFG="outport","uartnmea",115200

위 AT 커맨드를 실행하면 /dev/ttyUSB1 시리얼에 위와 같은 GPS 정보가 출력되는 것을 확인할 수 있다. 위 이미지와 같이 BG96 모듈을 재부팅한 경우, GPS uart 포트 설정이 활성화 된 상태라면 다시 AT 커맨드를 실행할 필요가 없으며, GPS 관련 여러 정보가 주기적으로 출력되는 것을 확인할 수 있다. GPS 정보는 아래 블로그를 참고하도록 한다.

 

[GPS 이야기] NMEA-0183 형식, NMEA Sentence Format

만약 당신이 GNSS와 직접적으로 관련된 일을 한다면. 혹은 간접적으로 GPS등과 같은 것을 통해 얻은 위치정보등을 다뤄야 할 일이 있다면. 조만간 'NMEA' 라는 것을 마주하게 될 수도 있다. 위치정

techlog.gurucat.net

내가 STM32에 연결하여 GPS 정보를 받아 구글맵, 카카오지도 또는 네이버 지도에서 위치 정보를 확인하려면 GGA 정보만 있으면 되기 때문에 아래 AT 커맨드를 실행하여 GGA 또는 RMC 정보만 출력하도록 한다.

AT+QGPSCFG="gpsnmeatype",1
AT+QGPSCFG="gpsnmeatype",2

GPS 관련 모든 정보를 출력하려면 1 대신 31을 입력하면 된다. 아래 이미지를 참고하여 다양한 GPS NMEA 형식을 지정할 수 있다.

현재 위치를 구글맵에 표시하기 위해 위도와 경도 정보를 제공하는 GGA나 RMC를 출력하는 것이 좋으며 RMC의 경우 속도와 진행 방향까지 제공하여 내가 하려고 하는 작업에는 RMC를 사용하는 것이 좋을 것 같다.

 

참고로, BG96에서 수신한 위도와 경도 값을 그대로 구글맵, 카카오맵 그리고 네이버지도에서 사용할 수 없으며, 데이터 형식을 변환해야 한다. 이것에 대한 설명은 아래 블로그를 참고하도록 한다.

 

GPS 로그 NMEA 에 관한 몇가지 이야기...

알련지 모르지만 뭐 몰라도 상관없지만. 세상은 내 중심으로 돌아가기 때문에 내꺼에서 잘 되면 남의것도 잘 될것이라는 기본 생각을 가지고 이 정보를 남긴다. RGM-3800 이라는 기종에서 남겨지

quenya.tistory.com

간단히 설명하면 GPS에서 수신한 값에서 위도는 상위 2자리, 경도는 상위 3자리가 °(도)에 해당하며, 나머지 값은 60으로 나누어 얻은 몫을 더 하도록 한다. 예를들어 3726.239874N 값에서 위도의 °(도) 값은 37이며, 나머지 26.239874을 60으로 나눈 값 0.43733(소수점 5자리까지)를 더하면 맵에서 사용할 위도 값이 된다.

 

추가적으로, RMC에서 제공하는 속도 값은 knots 단위이며 이것을 km/h로 변경하려면 knots * 1.852로 연산하면 된다.