1시스템 구성
시스템 구성도
태그의 BLE 신호를 로케이터가 수신하고, PoE 스위칭 허브를 거쳐 MQTT 서버가 위치를 계산하며, PC에서 설정 및 모니터링하는 구조입니다.
하드웨어 구성품
- 공유기 (iptime 권장)
- 포지션 서버 카드 — 라즈베리파이, 호스트명
aoa-server-1(MQTT 브로커 + 위치 계산 엔진) - PoE 스위칭 허브
- LocationX 로케이터
CB-AOAAOD-L-POE2601(4×4 URA 안테나) - BLE 태그
CB-AOAAOD-Tag-Hart/CB-AOAAOD-Tag-Motion
소프트웨어
| 소프트웨어 | 용도 | 구분 |
|---|---|---|
| LocationX Position Setting Tool | 장치 검색 · 도면 위 로케이터 배치 · 서버 설정 전송 · 데이터 수신 확인 | 필수 (Windows) — GitHub |
| MQTT Explorer | MQTT 원시 메시지 모니터링 | 선택 — mqtt-explorer.com |
네트워크 구성
| 구성 요소 | IP 주소 | 포트 |
|---|---|---|
| 공유기 관리자 | 192.168.0.1 (iptime 기본) | - |
| 포지션 서버 카드 (MQTT 브로커) | DHCP 할당 — 설정 도구의 [장치 검색]으로 확인 | 1883 |
| 로케이터 | DHCP 자동 할당 | - |
2설치 — 초기 설정
설정 순서
- 공유기 실행 — iptime 공유기 기준, 관리자 페이지는
192.168.0.1 - 포지션 서버(MQTT 서버) 실행 — 서버 카드에 전원을 넣으면 자동으로 실행됩니다
- 로케이터 연결 — PoE 스위칭 허브에 랜선으로 연결
⚠️MQTT 서버가 먼저 실행되어 있어야 합니다. 로케이터는 전원이 연결되면 별도 설정 없이 자동으로 MQTT 서버에 연결하여 데이터를 전송합니다.
로케이터 설치 (초기 설정)
초기 설정 시 아래와 같이 설치한 후 동작을 확인합니다. 로케이터는 천장(권장 높이 약 3m)에 안테나면이 바닥을 향하도록 설치합니다.
💡설치 후 로케이터의 위치·자세 값 등록과 변경은 아래 위치 설정 도구에서 처리합니다. config 파일을 직접 수정할 필요가 없습니다.
3위치 설정 — LocationX Position Setting Tool
로케이터 카드를 LAN에서 검색해 도면 위에 드래그앤드롭으로 배치하고, 서버의 positioning 설정을 업데이트하는 Windows 데스크톱 도구입니다. 도구는 GitHub Release에서 다운로드합니다.
3-1. 장치 검색
- 도구 실행 후 위치 설정 (서버) 탭에서 [장치 검색 (UDP)] 버튼을 누릅니다.
- 같은 네트워크의 MQTT 서버 카드와 로케이터들이 자동으로 검색되어 왼쪽 목록에 나타납니다.
- 서버 카드의 IP가 자동으로 대상 서버로 설정됩니다.
3-2. 도면 준비
- 도면 불러오기 — 바닥 도면 이미지(png/jpg)를 선택합니다.
- 스케일 보정 — 도면에서 실제 거리를 아는 두 점을 클릭하고 실거리(m)를 입력합니다.
- 원점 설정 — world 좌표 (0,0)으로 쓸 위치를 클릭합니다.
3-3. 로케이터 배치
- 오른쪽 목록의 로케이터를 캔버스로 드래그해 실제 설치 위치에 배치합니다 (설치 높이 z 기본 3.0m).
- 마커를 클릭하면 왼쪽 패널에서 좌표·자세(orientation)·AoA 상세 설정을 편집할 수 있습니다.
- 전역 Positioning 설정(추정 모드, 필터링 가중치 등)도 오른쪽 패널에서 조정합니다.
3-4. 서버로 전송
- [서버로 전송] 버튼을 누르면 변경 내용(diff)이 표시됩니다.
- 적용을 확정하면 서버 카드의
positioning_config.json이 갱신되고 위치 계산 엔진이 자동으로 재시작됩니다. - 프로젝트 저장(
.lxpos.json)으로 도면·보정·배치 상태를 로컬에 보관할 수 있습니다.
💡로케이터 위치를 변경할 때도 같은 방법입니다 — 캔버스에서 마커를 옮기고 [서버로 전송]만 다시 하면 됩니다.
3-5. 데이터 수신 확인
데이터 수신 탭에서 MQTT 브로커에 연결하면 로케이터별 angle 스트림
(silabs/aoa/angle/<로케이터>/<태그>)이 실시간으로 표시됩니다.
태그를 켜면 수신 속도(msg/s)와 azimuth·elevation 값을 바로 확인할 수 있습니다.
3-6. 위치 확인
배치가 완료되면 도면 위에서 태그의 계산된 위치를 Top view / 3D 뷰로 확인합니다.
장치 설정 탭 — 로케이터 관리
- LED 식별 — 선택한 로케이터의 LED를 깜박여 현장에서 어느 장비인지 찾을 때 사용
- AOA 서비스 재시작 — MQTT 서버 변경 등을 로케이터에 적용할 때 사용
- 장치 재부팅 — 로케이터를 원격으로 재시작
- 상태 확인 웹 — 로케이터의 UART 수신 여부, CPU 온도, 브로커 연결 상태, AoA 각도 그래프를 브라우저(
http://<카드IP>:8080)로 확인
4MQTT 데이터 확인 (MQTT Explorer)
원시 MQTT 메시지를 직접 확인하고 싶을 때는 MQTT Explorer를 사용합니다.
- MQTT Explorer를 실행하고 +Connections 버튼을 눌러 MQTT 연결을 설정합니다.
- Name:
aoa-server-1 - Protocol:
mqtt:// - Host:
<서버 카드 IP>(설정 도구의 장치 검색으로 확인) - Port:
1883
- Name:
- ADVANCED를 눌러 Topic을
#만 설정하고 BACK으로 돌아옵니다. - CONNECT를 눌러 MQTT Broker에 연결합니다.
- 데이터가 수신되는 것을 확인할 수 있으며, azimuth와 elevation 데이터를 확인할 수 있습니다.
수신 데이터 필드
| 필드 | 설명 |
|---|---|
azimuth | 로케이터(안테나 배열) 기준 태그 신호의 방위각 (수평 각도) |
azimuth_stdev | 방위각 측정값의 표준편차 |
elevation | 태그 신호의 고도각 (수직 각도) |
elevation_stdev | 고도각 측정값의 표준편차 |
# 각도 (로케이터 → 브로커) silabs/aoa/angle/<locator_id>/<tag_id> { "azimuth": 42.1, "azimuth_stdev": 1.3, "elevation": -35.6, "elevation_stdev": 2.0 } # 위치 (위치 엔진 → 브로커 · 미터 단위) silabs/aoa/position/<tag_id> { "x": 2.41, "y": -1.02, "z": 1.20 }