はじめに
MQTT通信で人気のブローカーである「Mosquitto」の、セットアップ方法と使い方を解説します。
Mosquittoは簡単に使えて便利なMQTTのブローカーなのですが、RaspberryPiやPico Wなど「別のPC・機器から接続する場合に」設定や起動でハマるポイントがあります。
今回は、上記ハマりポイントを含め、MosquittoをWindows PCにセットアップする方法を解説します。クライアントには無料のAndroidアプリを使用します。
~ この記事の内容 / Contents ~
環境
この記事で使用する環境は以下の通りです。
環境 | バージョンなど | 備考 |
Mosquittoのインストール先 | Windows11 | Windows10でもやり方は同じです |
Mosquitto | Ver.2.0.15 |
使用する機器
Windows PC
Mosquittoブローカーの起動用に使います。Mosquittoブローカーは軽いので、5年以内に作られたPCであれば充分に動作可能です。
Android スマホ
MQTTブローカーへの接続確認に使用します。お手持ちのスマホで充分ですが、買い替えをお考えなら、高機能で低価格な、Motorola製がおすすめです。
Mosquittoのインストール手順
Mosquittoのインストール手順は以下の通りです。
インストーラーのダウンロード
以下の公式サイトからWindows版のインストーラーをダウンロードします。
Windowsの項目から、お使いのPCに合うもの(大体の場合は64bit)をダウンロードしてください。
インストール
インストーラーをダブルクリックして起動します。設定は変えずに「NEXT」ボタンを押してインストールを進めます。
「Install」ボタンが表示されるので、クリックします。「Finish」ボタンを押したらインストール完了です。
Mosquittoのセットアップ
Mosquittoのセットアップ・設定手順は以下の通りです。
① サービスの停止
Mosquittoのインストールすると、Mosquittoブローカーが「サービス」として自動的に起動します。そのままだと、後述の設定作業で邪魔になるので、以下の場所から停止しておきます。
コンピューターの管理
Windowsのスタートメニューで「コンピューターの管理」と入力して、コンピューターの管理画面を表示します。
画面左側の一覧から「サービスとアプリケーション」を選択し、画面中央でサービスを選択します。
画面中央にサービス一覧が表示されるので「Mosquitto Broker」を選択し、上部メニューで「停止」ボタンをクリックします。
② Mosquitto.confの設定
Mosquittoはデフォルトで「PC内部”のみ”で通信するように」設定されています(外部からの通信は遮断)。
そのため、設定ファイルである「Mosquitto.conf」の最後に以下の内容を追記し、外部からの通信が行えるようにします。
Mosquitto.confへの追記内容
# 外部からの接続につかうポート番号を指定します。
listener 1883
# ユーザー名を指定しない接続を許可するか?を設定します。
allow_anonymous true
Mosquitto.confの保存場所
設定ファイルは以下の場所(EXEと同じ場所)に保存されています。
今回は以下の環境を想定して設定しています。
- お使いのルーターのネットワーク内で使用する。
- ルーターの外(インターネット)からの接続は行わない。
- セキュリティ認証は使わない。
③ 設定変更の確認
Mosquittoブローカーを起動し、設定が適応されていることを確認します。
コマンドプロンプトに以下のように入力し、Mosquittoブローカーを起動します。
"C:\Program Files\mosquitto\mosquitto.exe" -v -c "C:\Program Files\mosquitto\mosquitto.conf"
設定ファイルがMosquittoブローカーと同じフォルダにある場合でも、ファイル名の指定は必ず指定してください。
起動後、以下のようにメッセージが表示されれば、設定完了です。
以下のように「Starting in local only mode ・・・」と表示される場合は、設定ファイルが正しく読み込まれておらず、外部のPCやデバイスから通信ができません。起動時のコマンドや設定内容を確認してください。
④ ファイアウォールの設定
デフォルトの設定ではMQTTで使う「1833番」のポートが使えないため、ファイアウォールの設定を行います。
Windowsのスタートメニューで「セキュリティが強化された」と入力し「セキュリティが強化されたWindows Defender …」をクリックします。
「受信の規則」をクリックして、「新しい規則」をクリックします。
「新規の受信構成ウィザード」の画面が開くので「ポート」を選択して次へを押します。
「特定のローカルポート」を選択して「1833」と入力し、次へを押します。
「接続を許可する」を選択して、次へを押します。
ドメインなど、すべての項目にチェックを入れて次へを押し、設定に名前を付けて「完了」ボタンを押せば設定完了です。
受信と同様に「送信の規則」にも同じ設定をしたら、ファイアウォールの設定は完了です(入力画面や設定項目は受信と同じものが表示されます)。
⑤ ポートの確認
「1833」ポートの通信状態を確認します。
Mosquittoブローカーを起動してから、コマンドプロンプトでnetstatコマンドを実行します。以下のように表示されていれば、ポートの設定は完了です。
※ Mosquittoブローカーを起動しない場合、上記内容は表示されません。
⑥ ウイルス対策ソフトの設定
必要に応じて、ウイルス対策ソフト(セキュリティーソフト)で1883番ポートが使えるように設定します。
私の環境(ESET)では設定は不要だったので、先に後述の動作確認を行って、通信ができない場合にセキュリティソフトを設定しても良いかもしれません。
⑦ MQTT通信の動作確認
Mosquittoブローカーに接続して、MQTT通信の動作確認を行います。
別のWindowsPCを用意しても良いのですが、スマホアプリの方が手間が少ないです。この記事では無料で使えるMQTTのスマホアプリ「MyMQTT」を使用します。
MyMQTTを起動して、Windowsで起動しているMosquittoブローカーのIPアドレス・ポート番号を入力。「Connect」ボタンを押します。
画面が切り替わり、左上に「Connected」の表示がでたら接続成功です。
アプリからの接続後、ブローカー表示に「New connection from …」と表示されたら、動作確認は完了です。
【参考】Mosquittoブローカーの自動起動
前述したMosquittoブローカーの起動コマンドを、そのままサービス起動用(自動起動用)に設定すると、「有効時間内に設定できない」としてエラーになります。
サービスとしての起動する場合の解決/回避方法は、現状見つけられていないため、見つかり次第追記したいと思います。
まとめ
MQTTで人気のブローカーである「Mosquitto」の、Windows版のセットアップと使い方について解説しました。
Mosquittoを他のデバイスから使う方法は情報が少なく、私も大いにハマりました。
「Mosquittoを使いたいけど、全然つながらない!」といった方の参考になればうれしいです。
お知らせ
MicroPythonのプログラミングガイドブックが遂に発売!
「MicroPython」の本が遂にでました。
この一冊で、MicroPythonの言語仕様から、プログラミングの仕方まで”ガッツリ”学べます!
内容は、普段別言語で開発している人や、これからマイコンを始める(工学系の)学生を対象としているので「初心者向け」ではありません。しかし、「自前のライブラリの作成」が目標なので、これ一冊で「ガッツリ」とMicroPythonを学ぶことができます。
全ての内容はここでは紹介しきれないので、詳細は以下のAmazonページをご覧ください。目次だけでも”ガッツリ”なのが確認できると思います。
Pico/Pico W関連のおすすめ本
RaspberryPi Pico / Pico W関連のおすすめ本を独断と偏見で3つ選んでみました。Picoやるならとりあえずこれ買っとけ的な本や、電子工作全般で使える本などを厳選しています。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。
[…] 【RaspberryPi MQTT】Mosquittoのセットアップ方法と使い方【Windows】 […]