このトピックでは、Windows コンピューター上の MQTT.fx を使用して MQTT クラウドゲートウェイデバイスをシミュレートし、IoT Platform に接続してデータをレポートする方法について説明します。
前提条件
-
Enterprise Edition インスタンスを購入します。本チュートリアルでは、中国 (上海) リージョンの排他的 Enterprise Edition インスタンスを使用します。
-
MQTT.fx ソフトウェアをダウンロードしてインストールします。手順については、「MQTT.fx」をご参照ください。
サードパーティ製ソフトウェアは定期的に更新されるため、ご利用の UI が異なる場合があります。
-
カスタム証明書を生成します。
本チュートリアルでは、ルート証明書 (
root-ca.crt)、サーバー側秘密鍵 (server.key)、およびサーバー証明書 (server.crt) を含むカスタム証明書が必要です。OpenSSL を使用して証明書を生成できます。詳細については、「カスタム証明書の生成」をご参照ください。
背景情報
MQTT.fx は Eclipse Paho に基づいて Java で記述された MQTT クライアントです。Windows、macOS、Linux をサポートしています。MQTT.fx を使用して、デバイスが IoT Platform に接続でき、トピック経由で通信できることを検証できます。
デバイスは、カスタム証明書、サーバー側認証、カスタムトピックなどの機能を使用して、IoT Platform に接続および通信できます。
MQTT クラウドゲートウェイのデバイス認証および通信に関する詳細については、「MQTT クラウドゲートウェイの概要」をご参照ください。
MQTT.fx を使用したデバイス接続 (片方向認証)
ステップ 1:クラウドゲートウェイおよびデバイスの作成
-
MQTT クラウドゲートウェイを作成します。ゲートウェイを設定する際、サーバー側秘密鍵 パラメーターには
server.keyファイルの内容を、サーバー証明書 パラメーターには server.crt ファイルの内容を使用します。その他のパラメーターは次のように設定します。プロトコル には MQTT を選択し、カスタムポート番号 はデフォルト値の 1883 のままとし、認証タイプ には 片方向認証 を選択し、データ解析を有効化 には いいえ を選択し、デバイス X.509 証明書認証を有効化 には いいえ を選択し、OCSP を有効化 には 無効 を選択します。
-
クラウドゲートウェイリストで、ゲートウェイ URL をコピーして保存します。
クラウドゲートウェイリストには、ゲートウェイ名、プロトコル、ゲートウェイ URL、ステータスなどの情報が表示されます。
-
デバイスをバッチで追加します。本チュートリアルでは、デバイスを 1 台追加します。MQTT ユーザー名 は
device_01、MQTT パスワード はhello123に設定します。
ステップ 2:MQTT.fx 接続の設定
-
MQTT.fx ソフトウェアを開きます。メニューバーで、Extras をクリックし、Edit Connection Profiles を選択します。
-
Edit Connection Profiles ページで、次のパラメーターを設定します。
-
基本情報を設定します。その他のパラメーターはデフォルト値を使用します。
パラメーター
説明
プロファイル名
任意の名前を入力します。
プロファイルタイプ
接続タイプとして MQTT Broker を選択します。
ブローカーアドレス
保存した ゲートウェイ URL のドメイン名を入力します。
ブローカーポート
カスタムポート番号を設定します。デフォルトは
1883です。クライアント ID
省略可能です。最大 64 文字の任意のクライアント ID を指定できます。識別しやすくするため、デバイスの MAC アドレスまたはシリアル番号 (SN) を使用することを推奨します。
-
User Credentials をクリックし、Use Username/Password チェックボックスをオンにして、User Name および Password を設定します。
User Name および Password は、追加したデバイスの MQTT ユーザー名 および MQTT パスワード と一致させる必要があります。
-
SSL/TLS をクリックし、Enable SSL/TLS チェックボックスをオンにして、Protocol を TLSv1.2 に設定します。
-
CA 証明書ファイル を選択し、
root-ca.crtファイルのパスを指定します。
-
-
パラメーターを設定したら、OK をクリックします。
-
Connect をクリックします。
右側の緑色のランプが点灯している場合は、接続に成功しています。IoT Platform コンソール で、ご利用のインスタンスの デバイス > デバイス ページに移動します。デバイス
device_01のステータスは オンライン になります。
MQTT.fx を使用したデバイス接続 (第三者認証)
ステップ 1:デバイス認証関数の作成
上部のナビゲーションバーでリージョンを選択します。サービス ページで、サービスの作成 をクリックします。
サービスの作成 パネルで、サービス名 を入力します。例:IoT_Service。その後、OK をクリックします。
関数 ページで、関数の作成 をクリックします。
関数の作成 ページで、パラメーターを設定し、次の図に示すように 作成 をクリックします。

