MQTT Explorer で AWS IoT Core につなぐときの設定メモです。
ちょっと自分的にハマりポイントがあったのでメモしておきます。
MQTT Explorer
MQTT Explorer はオープンソースの MQTT プロトコル検証ツールです。私も色々なシーンで使っています。
基本接続設定
AWS IoT リソースの作成 – AWS IoT Core このあたりの記事を参考に、AWS IoT Core につながるモノのオブジェクトやポリシーを作成します。
MQTT Explorer で右上の+ボタンをクリックして新しい接続を作成します。
- Name
- AWS IoT Core
- Validate certificate
- ON
- Encryption(tsl)
- ON
- Protocol
- mqtt://
- Host
- 今回つなぐ AWS IoT Core のエンドポイント
- Port
- 8883
- Username
- なし
- Password
- なし
設定できたら ADVANCED ボタンをクリックします。
ADVANCED 設定
初期自動時の Subscription トピックを調整します。
自動で作られるものは #
と $SYS/#
があります。MQTT Client ID はそのままです。
$SYS/#
の横のゴミ箱ボタンをクリックします。
このように #
だけ残ります。ここがポイントです。$SYS/#
があると、永遠に AWS IoT Core に弾かれて切断し続ける挙動になります。おそらく制約があると思われます。
設定できたら CERTIFICATES ボタンをクリックします。
CERTIFICATES 設定
証明書ファイルを設定します。
- SERVER CERTIFICATE(CA)
- AWS IoT Core のデバイス証明書作成時にダウンロードした末尾が AmazonRootCA1.pem ファイルを指定
- CLIENT CERTIFICATE
- AWS IoT Core のデバイス証明書作成時にダウンロードした末尾が -certificate.pem.crt ファイルを指定
- CLIENT KEY
- AWS IoT Core のデバイス証明書作成時にダウンロードした末尾が -private.pem.key ファイルを指定
設定できたら BACK ボタンをクリックします。
ADVANCED 設定に戻るので BACK ボタンをクリックします。
最初の設定画面に戻ったら CONNECT ボタンをクリックします。
設定が合っていれば無事接続がされます。
ためしに Publish してみます。
無事今回の Publish データが表示されます。
大事なのは Subscription のところで自動設定されるものを適切に直すところですね。証明書など他の設定は、設定名を照らし合わせながらやればうまく行きました。