from machine import UART, Pin
from time import sleep
from micropyGPS import MicropyGPS
# GPS 객체 생성 (9는 한국 시간대 GMT+9 설정)
my_gps = MicropyGPS(9)
# UART 설정 (Pico의 GP4=TX, GP5=RX)
# 주의: GPS 모듈의 TX는 피코의 RX(5)에, GPS의 RX는 피코의 TX(4)에 연결해야 함
gps_serial = UART(1, baudrate=9600, tx=Pin(4), rx=Pin(5))
print("GPS 데이터 수신 대기 중...")
while True:
try:
if gps_serial.any():
data = gps_serial.read()
for byte in data:
# 데이터를 한 글자씩 해석
stat = my_gps.update(chr(byte))
# 유효한 데이터가 파싱되어 업데이트되었을 때 출력
if stat:
print('=' * 20)
print(f'위도(Latitude): {my_gps.latitude_string()}')
print(f'경도(Longitude): {my_gps.longitude_string()}')
print(f'고도(Altitude): {my_gps.altitude} m')
print('=' * 20)
sleep(0.1) # CPU 과부하 방지
except Exception as e:
print(f"에러 발생: {e}")
sleep(1)