https://aws.amazon.com/ko/what-is/mqtt/
MQTT(Message Queuing Telemetry Transport)는 경량의 메시지 프로토콜로, 제한된 대역폭이나 자원이 적은 환경에서도 데이터를 효과적으로 전송할 수 있게 설계되었다.
IoT 시스템에서 주로 사용되며, 발행-구독 모델을 기반으로 동작한다.
Publish-Subscribe Model
발행-구독 모델. 클라이언트는 특정 Topic을 Publish 하거나 Subscribe 할 수 있다.
Broker가 중간에서 메시지 데이터를 관리 및 전달한다.
메시지는 3가지 QoS(Quality of Service)레벨로 신뢰성을 보장한다.
* QoS 0 : 최소전달(한번 보내고 끝)
* QoS 1 : 최소 1회 전달(중복 가능)
* QoS 2 : 정확히 1회 전달
스마트 홈을 예시로 보는 MQTT 동작 구조
1. Broker
MQTT Broker는 스마트 홈 네트워크의 중심. Mosquitto, HiveMQ 등을 브로커로 사용가능
모든 장치와 클라이언트는 브로커와 연결되어 통신함
2. Clients
클라이언트는 브로커와 연결된 장치로, 데이의 Publisher, Subscriber가 될 수 있음.
온도센서, 문열림 감지기가 Publisher가 될 수 있고,
스마트폰 앱, 스마트 스피커 등이 Subscriber가 될 수 있다.
3. 스마트 홈에서 온도를 조절하는 예상 시나리오
3.1 온도 모니터링 :
온도센서가 Publisher가 됨.
실내 온도 측정, 주기적으로 MQTT Broker에게 데이터를 publish.
ex)
Topic : home/livingroom/temperature
Message : 22'C
스마트폰 앱 or 에어컨이 Subscribers 가 됨.
앱과 에어컨은 home/livingroom/temperature 라는 Topic을 구독함.
센서가 데이터를 publish하면 브로커가 이 주제를 구독하는 구독자들에게 데이터를 전달.
Subscribers는 데이터를 브로커로부터 수신받고 지정된 동작을 수행함.
앱은 전달받은 데이터를 모니터링 페이지에 출력함.
에어컨은 전달받은 데이터를 바탕으로 온도를 조절함.
3.2 온도 제어 :
앱은 Client로써 브로커에게 원하는 온도를 담은 메시지를 publish 함.
에어컨은 이를 구독하고 있으면서 브로커에게 메시지를 받아 동작함.
ex)
Topic : home/livingroom/airconditioner/temperature
Message : json data
{ "targetTemperature" : 24, "mode" : "cool" }