SeouliteLab

파이썬으로 MQTT 통신하기: paho-mqtt 라이브러리 활용하기 본문

카테고리 없음

파이썬으로 MQTT 통신하기: paho-mqtt 라이브러리 활용하기

Seoulite Lab 2024. 4. 18. 08:10

MQTT(MQ Telemetry Transport)는 경량 메시징 프로토콜로, IoT(사물인터넷) 기기 간 통신에 널리 사용됩니다. 파이썬에서는 paho-mqtt 라이브러리를 사용하여 MQTT 클라이언트를 구현할 수 있습니다. 이를 통해 MQTT 브로커와 통신하는 다양한 예제를 살펴보겠습니다.

예제 1: MQTT 메시지 발행하기

import paho.mqtt.client as mqtt

# MQTT 클라이언트 생성
client = mqtt.Client()

# MQTT 브로커에 연결
client.connect("test.mosquitto.org", 1883)

# 메시지 발행
client.publish("topic/test", "Hello MQTT")

# 연결 종료
client.disconnect()

위 예제는 paho-mqtt를 사용하여 MQTT 메시지를 발행하는 방법을 보여줍니다. 클라이언트를 생성한 후, MQTT 브로커에 연결하고 지정한 토픽에 메시지를 발행합니다.

예제 2: MQTT 메시지 구독하기

import paho.mqtt.client as mqtt

# 메시지 수신 콜백 함수
def on_message(client, userdata, msg):
    print(f"수신 메시지: {msg.topic} {str(msg.payload)}")

# MQTT 클라이언트 생성
client = mqtt.Client()

# 수신 콜백 함수 등록
client.on_message = on_message

# MQTT 브로커에 연결
client.connect("test.mosquitto.org", 1883)

# 토픽 구독
client.subscribe("topic/test")

# 메시지 루프 시작
client.loop_forever()

위 예제는 paho-mqtt를 사용하여 MQTT 메시지를 구독하는 방법을 보여줍니다. 클라이언트를 생성한 후, 수신 콜백 함수를 등록하고 MQTT 브로커에 연결하여 지정한 토픽을 구독합니다.

예제 3: TLS(SSL)로 보안된 MQTT 연결 설정하기

import paho.mqtt.client as mqtt
import ssl

# MQTT 클라이언트 생성
client = mqtt.Client()

# TLS 연결 설정
client.tls_set(ca_certs="mosquitto.org.crt", certfile="client.crt", keyfile="client.key", cert_reqs=ssl.CERT_REQUIRED, tls_version=ssl.PROTOCOL_TLS)

# MQTT 브로커에 연결
client.connect("test.mosquitto.org", 8883)

# 메시지 발행
client.publish("topic/test", "Hello MQTT")

# 연결 종료
client.disconnect()

위 예제는 paho-mqtt를 사용하여 TLS(SSL)로 보안된 MQTT 연결을 설정하는 방법을 보여줍니다. TLS 연결을 설정하고 MQTT 브로커에 안전하게 연결하여 메시지를 발행합니다.

paho-mqtt 라이브러리를 사용하면 파이썬으로 MQTT 통신을 쉽게 구현할 수 있습니다.