0

MQTT에 실시간 위치 데이터가 수신되지 않을 때, 이는 네트워크 연결, 게이트웨이 설정, MQTT 브로커 구성, 또는 UWB 시스템 자체의 위치 계산 오류 등 여러 단계에서 발생할 수 있습니다.

Creator Kit Q1을 사설 서버와 연동하고 계시므로, 다음 세 가지 주요 영역을 순서대로 점검해 보시는 것이 좋습니다.
1. 네트워크 및 게이트웨이 연결 상태 확인
게이트웨이(Gateway)가 사내망 Wi-Fi에 정상적으로 접속하고 서버(MQTT 브로커)에 접근 가능한지 확인하는 단계입니다. 게이트웨이에 USB 시리얼(Tera Term 등)을 연결하여 직접 명령어를 입력하며 디버깅할 수 있습니다.

  • Wi-Fi 연결 상태 점검:
    • 게이트웨이가 2.4GHz Wi-Fi에 연결되어 있는지 확인합니다 (5GHz 미지원).
    • Tera Term에서 networkConnected? 명령어를 입력하여 네트워크 연결 여부를 확인합니다.
    • IP? 명령어를 통해 게이트웨이가 사내망으로부터 정상적으로 IP 주소를 할당받았는지 확인합니다.
  • 게이트웨이 MQTT 설정 확인:
    • basicSetting? 명령어를 사용하거나, mqttIP? 명령어를 사용하여 게이트웨이에 설정된 MQTT 브로커의 IP 주소가 사내 서버의 주소와 정확히 일치하는지 확인합니다.
    • 브로커에 인증이 필요하다면 mqttID?mqttPW? 명령어를 통해 ID와 비밀번호가 올바르게 설정되었는지 확인합니다.
    • 설정 변경 후 restart 명령어를 사용하여 게이트웨이를 재시작하여 변경 사항을 적용했는지 확인합니다.

2. 서버 및 MQTT 브로커 환경 점검
서버가 게이트웨이의 접속을 허용하고 데이터를 수신할 준비가 되어 있는지 확인해야 합니다.

  • 방화벽 설정:
    • MQTT 브로커가 설치된 서버의 방화벽에서 TCP 1883 포트에 대한 인바운드 규칙이 허용되었는지 반드시 확인해야 합니다. 방화벽이 닫혀 있으면 게이트웨이가 데이터를 전송할 수 없습니다.
  • MQTT 브로커 설정:
    • Mosquitto 브로커 설정 파일(mosquitto.conf)에서 게이트웨이의 접속을 허용하도록 listener 1883allow_anonymous true가 제대로 설정되어 있는지 확인합니다 (인증이 없는 경우).
  • 데이터 구독 (Subscribe) 확인:
    • MQTT-Studio와 같은 클라이언트에서 게이트웨이가 전송하는 필수 토픽 3가지(uwb/gateway/start/#, uwb/gateway/config/#, uwb/gateway/devices/#)를 모두 구독하고 있는지 확인합니다.
  • Start 및 Config 데이터 수신 확인:
    • uwb/gateway/config/# 토픽으로 게이트웨이의 생존 신호(Heartbeat) 가 주기적으로 (기본 10초에 한 번) 들어오는지 확인합니다. Config 데이터마저 들어오지 않는다면, 게이트웨이와 브로커 간의 연결(네트워크 또는 방화벽) 자체에 문제가 있는 것입니다.

3. UWB 시스템 동작 및 위치 데이터 생성 확인
게이트웨이와 서버의 연결이 정상이라도, UWB 시스템이 위치를 계산하지 못하면 uwb/gateway/devices/# 토픽으로 태그 위치 데이터가 전송되지 않습니다.

  • UWB Pan ID 일치:
    • 게이트웨이, 앵커, 태그의 Pan ID가 모두 동일하게 설정되어 있는지 확인합니다. uwbPanID? 명령어를 통해 게이트웨이의 Pan ID를 확인하고, UWB 장치들의 Pan ID도 일치하는지 확인해야 합니다.
  • 앵커 최소 설치 개수 및 좌표 설정:
    • 태그의 위치를 계산하는 데 필요한 최소 3개 이상의 앵커가 설치되어 연결되어 있는지 확인합니다 (삼변측량 원리).
    • 앵커의 3차원 좌표(X, Y, Z)가 밀리미터(mm) 단위로 정확하게 입력되었는지 확인해야 합니다. apg 명령어를 사용해 앵커의 현재 좌표를 조회할 수 있습니다.
  • 태그 위치 계산 품질 확인:
    • 태그를 PC에 직접 연결하여 leplec 명령어를 입력했을 때, **실시간 위치 좌표(POS)**가 출력되는지 확인합니다.
    • 출력되는 품질 지수(QF)60~80 이상으로 안정적인지 확인합니다. QF가 낮으면 위치 계산이 불안정하여 위치 데이터 전송에 문제가 있을 수 있습니다.
  • 태그 송신 주기 설정:
    • 태그의 송신 주기가 너무 길게 설정되어 있는지 확인합니다. 태그에 aurs 명령어를 입력하여 이동 시와 정지 시의 전송 주기를 확인하고, 필요 시 조정합니다 (100ms 단위).

요약하자면, MQTT 데이터 수신 문제 해결은 마치 국제 배송 문제를 해결하는 것과 같습니다. 먼저 **게이트웨이(발신자)**가 **사내망(네트워크)**에 접속했고 **브로커(도착지 주소)**를 정확히 알고 있는지 확인하고, 다음으로 **서버(수신처)**의 **방화벽(세관)**이 포트 1883을 통해 배송을 허용했는지 확인해야 합니다. 마지막으로 **태그(화물)**가 **앵커(포장 시설)**를 통해 위치 정보라는 유효한 화물을 생성하고 있는지 확인해야 합니다.의 안내처럼, Start → Config → Devices의 흐름대로 데이터가 수신되는지 단계적으로 확인하며 문제를 좁혀나가는 것이 효과적입니다.

그로우스페이스 관리자 Asked question