すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:MQTT.fx を使用して MQTT ゲートウェイデバイスを IoT Platform に接続する

最終更新日:Mar 26, 2025

このトピックでは、Windows で MQTT.fx を使用して、シミュレートされた Message Queuing Telemetry Transport(MQTT)ゲートウェイデバイスを IoT Platform に接続する方法について説明します。また、トピックを使用してデバイスデータを送信する方法についても説明します。

前提条件

  • IoT Platform Enterprise Edition インスタンスが購入済みであること。 この例では、中国 (上海) リージョンで Exclusive Enterprise Edition インスタンスが購入されています。

  • MQTT.fx ツールがダウンロードおよびインストールされていること。

    この例では、mqttfx-5.2.0-windows-x64 を使用しています。このサードパーティツールは定期的に更新されません。上記の参照リンクにある Web サイトから最新のツールをダウンロードすることをお勧めします。

  • カスタム証明書が利用可能であること。

    この例では、カスタム証明書には root-ca.crt という名前のルート証明書ファイル、server.key という名前のサーバー側の秘密鍵ファイル、および server.crt という名前のサーバー側の証明書ファイルが含まれています。

    OpenSSL を使用してカスタム証明書を生成できます。証明書の生成方法の詳細については、「カスタム証明書を生成する」をご参照ください。

背景情報

MQTT.fx は、Java で記述された Eclipse Paho ベースの MQTT クライアントです。MQTT.fx は、Windows、macOS、および Linux オペレーティングシステムをサポートしています。MQTT.fx を使用して、デバイスが IoT Platform に接続できるかどうかを確認できます。また、MQTT.fx を使用すると、デバイスはトピックを使用して IoT Platform と通信できます。

MQTT ゲートウェイを使用すると、デバイスは認証に一方検証またはサードパーティ検証を使用できます。デバイスは、カスタム証明書、サーバー側検証、またはカスタムトピックを使用したメッセージングを使用して検証に合格できます。このようにして、デバイスは IoT Platform に接続して通信できます。

MQTT ゲートウェイとデバイス間の検証と通信の詳細については、「MQTT ゲートウェイ」をご参照ください。

MQTT.fx を使用してデバイスを接続する (一方検証)

手順 1: ゲートウェイとデバイスを作成する

  1. MQTT ゲートウェイを作成する: server.key ファイルの内容を [サーバー証明書の秘密キー] パラメーターに指定し、server.crt ファイルの内容を [サーバー証明書] パラメーターに指定します

  2. ゲートウェイページで、作成したゲートウェイを見つけ、[ゲートウェイ URL] 列の値をコピーして保存します。

    image

  3. 複数のデバイスを追加する: この例では、デバイスが 1 つ追加されます。MQTT ユーザー名device_01MQTT パスワードhello123 です。

手順 2: MQTT.fx を使用してデバイスを接続する

  1. MQTT.fx を起動し、メニューバーの [その他] をクリックし、[接続プロファイルの編集] を選択します。

  2. [接続プロファイルの編集] ページで、パラメーターを設定します。

    1. 次の表の基本情報を指定します。表にないパラメーターにはデフォルト値を使用します。

      パラメーター

      説明

      プロファイル名

      カスタム名を入力します。

      プロファイルタイプ

      接続モードを指定します。 MQTT ブローカー を選択します。

      ブローカーアドレス

      MQTT エンドポイントを入力します。これは、ゲートウェイの作成時に取得した [ゲートウェイ URL] パラメーターの値です。

      ブローカーポート

      ポート番号を入力します。デフォルト値は 1883 です。

      クライアント ID

      オプション。デバイスの ID。ID は 1 ~ 64 文字の長さでなければなりません。デバイスの MAC アドレスまたはシリアル番号 (SN) を ID として使用することをお勧めします。

    2. ユーザー資格情報ユーザー名/パスワードを使用ユーザー名パスワード をクリックします。表示されるタブで、 を選択し、 と を入力します。

      この例では、ユーザー名 パラメーターはデバイスの MQTT ユーザー名 に設定され、パスワード パラメーターはデバイスの MQTT パスワード に設定されます。

    3. [TLS/SSL] をクリックし、[SSL/TLS を有効にする] を選択して、[プロトコル] パラメーターを [TLSv1.2] に設定します。

    4. [CA 証明書ファイル] を選択し、root-ca.crt ファイルのパスを選択します。image

  3. 右下隅の [OK] をクリックします。

  4. 接続する をクリックします。

    右側のインジケーターが緑色に変わると、接続が確立されます。IoT Platform コンソールで、管理するインスタンスをクリックして、インスタンスの詳細ページに移動します。 [デバイス] > [デバイス] を選択します。[デバイスリスト] タブで、device_01 のステータスは [オンライン] になります。image

MQTT.fx を使用してデバイスを接続する (サードパーティ検証)

