-
CZ-ME310G1모뎀 AGPS 꼭 쓰세요~!! 두번째 이야기Asset tracking 2026. 7. 21. 21:41
엮인 글 https://codezoo.tistory.com/136
CZ-ME310G1모뎀 AGPS 꼭 쓰세요~!! 첫번째 이야기
CZ-ME310G1모뎀은 AGPS를 지원합니다. GNSS 속도의 한계를 깨는 키, A-GPSGNSS 모듈이 맨 처음 켜졌을 때(Cold Boot) 하늘에 떠 있는 위성 신호를 직접 다 잡아 위치를 계산하려면 보통 수분이 걸립니다. 하
codezoo.tistory.com
이전 글에서는 CZ-ME310G1모뎀에 탑재된 AGPS기능을 AT커맨드로 직접 입력해서 동작테스트 했는데, 확인했던 동작을 코드로 만들어서 바로 사용할 수 있게 구현했습니다.
example 코드는 아래와 같이 5단계로 구성되어 있습니다.
6번은 전체 세션을 마무리하고 모뎀을 안전하게 Off 하는 과정입니다. 통신모뎀을 고장 없이 오래 사용하기 위해 적극 권장합니다.

1. ME310모듈을 초기화하고 AGPS를 설정합니다.
2. LTE 기지국망에 연결되었는지 확인하고 연결이 완료되면 기지국에서 아이피를 획득하고 NTP서버를 통해 TIME을 초기화합니다.
3. 퀄컴 AGPS서버와 연동해서 위성데이터를 얻어와서 GNSS엔진에 입력합니다. (모뎀 내부펌웨어에 의해 자동동작)
4. AGPS를 이용해서 빠르게 위치를 확정하고 GPS데이터를 가져옵니다.
5. GPS데이터를 구글맵과 같은 지도 API에서 바로 사용할 수 있도록 NMEA 프로토콜을 파싱 후 위도, 경도 데이터를 MQTT 브로커에 Publish 합니다.
6. 3회 전송 후 AGPS 기능 해제, MQTT 망접속해제 후 모뎀 전원을 OFF 합니다.
example은 ME310G1 라이브러리 0.1.13 이상부터 사용하실 수 있습니다. 이전 버전이면 업데이트하시기 바랍니다.


Examples --> ME310G1 --> UNO_R4 --> AGPS_MQTT를 실행합니다.

전체적인 구성은 이전 글에서 직접 입력한 AT커맨드와 같습니다. AGPS 자동화를 위해 추가된 부분만 따로 설명드리겠습니다.
1. AT$GNSSACP 명령 실행 후 반환값에서 원하는 값만 추출하기 위한 함수입니다. GPS Fix 되었는지 확인(index 7), 위도, 경도 값(index 2,3) 얻는 데 사용합니다.
String getCSVElement(String data, char separator, int index)2. NMEA 프로토콜에서 위도, 경도를 구하기 위해 사용 합니다.
double nmeaToDecimalDegrees(String nmeaString)MQTT Broker 설정은 아래와 같이 MQTT Explorer를 설치하신 후 Host주소와 포트를 입력 후 ADVANCED 버튼을 누릅니다.
구독과 발행을 위한 주소를 각각 입력 후 +ADD버튼을 누릅니다. 입력을 마친 후 BACK버튼을 누릅니다.

MQTT Broker에 연결하기 전 반드시 SAVE 버튼을 눌러서 현재 설정을 저장합니다. 저장 후 CONNECT버튼을 누릅니다.

example 코드 동작에 맞춰서 MQTT Broker에서 모뎀에서 발행된 메시지(위도, 경도)가 올라오는 것을 확인할 수 있습니다.

