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/sensorDevice → Cloud센서 데이터 전송
ctrlplus/farm-a/node-01/statusDevice → Cloud디바이스 상태
ctrlplus/farm-a/node-01/commandCloud → Device원격 제어 명령
ctrlplus/farm-a/node-01/otaCloud → DeviceOTA 업데이트 트리거

메시지 페이로드

센서 데이터

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회 전송제어 커맨드 ✅

연결 상태 다이어그램