MQTT ブローカーを立ち上げたものの、IoT デバイスとのアクセスが上手く行かない場合があります。セキュリティーソフトがインストールされている環境などで、ファイアウォールの設定が正しくなかったり、不十分であったりすることが多く、または Wi-Fi ルーターの設定が原因の場合もあります。
MQTT ブローカーとクライアント間の接続性について試験するには、Android および iOS の端末があれば手軽にできます。IoT デバイスの接続で上手く行かない場合に、スマートフォンやタブレットで試してみることで、問題の切り分けがしやすくなります。
Google の Play ストアおよび Apple の App Store には沢山の MQTT アプリがあります。MQTT ブローカーとの接続性を簡単に確かめる目的であれば、Android なら「Mqtt Client」というアプリが、iOS なら「MQTTool」というアプリが良いと思います。両アプリ共に、「Connect」というボタンを押して、「Connected」という表示になれば接続確認オッケーという感じで簡単です。
Android の場合
Play ストアを開き「Mqtt Client」で検索して、以下のアプリをインストールします(アルファベットの大文字小文字の違いで同名のアプリが複数ありますが、黄色いアイコンの方です)。
アプリを開くと以下の様な画面が表示されます。
上部の4項目は必須で、「Host」には、MQTT ブローカーの IP アドレスを、「Port」にはポート番号を、「Topic to subscribe」と「Topic to publish」については接続性の試験をする分には何でも良いので適当な文字列を入力します。MQTT ブローカーで、ID とパスワードを設定している場合は、「User」と「Pass」の項目も入力しましょう。
入力し終えたら「CONNECT」ボタンを押します。以下の様に、「CONNECT」ボタンが「DISCONNECT」に変わり、ボタンの下のログ表示部に「connected」と表示されれば、MQTT ブローカーとの接続は成功です!!
iOS の場合
App Store を開き「MQTTool」で検索して、以下のアプリをインストールします。
アプリを開くと以下の様な画面が表示されます。
「Host」には、MQTT ブローカーの IP アドレスを入力し、MQTT ブローカーで、ID とパスワードを設定している場合は、「Username」と「Password」も入力しましょう。「Connect」と表示された部分を押したら、以下の様に「Connect」が「Disconnect」に変わり、一番下の「Status:」の表示部分に「Connected」と表示されれば、MQTT ブローカーとの接続は成功です!!
まとめ
Android と iOS 端末を使った、MQTT ブローカーとの接続試験をしてみました。上手く接続できなかった場合は、ブローカー側のファイアウォールを再確認してみたり、Wi-Fi ルーターの設定で「分離機能」が有効になっていたり、ポートマッピングが必要な環境でないかなどを確認してみてください。また、MQTT ブローカーのマシンにおいてセキュリティーソフトがインストールされている場合は、一度それを無効にし、MQTT ブローカーを再起動した上で試してみるのも有効な手段です。