-
関数の詳細 ページで、サンプルコードを次のコードに置き換え、Deploy Code をクリックします。
認証関数は、UserName を deviceName として返します。
# -*- coding: utf-8 -*- import logging import json import time import enum import random import string class Request: def __init__(self, json_str): self.clientId = None self.username = None self.password = None self.certificateCommonName = None for key, value in json.loads(json_str).items(): setattr(self, key, value) class Response: def __init__(self): self.deviceName = None self.result = 'true' self.message = 'success' def handler(self, request): # Verify the validity of the username and password based on your business requirements. self.deviceName = request.username return json.dumps(self.__dict__) def handler(event, context): request = Request(event) return Response().handler(request)
ステップ 2:MQTT クラウドゲートウェイの作成
-
MQTT クラウドゲートウェイを作成します。ゲートウェイを設定する際、サーバー側秘密鍵 パラメーターには
server.keyファイルの内容を、サーバー証明書 パラメーターには server.crt ファイルの内容を使用します。デバイス認証用の Function Compute (FC) サービスおよび関数には、作成した IoT_Service および three_part_auth を選択します。その他のパラメーターは次のように設定します。プロトコル には MQTT を設定し、カスタムポート番号 はデフォルト値の 1883 のままとし、認証タイプ には 第三者認証 を設定し、データ解析を有効化 には いいえ を設定し、デバイス X.509 証明書認証を有効化 には いいえ を設定し、OCSP を有効化 には 無効 を設定し、権限付与 には AliyunIOTAccessingFCRole を設定します。
-
クラウドゲートウェイリストで、ゲートウェイ URL をコピーして保存します。
クラウドゲートウェイリストには、ゲートウェイ名、プロトコル、ゲートウェイ URL、ステータスなどの情報が表示されます。
ステップ 3:MQTT.fx 接続の設定
-
MQTT.fx ソフトウェアを開きます。メニューバーで、Extras をクリックし、Edit Connection Profiles を選択します。
-
Edit Connection Profiles ページで、次のパラメーターを設定します。
-
基本情報を設定します。その他のパラメーターはデフォルト値を使用します。
パラメーター
説明
プロファイル名
任意の名前を入力します。
プロファイルタイプ
接続タイプとして MQTT Broker を選択します。
ブローカーアドレス
保存した ゲートウェイ URL のドメイン名を入力します。
ブローカーポート
カスタムポート番号を設定します。デフォルトは
1883です。クライアント ID
省略可能です。最大 64 文字の任意のクライアント ID を指定できます。識別しやすくするため、デバイスの MAC アドレスまたはシリアル番号 (SN) を使用することを推奨します。
-
User Credentials をクリックし、Use Username/Password チェックボックスをオンにして、User Name (例:
threeParty_device_001) および Password を設定します。説明-
User Name:4~32 文字で、英数字、ハイフン (-)、アンダースコア (_)、アットマーク (@)、ピリオド (.)、コロン (:) を使用できます。プロダクト内で一意である必要があります。
-
Password:1~32 文字で、英数字、ハイフン (-)、アンダースコア (_)、アットマーク (@)、ピリオド (.)、コロン (:) を使用できます。
-
-
SSL/TLS をクリックし、Enable SSL/TLS チェックボックスをオンにして、Protocol を TLSv1.2 に設定します。
-
CA 証明書ファイル を選択し、
root-ca.crtファイルのパスを指定します。
-
-
パラメーターを設定したら、OK をクリックします。
-
Connect をクリックします。
右側の緑色のランプが点灯している場合は、接続に成功しています。IoT Platform は、FC 認証関数が返す deviceName (
threeParty_device_001) をデバイスの DeviceName として使用します。その後、プラットフォームが自動的にデバイスを作成し、IoT Platform コンソール の デバイス > デバイス ページに オンライン ステータスで表示されます。
カスタムトピックを使用したデータのレポート
-
ペイロードエディターでメッセージ本文を入力し、Publish をクリックします。
-
IoT Platform コンソール にログインします。ご利用のインスタンスで、メンテナンス > Log Service ページに移動し、デバイスからクラウドへのメッセージ ログを確認します。詳細については、「クラウド側ログの照会」をご参照ください。表示 をクリックするとメッセージの詳細が開き、トピック、タイムスタンプ、ペイロードが表示されます。