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

IoT Platform:一方検証方式を使用してデバイスを IoT Platform に接続する

最終更新日:Mar 26, 2025

このトピックでは、GB/T 32960 車載デバイスを IoT Platform に接続し、IoT Platform ゲートウェイを使用して通信を有効にする方法について説明します。この例では、Github オープンソースプロジェクトを使用します。

前提条件

  • 排他的 Enterprise Edition インスタンスが購入済みであること。

    この例では、中国 (上海) リージョンで購入された排他的 Enterprise Edition インスタンスを使用します。詳細については、「Enterprise Edition インスタンスを購入する」をご参照ください。

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

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

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

背景情報

IoT Platform は GB/T 32960 ゲートウェイを提供し、TCP および TLS 経由でデバイスを IoT Platform に接続できます。TCP は強力なセキュリティを提供しないため、使用しないことをお勧めします。TLS 経由でデバイスを IoT Platform に接続する場合、サーバー側の片方向検証、デバイスの Online Certificate Status Protocol (OCSP)、デバイスとサーバー間の双方向セキュア接続、およびその他の機能を有効にできます。

この例では、デバイスで一方検証が実行され、GB/T 32960 ゲートウェイを使用してデバイスが TLS 経由で IoT Platform に接続されます。

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

GB/T 32960 クライアントの実装に使用されるオープンソースコードは、Github で入手できます。詳細については、「Github オープンソースプロジェクト」をご参照ください。

環境を準備する

  • この例では、git コマンドを使用してオープンソースコードをダウンロードし、patch コマンドを使用してパッチを適用します。これらのコマンドをオペレーティングシステムにインストールする必要があり、オペレーティングシステムはこれらのコマンドをサポートしている必要があります。

  • この例では、Java を使用してプログラムを開発します。以下の要件を満たす Java 開発環境を準備します。

オープンソースコードをダウンロードする

この例では、オープンソースのデモを簡略化しています。パッチファイルをダウンロードしてパッチを適用する必要があります。次の手順を実行します。

  1. 次のコマンドを実行して、tsp デモファイルを取得します。

    git clone https://github.com/zhengyishan/tsp.git
    cd tsp
    git checkout 5ef2907b7160f74cf4948b641d75fccd50c5dd6a -b demo_branch
  2. gb32960.patch という名前の パッチファイルをダウンロード し、tsp デモファイルが保存されているディレクトリに保存します。

  3. 次のコマンドを実行して、tsp デモファイルにパッチを適用します。

    patch -p1 < gb32960.patch

ゲートウェイとデバイスを作成する

  1. IoT Platform コンソール にログインします。

  2. IoT Platform コンソールの左上隅で、IoT Platform がアクティブになっているリージョンを選択します。

  3. [概要] ページで、排他的 Enterprise Edition インスタンスのカードをクリックします。

  4. 左側のナビゲーションウィンドウで、[デバイス] > [ゲートウェイ] を選択します。[ゲートウェイ] ページで、[ゲートウェイを追加] をクリックします。

  5. [ゲートウェイを追加] ダイアログボックスで、次の図に示すようにパラメーターを設定します。[サーバー証明書の秘密鍵] パラメーターを server.key ファイルの内容に設定し、[サーバー証明書] パラメーターを server.crt ファイルの内容に設定します。

    パラメーターの詳細については、「ゲートウェイを作成する」をご参照ください。

    image..png

  6. 表示されるメッセージで、[OK] をクリックします。

  7. [ゲートウェイ] ページで、作成したゲートウェイを見つけ、ゲートウェイの [ゲートウェイ URL] 列にあるエンドポイントとポート番号をコピーします。

    image..png

