ここでは、MQTT.fx を例に取り上げ、サードパーティの MQTT クライアントを使用して IoT Platform に接続する方法を説明します。 MQTT.fx は Java 言語で記述した Eclipse Paho ベースの MQTT クライアントです。 サブスクライブ方式のメッセージングおよびパブリッシュ方式のトピックを介したメッセージングをサポートします。
前提条件
IoT Platform コンソールでプロダクトとデバイスを作成し、デバイスの ProductKey、DeviceName、および DeviceSecret を入手しました。 MQTT.fx の接続パラメーター設定時は、ProductKey、DeviceName、および DeviceSecret の値を使用します。 プロダクトおよびデバイスを作成する際のヘルプは、「プロダクトの作成」、「デバイスの作成」、および「複数デバイスの同時作成」をご参照ください。
手順
- MQTT.fx ソフトウェアをダウンロードしてインストールします。
Windows 版 MQTT.fx のダウンロード : http://mqtt-fx.software.informer.com/download/
Mac 版 MQTT.fx のダウンロード : http://macdownload.informer.com/mqtt-fx/
- MQTT.fx を起動し、[設定] アイコンをクリックします。
- 接続パラメーターを設定します。
現在、TCP および TLS の 2 種類の接続モードがサポートされています。 この 2 つのモードの違いは、クライアント ID と SSL/TLS の設定だけです。
手順は以下のとおりです。
- 基本情報を入力します。 パラメーターの説明は、以下の表をご参照ください。
[全般] のデフォルトのパラメーターを保持、または必要に応じて値を設定することもできます。
パラメーター 説明 Profile Name カスタマイズプロファイル名を入力します。 Profile Type [MQTT ブローカー] を選択します。 Broker Address ${YourProductKey}.iot-as-mqtt.${region}.aliyuncs.com の書式で接続ドメインを入力します。 この書式で、可変の ${region} は、IoT Platform のサービスリージョンのリージョン ID を示しています。 リージョン ID は、「リージョンおよびゾーン」をご参照ください。 コーディング例: alPUPCoxxxx.iot-as-mqtt.cn-shanghai.aliyuncs.com Broker Port 1883 に設定します。 Client ID ${clientId}|securemode=3,signmethod=hmacsha1| の書式で値を入力します。 コーディング例 : 12345|securemode=3,signmethod=hmacsha1|
パラメーターの記述は以下のとおりです。- ${clientId} は、カスタマイズクライアント ID です。 64 文字以内の任意の値にすることができます。 クライアント ID の値はお使いのデバイスの MAC アドレスまたは SN コードを使用するよう推奨します。
- securemode は接続のセキュリティモードです。 TCP モードを使用する場合は、securemode=3 に設定します。 TLS モードを使用する場合は、securemode=2 に設定します。
- signmethod は、使用する署名メソッドです。 IoT Platform では hmacmd5 および hmacsha1 をサポートしています。
注 クライアント ID 情報を入力した後は、[全般」をクリックしないようにしましょう。 - [ユーザー資格情報] をクリックして、[ユーザー名] と [パスワード] を入力します。
パラメーター 説明 User Name デバイス名とプロダクトキーを "&" 文字で直接つないだものを指定する必要があります。 書式 : ${YourDeviceName}&${YourPrductKey}. 例 : device&fOAt5H5TOWF. Password 入力パラメーターの暗号化値を入力する必要があります。 IoT Platform ではパスワードを簡単に生成できるパスワードジェネレータを提供しています。 ご自身で暗号化することもできます。 - パスワードジェネレータのパラメーター :
- productKey : デバイスが属するプロダクトの一意の識別子。 この情報はコンソールのデバイス詳細ページで閲覧できます。
- deviceName : デバイスの名前 この情報はコンソールのデバイス詳細ページで閲覧できます。
- deviceSecret : デバイスシークレット この情報はコンソールのデバイス詳細ページで閲覧できます。
- timestamp : (省略可能) 現在のシステム時間のタイムスタンプ
- clientId : カスタマイズクライアント ID。 クライアント ID の ${clientId} と同じ値にする必要があります。
- method : 署名アルゴリズム。クライアント ID の signmethod と同じ値にする必要があります。
- パスワードを手動で生成します。
- パラメーターをソートして結合します。
clientId、deviceName、productKey、および timestamp の各パラメーターを辞書式順序でソートし結合します。 (タイムスタンプを設定していない場合は、文字列にタイムスタンプを記述しないようにします)。 結合した文字列の例 :
clientId12345deviceNamedeviceproductKeyfOAt5H5TOWF
- 暗号化します。
Client ID で定義されている署名アルゴリズムにより結合文字列を暗号化する秘密鍵として、お使いのデバイスの deviceSecret を使用します。
デバイスの deviceSecret は abc123、暗号化形式は
hmacsha1(abc123,clientId12345deviceNamedeviceproductKeyfOAt5H5TOWF)
とします。
- パラメーターをソートして結合します。
- パスワードジェネレータのパラメーター :
- TLS 接続モードを使用している場合は、SSL/TLS の情報を設定することが必須となります。 接続モードが TCP の場合、SSL/TLS の設定は必須ではありません。
[SSL/TLS を有効にする] チェックボックスをオンにし、プロトコルとして TLSv1 を選択します。
- 必要な情報をすべて入力して、[OK] をクリックします。
- 基本情報を入力します。 パラメーターの説明は、以下の表をご参照ください。
- [接続] をクリックして IoT Platform に接続します。
メッセージ通信テスト
MQTT.fx と IoT Platform が正常に接続されているかどうかテストします。
- MQTT.fx で、[サブスクライブ] をクリックします。
- デバイスのトピックを入力し、[サブスクライブ] をクリックします。
トピックに正常にサブスクライブすると、トピックはトピック一覧に表示されます。
- IoT Platform コンソールの [デバイス詳細] ページの [トピック一覧] で、サブスクライブしたトピックの [パブリッシュ] ボタンをクリックします。
- メッセージの内容を入力し、[OK] をクリックします。
- MQTT.fx に戻り、メッセージが受信されたかどうか確認します。
ログの表示
MQTT.fx で操作ログとエラーログを閲覧するには、[ログ] をクリックします。