はじめに
仕事でMQTTを使うことになり、手軽にMQTTが扱えるらしいMosquittoについて調べました。
既に様々な方が同様のMosquittoの導入記事をまとめていますが、Macとラズパイで微妙に導入方法が違ったりで、私自身が多少迷ったので、備忘録もかねて記事にします。
MQTTとは何かについては、ここでは触れませんので、ぐぐって見てください。
Mosquittoのインストール
Macの場合
Homebrewを使ってインストールできます。
brew install mosquitto
以下のパスにソフトがそれぞれインストールされます。
- mosquitto(ブローカー):/usr/local/opt/mosquitto/sbin
- mosquitto_sub(購読用):/usr/local/opt/mosquitto/bin
- mosquitto_pub(配信用):/usr/local/opt/mosquitto/bin
これらのパスは、環境変数のPathに追加しておきます。
RaspberryPiの場合
ラズパイというかLinuxの場合ですが、以下のコマンドでMosquittoをインストールできます。
# Mosquitto(Broker)をインストールします。
sudo apt-get install mosquitto
# Mosquittoクライアントをインストールします。
sudo apt-get install mosquitto-clients
ブローカーの起動
ブローカーは、MQTT通信を仲介するサーバーです。一般的には、AWS IoT等のクラウドサービスを利用すると思いますが、あくまで動作確認のため、ここでは、MacまたはRaspberryPiで起動します。どちらで起動しても良いです。1つあれば良いので、両方同時に起動する必要はありません。
また、次の動作確認のステップで必要になるので、ブローカー端末のIPアドレスをメモに控えておいてください。
Macの場合
以下のコマンドでMosquittoのブローカーを起動します。
mosquitto
RaspberryPiの場合
以下のコマンドでMosquittoのブローカーを起動します。
sudo service mosquitto status
動作確認
上記の手順でMosquittoをインストールすると、一緒に購読用と配信用の簡易クライアントもインストールされます。簡易クライアントで動作を確認します。
説明のため、以下のようにします。
- ブローカーのIPアドレス:192.168.11.18
- トピック名:tp1/test
- 配信メッセージ:Hello
購読用端末のターミナルを開いて、以下のコマンドでトピックを購読します。
購読用端末はブローカーと同じ端末でも問題ありません。
mosquitto_sub -h 192.168.11.18 -t tp1/test
配信用端末のターミナルを開いて、以下のコマンドでトピックにメッセージを配信します。
配信用端末はブローカーと同じ端末でも問題ありません。
mosquitto_pub -h 192.168.11.18 -t tp1/test -m Hello
これで購読側のターミナルにHelloというメッセージが表示されれば成功です。
まとめ
Mosquittoを使ってお手軽にMQTTの動作環境を作ることができました。