동작 로그입니다.
AT
AT
AT$GPSP=1
AT$GPSP=0
=== ME310G1-W3 AGPS & MQTT 3-Cycle Publisher ===
[Step 1-1] Checking AGPS configuration status...
[TX]: AT$AGNSS?
[RX]: AT$AGNSS?
$AGNSS: 0,1,1
OK
-> AGPS is already enabled. Proceeding immediately.
[Step 2-1] Final AGPS verification post-reboot...
[TX]: AT$AGNSS?
[RX]: AT$AGNSS?
$AGNSS: 0,1,1
[Step 2-2] Checking network registration status...
[TX]: AT+CEREG?
[RX]: AT+CEREG?
+CEREG: 0,5
OK
-> Cellular network connected successfully!
[Step 2-3] Requesting PDP context activation (IP allocation)...
Activate context
AT#SGACT=1,1
[TX]: AT#NTPCFG=1,0
[RX]: AT#NTPCFG=1,0
OK
[Step 2-5] Synchronizing NTP time...
[TX]: AT#NTP="216.239.35.0",123,1,5,36
[RX]: AT#NTP="216.239.35.0",123,1,5,36
#NTP: 26/07/21,21:19:33+36
OK
mqtt enable read
AT#MQEN?
#MQEN: 1,0
mqtt enable
AT#MQEN=1,1
OK
AT#MQEN?
#MQEN: 1,1
mqtt configure:AT#MQCFG=1,"broker.emqx.io",1883,1,0
OK
mqtt connect: AT#MQCONN=1,"czme310g1001","",""
OK
MQTT Publish: AT#MQPUBSEXT=1,"czme310/topic/put",1,0,18
AGPS Publish Ready
--------------------------------------------------
>>> [GPS Transfer Cycle 1 / 3 Started] <<<
--------------------------------------------------
-> Setting RF priority to GPS (Waiting 3s)...
[TX]: AT$GPSCFG=3,0
[RX]: AT$GPSCFG=3,0
OK
[TX]: AT$GPSP=1
[RX]: AT$GPSP=1
OK
-> Waiting for GPS position fix...
[TX]: AT$GNSSACP
[RX]: AT$GNSSACP
$GNSSACP: ,,,,,,,0,,,,,,,
OK
-> Current Fix Status: 0
[TX]: AT$GNSSACP
[RX]: AT$GNSSACP
$GNSSACP: ,,,,,,,1,,,,,,,
OK
-> Current Fix Status: 1
[TX]: AT$GNSSACP
[RX]: AT$GNSSACP
$GNSSACP: ,,,,,,,1,,,,,,,
OK
-> Current Fix Status: 1
[TX]: AT$GNSSACP
[RX]: AT$GNSSACP
$GNSSACP: 121947.040,210726,3730.3608N,12704.7580E,65.8,1.1,0.9,3,280.6,0.5,0.3,AANNNN,09,21.81,30.
OK
-> Current Fix Status: 3
-> [SUCCESS] Raw NMEA coordinates acquired!
[TX]: AT$GPSP=0
[RX]: AT$GPSP=0
OK
-> Setting RF priority to LTE (Waiting 3s)...
[TX]: AT$GPSCFG=3,1
[RX]: AT$GPSCFG=3,1
OK
Raw Latitude: 3730.3608N
Converted Latitude (DD): 37.506013
Raw Longitude: 12704.7580E
Converted Longitude (DD): 127.079300
AT#MQPUBSEXT=1,"czme310/topic/put",1,0,20
37.506013,127.079300
-> Publishing converted DD coordinates to MQTT broker...
-> Waiting 10 seconds before next cycle...
--------------------------------------------------
>>> [GPS Transfer Cycle 2 / 3 Started] <<<
--------------------------------------------------
-> Setting RF priority to GPS (Waiting 3s)...
[TX]: AT$GPSCFG=3,0
[RX]: AT$GPSCFG=3,0
OK
[TX]: AT$GPSP=1
[RX]: AT$GPSP=1
OK
-> Waiting for GPS position fix...
[TX]: AT$GNSSACP
[RX]: AT$GNSSACP
$GNSSACP: 121947.040,210726,3730.3608N,12704.7580E,65.8,1.1,0.9,3,280.6,0.5,0.3,AANNNN,09,21.81,30.
OK
-> Current Fix Status: 3
-> [SUCCESS] Raw NMEA coordinates acquired!
[TX]: AT$GPSP=0
[RX]: AT$GPSP=0
OK
-> Setting RF priority to LTE (Waiting 3s)...
[TX]: AT$GPSCFG=3,1
[RX]: AT$GPSCFG=3,1
OK
Raw Latitude: 3730.3608N
Converted Latitude (DD): 37.506013
Raw Longitude: 12704.7580E
Converted Longitude (DD): 127.079300
AT#MQPUBSEXT=1,"czme310/topic/put",1,0,20
37.506013,127.079300
-> Publishing converted DD coordinates to MQTT broker...
-> Waiting 10 seconds before next cycle...
--------------------------------------------------
>>> [GPS Transfer Cycle 3 / 3 Started] <<<
--------------------------------------------------
-> Setting RF priority to GPS (Waiting 3s)...
[TX]: AT$GPSCFG=3,0
[RX]: AT$GPSCFG=3,0
OK
[TX]: AT$GPSP=1
[RX]: AT$GPSP=1
OK
-> Waiting for GPS position fix...
[TX]: AT$GNSSACP
[RX]: AT$GNSSACP
$GNSSACP: 121947.040,210726,3730.3608N,12704.7580E,65.8,1.1,0.9,3,280.6,0.5,0.3,AANNNN,09,21.81,30.
OK
-> Current Fix Status: 3
-> [SUCCESS] Raw NMEA coordinates acquired!
[TX]: AT$GPSP=0
[RX]: AT$GPSP=0
OK
-> Setting RF priority to LTE (Waiting 3s)...
[TX]: AT$GPSCFG=3,1
[RX]: AT$GPSCFG=3,1
OK
Raw Latitude: 3730.3608N
Converted Latitude (DD): 37.506013
Raw Longitude: 12704.7580E
Converted Longitude (DD): 127.079300
AT#MQPUBSEXT=1,"czme310/topic/put",1,0,20
37.506013,127.079300
-> Publishing converted DD coordinates to MQTT broker...
==================================================
=== [CLEANUP] 3 Cycles Complete: Initiating Shutdown ===
==================================================
AT#MQDISC=1
AT#MQEN=1,0
AT#SGACT=1,0,"",""
=== All MQTT Public Procedures Done ===
ME310G1 Modem Power Off
=== All tasks and power-off procedures completed successfully. ===동작 영상
LTE-CATM1 내장형 모뎀 대량 구매 상담, 외주 개발, 협업 문의, vodafone IoT유심 문의
(주)코드주
장병남 대표 010-8965-1323 rooney.jang@codezoo.co.kr코드주 LTE-CatM1 내장형 모뎀 CZ-ME310G1 / GNSS(GPS) 지원 / 외장 LTE 안테나 포함 / Zephyr 및 Arduino 지원
메카솔루션 공식 쇼핑몰
www.mechasolution.com
iot유심 : codezoo
[codezoo] IoT Global SIM, IoT Connectivity, IoT Device
smartstore.naver.com
LTE + GNSS Cabinet 안테나 : codezoo
[codezoo] IoT Global SIM, IoT Connectivity, IoT Device
smartstore.naver.com
CodeZoo LTE-CatM1 전용 아두이노 브레이크아웃 쉴드
메카솔루션 공식 쇼핑몰
mechasolution.com
'Asset tracking' 카테고리의 다른 글
CZ-ME310G1모뎀 AGPS 꼭 쓰세요~!! 첫번째 이야기 (2) 2026.06.26 영등포 ➔ 마곡 ➔ 강동 ➔ 청량리, 차량 Asset Tracking Map 제작 (4) 2025.04.13 CZ-ME310G1모뎀, Thingspeak.com, Google Map으로 Asset tracking 지도 제작하기 (6) 2025.04.12