MQTT란? (Message Queing Telemetry Transport)
IOT(사물인터넷) 분야에서 가장 많이 사용되는 통신 프로토콜 중 하나.
경량 메시징 프로토콜로, 낮은 대역폭, 낮은 전력, 불안정한 네트워크 환경에서도 안정적으로 작동하도록
설계된 Publish/Subscribe 방식의 통신 프로토콜이다.
Publish / Subscribe 구조란?
직접 데이터를 주고 받지 않고, Broker를 통해 간접적으로 통신

구성 요소
| Broker | 중앙 메시지 서버 (예: Mosquitto, HiveMQ, AWS IoT 등) |
| Publisher | 데이터를 "발행(publish)"하는 클라이언트 |
| Subscriber | 특정 주제를 "구독(subscribe)"하는 클라이언트 |
| Topic | 메시지를 주고받는 "채널" 이름. 문자열 형태 (예: "sensor/temperature") |
Qos (Quality of Service)
메시지 전송의 신뢰 수준을 설정할 수 있다.
| QOS 레벨 | 설명 |
| 0 | 최소한 한 번 전송 (보장 없음, 빠름) |
| 1 | 적어도 한 번 전송 (중복 허용) |
| 2 | 단 한 번만 전송 (가장 안전, 느림) |
사용 방법
모듈 설치
pip install paho-mqtt
예제
import paho.mqtt.client as mqtt
client = mqtt.Client()
client.connect("broker.hivemq.com", 1883, 60)
client.publish("test/topic", "Hello from Python!")
client.disconnect()
import paho.mqtt.client as mqtt
def on_message(client, userdata, msg):
print("수신된 메시지:", msg.topic, msg.payload.decode())
client = mqtt.Client()
client.connect("broker.hivemq.com", 1883, 60)
client.subscribe("test/topic")
client.on_message = on_message
client.loop_start()
try:
while True:
time.sleep(0.1)
except KeyboardInterrupt:
print("Program terminated")
client.loop_stop()
client.disconnect()'공부 내용 > 직무 공부' 카테고리의 다른 글
| MCU란? (0) | 2025.09.15 |
|---|---|
| 영상 처리 - openCV (0) | 2025.05.20 |
| 아두이노 기초 (Serial 통신) (0) | 2025.05.14 |
| 아두이노 기초 (타이머 인터럽트, DC모터, HC06) (0) | 2025.05.13 |
| 아두이노 기초 (서브모터, 조이스틱, 키 패드) (0) | 2025.05.13 |