##参考サイト
https://librabuch.jp/blog/2015/09/mosquiito_paho_python_mqtt/
##使用するもの
ubuntuプロンプト・・・ブローカ用
anacondaプロンプト二つ・・・pub用、sub用
##anacondaにpahoクライアントをインストール
anacondaPromptにて
pipコマンドインストール
sudo apt install python-pip
paho-mqttインストール
pip install paho-mqtt
をする。
##ubuntuのコマンドプロンプトでmosquittoブローカを起動
これだけで起動できる。
mosquitto
##pub.py,sub.pyを作成する。
pub.py
from time import sleep
import paho.mqtt.client as mqtt
host = '127.0.0.1'
port = 1883
topic = 'iktakahiro/a'
# インスタンス作成時に protocol v3.1.1 を指定します
client = mqtt.Client(protocol=mqtt.MQTTv311)
client.connect(host, port=port, keepalive=60)
for i in range(3):
client.publish(topic, 'ham')
sleep(0.2)
client.disconnect()
sub.py
import paho.mqtt.client as mqtt
host = '127.0.0.1'
port = 1883
topic = 'iktakahiro/a'
def on_connect(client, userdata, flags, respons_code):
print('status {0}'.format(respons_code))
client.subscribe(topic)
def on_message(client, userdata, msg):
print(msg.topic + ' ' + str(msg.payload))
if __name__ == '__main__':
# Publisherと同様に v3.1.1を利用
client = mqtt.Client(protocol=mqtt.MQTTv311)
client.on_connect = on_connect
client.on_message = on_message
client.connect(host, port=port, keepalive=60)
# 待ち受け状態にする
client.loop_forever()
メモ帳で作成する場合、utf-8に設定しないとエラーが発生するので注意。
pythonエディタで作りましょう。
##起動を確認する。
anacondapromptで二つのファイルがあるディレクトリに移動し、
一方で、
python sub.py
もう一方で
python pub.py
subscliberの画面に
status 0
iktakahiro/a b'ham'
iktakahiro/a b'ham'
iktakahiro/a b'ham'
となれば成功。
pythonファイルをいじればもっと多くのことができそう。
以上。