프리그로우 UWB RTLS 시스템의 데이터는 연동 목적과 규모에 따라 크게 직접 시리리얼 통신과 네트워크 기반 MQTT 통신의 두 가지 방식으로 외부 시스템이나 서버와 연동됩니다.
1. 게이트웨이를 통한 네트워크 기반 연동 (MQTT)
RTLS 데이터를 중앙 서버나 클라우드 시스템에 실시간으로 전송하는 가장 일반적인 방법입니다. 이 방식은 공장이나 창고와 같이 넓은 공간을 커버하고 중앙에서 기기 상태 및 위치 이벤트를 실시간으로 확인해야 할 때 사용됩니다.
- 프로토콜: MQTT (Message Queuing Telemetry Transport) 프로토콜을 사용합니다. MQTT는 IoT 환경에 널리 사용되는 경량 통신 프로토콜로, 실시간 메시지 송수신을 효율적으로 처리합니다.
- 데이터 흐름: UWB 앵커와 태그로부터 수집된 위치 데이터는 게이트웨이를 통해 MQTT 브로커(Broker, 예: Mosquitto)로 전송됩니다.
- 서버 구축: 사용자는 사설 Mosquitto 브로커를 서버에 설치하고, 게이트웨이 설정을 통해 해당 브로커의 IP 주소로 데이터를 전송하도록 구성합니다.
- 데이터 형식 및 구독 (Topic): 전송되는 데이터는 JSON 형식입니다. 서버나 모니터링 클라이언트(예: MQTT-Studio)는 다음과 같은 주요 토픽을 구독하여 데이터를 수신합니다:
uwb/gateway/devices/#: 태그의 실시간 위치 좌표 (x, y, z) 및 앵커 정보가 포함됩니다.uwb/gateway/config/#: 게이트웨이의 생존 신호 (Heartbeat) 와 구성 정보.uwb/gateway/start/#: 게이트웨이 부팅 직후의 상태 정보.
2. 리스너 또는 태그를 통한 직접 시리얼 연동 (USB/UART)
Creator Kit Q1은 개발자나 연구자들이 소규모 테스트베드나 임베디드 장치와 직접 연동할 수 있도록 시리얼 통신을 지원합니다. 이 방식은 주로 위치 계산 결과를 실시간으로 확인하거나 장치를 직접 제어할 때 활용됩니다.
- 하드웨어 구성: 리스너 또는 개발자 태그를 PC나 임베디드 장치(예: Raspberry Pi, Arduino)에 USB/UART 연결을 통해 직접 연결합니다.
- 데이터 수집 방법: 시리얼 터미널 프로그램(예: Tera Term) 또는 Python/Arduino 라이브러리 코드를 통해 장치에 특정 명령어를 입력하여 데이터를 수신합니다.
lep명령어: 위치 좌표(x, y, z)와 품질 지수(QF) 만 CSV 형식으로 출력하여 로그 수집에 적합합니다.lec명령어: 거리 정보 (앵커와의 거리) 와 위치 정보(POS)를 포함하여 출력하며 디버깅에 유용합니다.
- 개발 환경 지원: Python 기반 시리얼 통신 예제 코드와 Arduino 라이브러리가 제공되므로, 개발자는 이를 활용하여 위치 데이터 수집 및 파싱 로직을 직접 구현할 수 있습니다.
3. 전자지도 플랫폼을 통한 시각화 연동 (API/SDK)
수집된 위치 좌표를 외부 시스템의 시각화 화면에 연동할 때는 프리그로우의 전자지도 개발자 플랫폼을 활용할 수 있습니다.
- API/SDK 제공: 이 플랫폼은 REST API와 JavaScript SDK를 제공하여 외부 웹 또는 모바일 앱과 쉽게 연동됩니다.
- 좌표 시각화: RTLS에서 계산된 좌표 정보(x, y, 층)를 API 형식에 맞게 플랫폼에 전달하면, 시스템이 이를 디지털 지도 위에 실시간 위치로 표시합니다.
- 활용: 이를 통해 실내 서바이벌 게임의 플레이어 위치를 게임 엔진(Unity/Unreal)에 연동하거나, 위험 구역 설정(지오펜스) 및 출입 이벤트 감지를 구현할 수 있습니다.
그로우스페이스 관리자 Asked question