ゲートウェイにデバイスを追加する

  1. 左側のナビゲーションウィンドウで、[デバイス] > [製品] を選択します。作成したゲートウェイを見つけ、[アクション] 列の [デバイスの管理] をクリックします。

  2. [デバイス] ページで、[一括追加] をクリックします。

  3. デバイスの一括追加[デバイスを一括追加] ダイアログボックスで、 をクリックして、CSV 形式のテンプレートをダウンロードします。

    image..png

  4. テンプレートにデバイスの車両識別番号 (VIN) を指定します。例: device10000000001。次に、テンプレートを .CSV ファイルとして保存します。

    重要

    VIN は 17 文字を超えることはできず、文字と数字を含めることができます。

  5. デバイスの一括追加[デバイスを一括追加] ダイアログボックスに移動し、[OK] をクリックして、保存したファイルを IoT Platform コンソールにアップロードし、 をクリックします。

    image..png

    デバイスの ID 情報がインポートされると、IoT Platform はデバイスを作成し、指定した VIN をデバイスの DeviceName として使用します。デバイスは [デバイス] ページに表示されます。

    image..png

デバイス側プログラムを開発する

IoT Platform コンソールでデバイスを作成したら、デバイスを IoT Platform に接続するためのデバイス側プログラムを開発する必要があります。この例では、Java 用 Link SDK を使用して device10000000001 という名前のデバイスを設定し、デバイスを IoT Platform に接続します。

  1. IntelliJ IDEA を開き、取得した tsp デモファイルをインポートします。

  2. root-ca.crt ルート証明書ファイルをプロジェクトの /dyy-gateway-tcu/src/main/resources ディレクトリにインポートします。

  3. プロジェクトの /dyy-gateway-tcu/src/main/java/com/dyy/tsp/gateway/tcu/config/TcuProperties.java ファイルを開き、対応するデバイス接続パラメーターを変更します。

    次のパラメーターの値を実際の値に置き換え、ビジネス要件に基づいて他のパラメーターを設定する必要があります。

        // ゲートウェイのエンドポイント。エンドポイントをゲートウェイのエンドポイントに置き換えます。
        private String gatewayHost = "iot-*******.igw.iothub.aliyuncs.com";
    
        // ゲートウェイのポート番号。ポート番号をゲートウェイのポート番号に置き換えます。
        private Integer gatewayPort = 8999;
    
        // root-ca.crt ルート証明書ファイルが保存されているパス。
        private String CA_PATH = "dyy-gateway-tcu/src/main/resources/root-ca.crt";
    
        // VIN。17 文字を超えることはできません。VIN を車載デバイスの VIN に置き換え、VIN に基づいてデバイスを作成します。
        private String vin = "device10000000001";

    パラメーター

    説明

    gatewayHost

    iot-*******.igw.iothub.aliyuncs.com

    GB/T 32960 ゲートウェイのエンドポイント。

    値は、作成したゲートウェイの [ゲートウェイ URL] 列のドメイン名と同じです。

    gatewayPort

    8999

    ゲートウェイエンドポイントのカスタムポート番号。デフォルト値: 8999

    値は、作成したゲートウェイの [ゲートウェイ URL] 列のポート番号と同じです。

    CA_PATH

    dyy-gateway-tcu/src/main/resources/root-ca.crt

    プロジェクトに root-ca.crt ルート証明書ファイルが保存されている絶対パス。

    vin

    device10000000001

    VIN。値は、追加したゲートウェイデバイスの VIN と同じです。

  4. プロジェクトの /dyy-gateway-tcu/src/main/java/com/dyy/tsp/gateway/tcu/handler/BusinessHandler.java ファイルには、車両ログイン、ハートビート送信、リアルタイムデータ送信、車両登録解除を実装するために使用されるコードが含まれています。ファイルを修正して、より多くの機能を実装できます。

デバイス側プログラムを実行する

  1. IntelliJ IDEA を開き、[ファイル] > [プロジェクト構造] を選択します。

  2. [project SDK 1.8] を選択し、[適用] をクリックします。

    image.png

  3. [OK] をクリックします。

  4. TcuApplication.java ファイルのメインプログラムを実行します。

    デバイスと IoT Platform 間の双方向検証が成功しました。デバイスが接続されています。

    image..png

