본문 바로가기
스터디/IoT

[사물인터넷] MQTT

by onecosm 2023. 3. 22.
반응형

 

 

 

 

MQTT Protocol

 

 

MQTT (Message Queuing Telemetry Transport)는 인터넷상의 제한된 대역폭과 불안정한 네트워크 상황에서도 동작할 수 있는 경량 메시지 프로토콜입니다.

 

M2M 또는 IoT 환경에서 사용하기 위해 만들어진 경량의 Publish-Subscribe 기반 메시지 프로토콜입니다. 경량 프로토콜로 저전력 장비에서도 운영 가능하며 network bandwidth가 적은 곳에서도 충분히 운용 가능하도록 설계된 프로토콜입니다.

 

 

MQTT는 메시지를 Publish하고, 관심 있는 Topic을 Subscribe 하는 것을 기본 원칙으로 하여, Publisher와 Subscriber 사이에 Broker가 필요합니다.

Broker는 클라이언트(Publisher, Subscriber)의 연결, 연결 해제, Topic 구독 및 발행 등 event에 대해 대응할 수 있는 기능을 가지고 있습니다. 개설된 Topic에  message를 발행하면 해당 Topic을 구독하는 모든 클라이언트에게 message를 전송합니다.

 

 

따라서 one to multi 또는 one to one message 전송을 모두 지원할 수 있습니다..  또한, Topic은 ‘/’를 이용하여 계층적으로 구성할 수 있어 센서들을 중복 없이 효율적으로 관리 가능합니다.

 

 

MQTT Protocol를 활용한 서비스 예시

 

예를 들어, 스마트 홈에서 온도 센서가 현재 온도를 측정하고 이를 MQTT를 통해 서버에 전송하는 상황을 생각해보겠습니다.

 

1. 먼저, MQTT 클라이언트 라이브러리를 사용하여, 온도 센서와 연결된 디바이스에서 MQTT 클라이언트를 생성합니다.

2. MQTT 클라이언트는 브로커에 연결합니다. 이때, 연결된 클라이언트는 브로커에 자신의 ID와 함께 연결 정보를 보냅니다.

3. 클라이언트는 "home/living-room/temperature"라는 토픽을 구독합니다. 이 토픽은 서버에 온도 값을 전송할 때 사용됩니다.

4. 온도 센서가 현재 온도 값을 측정하면, MQTT 클라이언트는 "home/living-room/temperature" 토픽으로 메시지를 발행합니다. 이때, 메시지의 내용은 현재 측정된 온도 값입니다.

 

5. 브로커는 해당 토픽을 구독하고 있는 모든 클라이언트에게 메시지를 전송합니다. 이때, QoS 레벨을 설정하여, 메시지 전송의 안정성과 신뢰성을 조절할 수 있습니다.

 

6. 서버에서는 수신된 온도 값에 대한 처리를 수행합니다. 이를 바탕으로, 스마트 홈에서 온도를 제어하는 애플리케이션에서 온도 정보를 조회하거나, 사용자에게 알림 메시지를 전송하는 등의 기능을 수행할 수 있습니다.

 

 

위와 같이 MQTT를 사용하여, IoT 기반의 다양한 애플리케이션을 개발할 수 있습니다.

반응형

댓글