작은항해자의 항해

MQTT 본문

Programming/프로그래밍공부중

MQTT

작은항해자 2019. 1. 16. 17:42

MQTT(Message Queuing Telemetry Transport)


ISO 표준 발행-구독 기반의 메시징 프로토콜이다. TCP-IP 프로토콜 위에서 작동한다.

"작은 코드 공간(small code footprint)"이 필요하거나 네트워크 대역폭이 제한되는 원격 위치와의 연결을 위해 설계되었다.

발행-구독 메시징 패턴은 메시지 브로커가 필요하다.


모바일 기기나 낮은 대역폭의 소형 디바이스들에 최적화된 메시징 프로토콜이다. 느리고 품질이 낮은 네트워크에서도 메시지를 안정적으로 전송할 수 있도록 설계되었다. 프로토콜이 차지하는 여러 관점의 리소스를 최소화했는데 특히 저전력에 방점을 두었다. 가장 작은 메시지는 2byte까지 가능하다.

Publish/Subscribe 형태를 취하여 세 가지의 QoS레벨을 제공한다.






MQTT는 3가지 구성요소로 구성

1. Publisher

   정보를 만들어 내는곳. 센서

2. Broker

   정보를 중계하는 곳. Publisher는 정보를 만들어 Broker에 전송. Subscriber는 Broker에서 필요한 정보를 찾아간다.

3. Subscriber

   정보를 사용하는곳. 센서 데이터를 사용하는 어플리케이션.


MQTT에서의 Address 지정방식

MQTT에서는 IP Address 와 같은 Address 지정 방식을 사용하지 않는다.

Contents를 Address로 사용하는 방식이다.

Publisher는 측정 데이터를 Broker에 보낼때 'Topic'이란 Tag와 같이 보낸다.

예를 들어 센서는 Topic를 붙여서 데이터를 전송한다.

"온습도센서/딸기아파트/1000동/100호/거실/2번"


딸기아파트의 모든 온습도센서 값을 알고 싶은 Subscriber는 "온습도센서/딸기아파트"

딸기아파트 1000동 100호의 온습도센서 값을 알고 싶으면 "온습도센서/딸기아파트/1000동/100호"

거실의 2번 센서를 알고 싶으면 "온습도센서/딸기아파트/1000동/100호/거실/2번"

이러한 형식으로 Address를 지정한다.


이러한 주소방식으로 센서는 불특정 다수의 어플리케이션에게 데이터를 제공해 줄 수 있게 된다


MQTT의 Polling

Subscriber는 관심 있는 센서의 데이터를 받기 위해 브로커를 계속 Polling 하지 않는다.

원하는 Topic을 브로커에 등록시켜 놓으면 Update 발생시 브로커가 자동으로 전송하여 준다.


MQTT Broker

무료 Broker : Mosquitto (http://mosquitto.org/)



(DIY 메카솔루션 오픈랩 - 자료)


1. 라즈베리파이와 MQTT 사용해보기 


2. ESP8266과 MQTT 통신 사용해보기



'Programming > 프로그래밍공부중' 카테고리의 다른 글

프로그램의 이식성  (0) 2014.10.01
C 프로그래밍1  (0) 2014.10.01