実行ログを表示する

デバイス操作ログ

デバイス側プログラムが実行されると、プログラムはアップストリームおよびダウンストリームデバイスパケットの詳細を出力します。

  • 次のコードは、デバイスログインリクエストを含むパケットを示しています。パケットの 3 番目と 4 番目のバイト (01 fe) は、デバイスログインリクエストを示しています。

             +-------------------------------------------------+
             |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
    +--------+-------------------------------------------------+----------------+
    |00000000| 23 23 01 fe 31 32 33 34 35 36 37 38 39 30 31 32 |##..device100000|
    |00000010| 33 34 35 36 37 01 00 1e 17 05 06 10 23 19 00 01 |00001.......#...|
    |00000020| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 |1234567890123456|
    |00000030| 37 38 39 30 00 00 ee                            |7890...         |
    +--------+-------------------------------------------------+----------------+
  • 次のコードは、IoT Platform からデバイスへの応答を含むパケットを示しています。パケットの 3 番目と 4 番目のバイト (01 01) は、デバイスが IoT Platform にログインしていることを示しています。

             +-------------------------------------------------+
             |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
    +--------+-------------------------------------------------+----------------+
    |00000000| 23 23 01 01 31 32 33 34 35 36 37 38 39 30 31 32 |##..device100000|
    |00000010| 33 34 35 36 37 01 00 1e 17 05 06 10 23 19 00 01 |00001.......#...|
    |00000020| 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 |1234567890123456|
    |00000030| 37 38 39 30 00 00 11                            |7890...         |
    +--------+-------------------------------------------------+----------------+
  • 次のコードは、ハートビート送信データを含むパケットを示しています。パケットの 3 番目と 4 番目のバイト (07 fe) は、アップストリームハートビートが送信されたことを示しています。

             +-------------------------------------------------+
             |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
    +--------+-------------------------------------------------+----------------+
    |00000000| 23 23 07 01 31 32 33 34 35 36 37 38 39 30 31 32 |##..device100000|
    |00000010| 33 34 35 36 37 01 00 00 36                      |00001...6       |
    +--------+-------------------------------------------------+----------------+
  • 次のコードは、ハートビート送信パケットに対する IoT Platform からの応答を含むパケットを示しています。パケットの 3 番目と 4 番目のバイト (07 01) は、ダウンストリームハートビートを示しています。

             +-------------------------------------------------+
             |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
    +--------+-------------------------------------------------+----------------+
    |00000000| 23 23 07 01 31 32 33 34 35 36 37 38 39 30 31 32 |##..device100000|
    |00000010| 33 34 35 36 37 01 00 00 36                      |00001...6       |
    +--------+-------------------------------------------------+----------------+
  • 次のコードは、デバイスによって送信されたリアルタイムデータを含むパケットを示しています。パケットの 3 番目と 4 番目のバイト (02 fe) は、リアルタイムデータの送信を示しています。

             +-------------------------------------------------+
             |  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f |
    +--------+-------------------------------------------------+----------------+
    |00000000| 23 23 02 fe 31 32 33 34 35 36 37 38 39 30 31 32 |##..device100000|
    |00000010| 33 34 35 36 37 01 00 14 17 05 06 10 23 23 08 01 |00001.......##..|
    |00000020| 01 00 05 00 06 00 04 00 07 01 00 0a df          |.............   |
    +--------+-------------------------------------------------+----------------+

IoT Platform ログ

IoT Platform コンソール で、管理するインスタンスの [インスタンスの詳細] ページに移動します。左側のナビゲーションウィンドウで、[メンテナンス] > [デバイスログ] を選択します。[デバイスログ] ページで、デバイスによって送信されたデータを表示します。

詳細については、「IoT プラットフォームログ」をご参照ください。

image..png