본문 바로가기

ESP32

MQTT란 무엇이며 어떻게 작동하는가

반응형

 

 

MQTT란 무엇이며 어떻게 작동하는가

 

이 문서는 MQTT 프로토콜에 대한 소개입니다. MQTT는 Message Queuing Telemetry Transport의 약자로, IoT 기기 간 통신에 적합한 간단한 메시징 프로토콜입니다.

 

 

MQTT란 무엇이며 어떻게 작동하는가?

 

MQTT란?

 

MQTT는 Message Queuing Telemetry Transport의 약자입니다. MQTT는 대역폭이 낮은 제약이 있는 기기를 위해 설계된 간단한 메시징 프로토콜입니다. 따라서 여러 IoT 기기 간에 데이터를 교환하는 데 완벽한 솔루션입니다.

 

MQTT 게시 구독

 

 

MQTT 통신은 게시 및 구독 시스템으로 작동합니다. 기기는 특정 주제에 대한 메시지를 게시합니다. 해당 주제에 구독된 모든 기기가 메시지를 수신합니다.

 

주요 응용 프로그램에는 제어 출력에 메시지를 보내고, 센서 노드에서 데이터를 읽고 게시하는 것 등이 있습니다.

 

MQTT 기본 개념

 

MQTT에는 이해해야 할 몇 가지 기본 개념이 있습니다.

 

  • 게시/구독
  • 메시지
  • 주제
  • 브로커

 

MQTT – 게시/구독

 

첫 번째 개념은 게시 및 구독 시스템입니다. 게시 및 구독 시스템에서 장치는 주제에 메시지를 게시하거나 특정 주제에 구독하여 메시지를 수신할 수 있습니다.

 

게시 구독 주제 MQTT

 

  • 예를 들어 장치 1은 주제에 게시합니다.
  • 장치 2는 장치 1이 게시하는 것과 동일한 주제에 구독됩니다.
  • 따라서 장치 2는 메시지를 수신합니다.

 

MQTT – 메시지

 

메시지는 장치 간에 교환하려는 정보입니다. 명령과 같은 메시지나 센서 판독값과 같은 데이터가 될 수 있습니다.

 

MQTT – 주제

 

또 다른 중요한 개념은 주제입니다. 주제는 수신 메시지에 대한 관심을 등록하거나 메시지를 게시하려는 위치를 지정하는 방법입니다.

 

주제는 슬래시로 구분된 문자열로 표현됩니다. 각 슬래시는 토픽 레벨을 나타냅니다. 다음은 홈 오피스의 램프에 대한 토픽을 만드는 방법의 예입니다.

 

 

 

참고: 토픽은 대소문자를 구분하므로 이 두 토픽은 다릅니다.

 

 

MQTT를 사용하여 홈 오피스의 램프를 켜고 싶다면 다음 시나리오를 상상해 보세요.

 

 

MQTT 게시 구독 예

 

1. 장치가 홈/오피스/램프 토픽에 "켜짐" 및 "꺼짐" 메시지를 게시합니다.

 

2. 램프를 제어하는 장치가 있습니다(ESP32, ESP8266 또는 다른 보드나 장치일 수 있음). 램프를 제어하는 ESP32는 동일한 토픽인 홈/오피스/램프에 구독됩니다.

 

3. 따라서 해당 토픽에 새 메시지가 게시되면 ESP32는 "켜짐" 또는 "꺼짐" 메시지를 수신하고 램프를 켜거나 끕니다.

 

메시지를 게시하는 장치는 ESP32, ESP8266 또는 Node-RED, Home Assistant, Domoticz 또는 OpenHAB와 같은 MQTT를 지원하는 홈 오토메이션 컨트롤러 플랫폼일 수 있습니다.

 

 

 

mqtt-device

 

MQTT – 브로커

 

마지막으로 또 다른 중요한 개념은 브로커입니다.

 

MQTT 브로커는 모든 메시지를 수신하고, 메시지를 필터링하고, 누가 관심이 있는지 결정한 다음, 모든 구독 클라이언트에 메시지를 게시하는 역할을 합니다.

 

 

mqtt-broker

 

사용할 수 있는 브로커는 여러 가지가 있습니다. 홈 오토메이션 프로젝트에서는 Raspberry Pi에 설치된 Mosquitto 브로커를 사용합니다. PC에 Mosquitto 브로커를 설치할 수도 있습니다(장치 간의 MQTT 연결을 유지하기 위해 컴퓨터를 항상 실행해야 하기 때문에 Raspberry Pi 보드를 사용하는 것만큼 편리하지는 않습니다).

 

 

로컬 네트워크의 Raspberry Pi에 Mosquitto 브로커를 설치하면 동일한 네트워크에 연결된 IoT 장치 간에 데이터를 교환할 수 있습니다.

 

Raspberry Pi에 Mosquitto 브로커를 설치하려면 다음 튜토리얼을 따르세요.

 

