前回 PCのカメラから人物を推定してその物体の座標をMQTTで送る その1 に引き続き、今回はPythonでMQTTをpublishするコードを紹介します。
必要なライブラリのインストール
MQTTブローカーとSubscriberの準備
MQTTのブローカーはshiftrを使用し、こちらの記事(私のブログです)を参考にしてNode-RED上にMQTTのPublishとSurbsribeアプリを作成しました。
shiftr.ioをブローカーとして使いhtmlサイトとNode-REDでMQTTで通信する方法
MQTTの設定はこちら。
テストでNode-REDからPublishを行い、Subscribeでメッセージを受信できることを確認します。
MQTTメッセージをPublishするPythonコード
import paho.mqtt.client as mqtt
import time
BROKER = "public.cloud.shiftr.io" # Shiftr.ioのブローカー
PORT = 1883
TOPIC = "pythontest"
USERNAME = "public"
PASSWORD = "public"
# MQTT クライアントの作成
client = mqtt.Client()
# 認証情報を設定
client.username_pw_set(USERNAME, PASSWORD)
# MQTTブローカーに接続
client.connect(BROKER, PORT, 60)
# メッセージを送信
for i in range(5):
message = f"Hello MQTT {i}"
client.publish(TOPIC, message)
print(f"Sent message: {message}")
time.sleep(2) # 2秒間隔で送信
# 接続を終了
client.disconnect()
実行します。
このように無事にPythonからPulishしたMQTTメッセージをNode-REDで受信することができました。
次回は、前回の人物検出したデータをのMQTTで送る方法を紹介します。