手順 1: デバイスを検証するために Function Compute で関数を作成する

  1. Function Compute コンソール にログインします。左側のナビゲーションウィンドウで、[サービスと関数] をクリックします。

  2. 上部のナビゲーションバーで、リージョンを選択します。[サービス] ページで、[サービスの作成] をクリックします。

  3. [サービスの作成] パネルで、[サービス名] を入力します。例: IoT_Service。次に、[OK] をクリックします。

  4. [関数] ページで、[関数の作成] をクリックします。

  5. [関数の作成] ページで、パラメーターを設定し、[作成] をクリックします。次の図を参照してください。

    image

  6. [関数の詳細] ページで、既存のサンプルコードを次のコードに置き換え、[デプロイ] をクリックします。

    検証関数は、MQTT ユーザー名 パラメーターの値を 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):
            # ビジネス要件に基づいて、MQTT ユーザー名と MQTT パスワードパラメーターの有効性を検証します。
    
            self.deviceName = request.username
    
    
            return json.dumps(self.__dict__)
    
    def handler(event, context):
        request = Request(event)
        return Response().handler(request)

手順 2: ゲートウェイを作成する

  1. MQTT ゲートウェイを作成する: server.key ファイルの内容を [サーバー証明書の秘密キー] パラメーターに指定し、server.crt ファイルの内容を [サーバー証明書] パラメーターに指定します。 デバイス検証済み FC サービス パラメーターには IoT_Service を選択し、デバイス検証済み FC 関数パラメーターには three_part_auth を選択します。

  2. ゲートウェイページで、作成したゲートウェイを見つけ、ゲートウェイ URL 列の URL をコピーして保存します。

    image

手順 3: MQTT.fx を使用してデバイスを接続する

  1. MQTT.fx を起動し、メニューバーの [その他] をクリックし、[接続プロファイルの編集] を選択します。

  2. [接続プロファイルの編集] ページで、パラメーターを設定します。次の表でパラメーターについて説明します。

    1. 次の表の基本情報を指定します。表にないパラメーターにはデフォルト値を使用します。

      パラメーター

      説明

      プロファイル名

      カスタム名を入力します。

      プロファイルタイプ

      接続モードを指定します。 MQTT ブローカー を選択します。

      ブローカーアドレス

      MQTT エンドポイントを入力します。これは、ゲートウェイの作成時に取得した [ゲートウェイ URL] パラメーターの値です。

      ブローカーポート

      ポート番号を入力します。デフォルト値は 1883 です。

      クライアント ID

      オプション。デバイスの ID。ID は 1 ~ 64 文字の長さでなければなりません。デバイスの MAC アドレスまたは SN を ID として使用することをお勧めします。

    2. ユーザー資格情報ユーザー名/パスワードを使用ユーザー名パスワードユーザー名threeParty_device_001 をクリックします。表示されるタブで、 を選択し、 パラメーターと パラメーターを設定します。この例では、 パラメーターは に設定されています。

      説明
      • ユーザー名ユーザー名 パラメーターの値は 4 ~ 32 文字の長さでなければならず、文字、数字、ハイフン (-)、アンダースコア (_)、アットマーク (@)、ピリオド (.)、およびコロン (:) を含めることができます。 パラメーターの値は、プロダクトのすべてのデバイス間で一意である必要があります。

      • パスワード パラメーターの値は 1 ~ 32 文字で、英字、数字、ハイフン(-)、アンダースコア(_)、アットマーク(@)、ピリオド(.)、およびコロン(:)を含めることができます。

    3. [TLS/SSL] をクリックし、[SSL/TLS を有効にする] を選択して、[プロトコル] パラメーターを [TLSv1.2] に設定します。

    4. CA 証明書ファイルroot-ca.crtimage を選択し、 ファイルのパスを選択します。

  3. 右下隅の [OK] をクリックします。

  4. 接続する をクリックします。

    右側のインジケーターが緑色に変わると、接続が確立されます。Function Compute の検証関数は、[deviceName] パラメーターの値として threeParty_device_001 を返します。threeParty_device_001 は、IoT Platform コンソールで自動的に作成されるデバイスの DeviceName として使用されます。 [デバイス] > [デバイス] を選択して、デバイスのステータスを表示できます。この例では、デバイスのステータスは [オンライン] です。image

カスタムトピックを使用してデバイスデータを送信する

  1. MQTT.fx で、[公開] をクリックします。[公開] フィールドに、カスタムトピックのパスを入力します。この例では、パスは /home/garden/fountain です。

  2. テキストエディターで、公開するメッセージを入力し、[公開] をクリックします。

  3. IoT Platform コンソール にログインします。管理するインスタンスを見つけ、[インスタンスの詳細] ページに移動し、[メンテナンス] > [デバイスログ] を選択します。[デバイスログ] ページで、タイプが [デバイスからクラウドへのメッセージ] のログを表示します。詳細については、「IoT プラットフォームログのクエリ」をご参照ください。image