以下のコマンドでmosquittoをインストールします。
sudo apt-get -y install mosquitto mosquitto-clients
2. pipenvの導入
pipenvをインストールしていない場合は、以下のコマンドを実行します。
sudo apt-get update
sudo apt-get -y install python3-pip python3-distutils python3-dev
python3 -m pip install --user pipenv
echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.profile
echo 'export PATH=$PATH:/home/ubuntu/.local/bin' >> ~/.profile
source ~/.profile
3. paho-mqttモジュールがインストールされた仮想環境作成
pipenvを使用する場合は以下のコマンドで、paho-mqtt用の仮想環境を作成します。
mkdir -p ~/paho_mqtt
cd ~/paho_mqtt
pipenv --python 3
pipenv install paho-mqtt
pipenv shell
4. Subscribeサンプルプログラム
以下のプログラムで、mosquitto/testというトピックを受信してメッセージを表示します。
mosquitto_sub_test.py
import paho.mqtt.client as mqtt
topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe(topic)
def on_message(client, userdata, msg):
print("received: {}:{}".format(msg.topic, str(msg.payload)))
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect(host, port, secs_keep_alive)
client.loop_forever()
・実行方法
以下のコマンドで受信プログラムを実行します。止める場合はCtrl+Cで止めてください。
python mosquitto_sub_test.py
5. Publishサンプルプログラム
以下のプログラムで、mosquitto/testというトピックにメッセージを送信します。
mosquitto_pub_test.py
import paho.mqtt.publish as publish
topic = "mosquitto/test"
host = "localhost"
port = 1883
secs_keep_alive=60
publish.single(topic, "message test", hostname=host, port=port, keepalive=secs_keep_alive)
・実行方法
以下のコマンドで送信プログラムを実行します。
python mosquitto_pub_test.py
・送信用コマンド
mosquitto_pub -t mosquitto/test -h localhost -m "test message by command."
・受信用コマンド
mosquitto_sub -t mosquitto/test -h localhost