Help us understand the problem. What is going on with this article?

MQTTブローカ「mosquitto」をpythonで使ってみる

More than 1 year has passed since last update.

参考サイト

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ファイルをいじればもっと多くのことができそう。

以上。

rui0930
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away