Raspberry Pi에 Mosquitto 브로커 설치

 

클라우드에서 Mosquitto MQTT 브로커를 실행할 수도 있습니다. 클라우드에서 MQTT Mosquitto 브로커를 실행하면 인터넷에 연결되어 있는 한 다른 네트워크를 사용하여 어디서나 여러 IoT 기기를 연결할 수 있습니다. 아래 튜토리얼을 확인하세요.

 

클라우드 MQTT Mosquitto 브로커 실행(Digital Ocean을 사용하여 어디서나 액세스)

 

홈 오토메이션 및 IoT 프로젝트에서 MQTT를 사용하는 방법

 

MQTT는 홈 오토메이션 및 사물 인터넷 프로젝트에 적합합니다. Raspberry Pi, ESP32, ESP8266 및 Arduino와 같은 저렴한 개발 보드로 구축된 홈 오토메이션 시스템에서 MQTT를 사용하는 방법의 예는 다음과 같습니다.

 

 

홈 오토메이션 시스템 예

 

 

  • Raspberry Pi는 MQTT 프로토콜에 필수적인 Mosquitto 브로커를 실행합니다.

 

  • 같은 Raspberry Pi는 MQTT를 지원하는 홈 오토메이션 플랫폼인 Node-RED를 실행합니다. 즉, 다른 IoT 기기에서 메시지를 수신하기 위해 토픽을 구독하고, 특정 토픽에 메시지를 게시하여 다른 기기에 메시지를 보낼 수 있습니다.

 

  • Node-RED를 사용하면 출력을 제어하는 버튼과 센서 판독값을 표시하는 차트가 있는 사용자 인터페이스를 빌드할 수도 있습니다.

 

  • Arduino, ESP32 및 ESP8266은 토픽을 게시하고 구독하는 MQTT 클라이언트 역할을 할 수 있습니다.

 

  • 이러한 보드는 LED 또는 릴레이와 같은 액추에이터와 온도, 습도, 연기 센서 등과 같은 센서에 연결됩니다.

 

  • 이러한 보드는 Node-RED가 구독한 특정 토픽에 센서 상태에 대한 데이터를 게시할 수 있습니다. 이런 방식으로 Node-RED는 센서 판독값을 수신하여 사용자 인터페이스에 표시할 수 있습니다.

 

  • 반면에 Node-RED는 인터페이스의 버튼을 사용할 때 출력을 제어하기 위해 특정 토픽에 대한 데이터를 게시할 수 있습니다. 다른 보드도 해당 토픽에 구독되어 그에 따라 출력을 제어합니다.

 

다음 이미지는 하나의 출력을 제어하고 온도 및 습도 판독값을 표시할 수 있는 Node-RED UI의 예를 보여줍니다.

 

 

다음은 이전에 설명한 대로 무언가를 빌드하기 위해 따라야 하는 단계에 대한 간략한 요약입니다.

 

  1. Raspberry Pi를 설정합니다. Raspberry Pi로 시작 가이드를 따르세요.
  2. SSH로 Raspberry Pi를 활성화하고 연결합니다.
  3. Pi에 Node-RED와 Node-RED 대시보드가 설치되어 있어야 합니다.
  4. Raspberry Pi에 Mosquitto 브로커를 설치합니다.
  5. 이 시스템에 ESP8266 또는 ESP32를 추가합니다. 다음 MQTT 튜토리얼을 따라할 수 있습니다.

 

  • MQTT를 사용한 ESP32 및 Node-RED - 게시 및 구독
  • MQTT를 사용한 ESP8266 및 Node-RED - 게시 및 구독

 

이러한 주제에 대해 자세히 알아보려면 Raspberry Pi, ESP8266, Arduino 및 Node-RED를 사용하여 자체 홈 자동화 시스템을 만드는 방법에 대한 전담 과정이 있습니다. 다음 링크를 클릭하기만 하면 됩니다.

 

>> 100달러로 홈 자동화 시스템 구축에 등록 <<

 

마무리

 

MQTT는 게시 및 구독 시스템을 기반으로 하는 통신 프로토콜입니다. 기기는 토픽을 구독하거나 토픽에 데이터를 게시할 수 있습니다. 기기는 구독한 토픽에 게시된 메시지를 수신합니다.

 

MQTT는 사용하기 쉽고 사물 인터넷 및 홈 자동화 프로젝트에 적합합니다. 여기에서 MQTT 관련 튜토리얼을 모두 확인할 수 있습니다.

 

이 튜토리얼이 유용했고 이제 MQTT가 무엇이고 어떻게 작동하는지 이해하셨기를 바랍니다.

 

읽어주셔서 감사합니다. 이 글이 마음에 드셨다면 저의 블로그를 구독하여 저희의 작업을 지원해 주세요.

 

아래의 비디오 튜토리얼을 시청하세요. 

 

 

What is MQTT and How It Works 

https://randomnerdtutorials.com/what-is-mqtt-and-how-it-works/

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^