PlatformUpdated 2025-04-01
MQTT Broker
Mosquitto/EMQX 설정 및 토픽 설계 가이드.
MQTTMosquittoEMQXESP32-S3Spring Boot
개요
CtrlFarm IoT 노드는 MQTT 프로토콜로 센서 데이터를 클라우드로 전송합니다. 브로커는 Mosquitto(개발) 또는 EMQX(프로덕션)를 사용하며 Spring Boot가 MQTT 메시지를 구독해 DB에 저장합니다.
전체 데이터 흐름
토픽 설계
ctrlplus/{tenantId}/{deviceId}/{type}
| 토픽 예시 | 방향 | 설명 |
|---|---|---|
ctrlplus/farm-a/node-01/sensor | Device → Cloud | 센서 데이터 전송 |
ctrlplus/farm-a/node-01/status | Device → Cloud | 디바이스 상태 |
ctrlplus/farm-a/node-01/command | Cloud → Device | 원격 제어 명령 |
ctrlplus/farm-a/node-01/ota | Cloud → Device | OTA 업데이트 트리거 |
메시지 페이로드
센서 데이터
JSON
커맨드
JSON
Mosquitto 설정 (개발)
Bash
Bash
Bash
EMQX 설정 (프로덕션)
Bash
ESP32-S3 MQTT 클라이언트
C++
Spring Boot MQTT 구독
의존성
groovy
MqttConfig
Java
MqttMessageHandler
Java
QoS 레벨 선택 기준
| QoS | 보장 | CtrlFarm 적용 |
|---|---|---|
| 0 | 최대 1회 전송 (유실 가능) | 로그성 데이터 |
| 1 | 최소 1회 전송 (중복 가능) | 센서 데이터 ✅ |
| 2 | 정확히 1회 전송 | 제어 커맨드 ✅ |