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

IoT Platform:デバイスの OTA アップデートの設定

最終更新日:Jun 22, 2026

Alibaba Cloud IoT Platform は、デバイスとプラットフォーム間の通信を確立するためのデバイス SDK を提供しています。 このトピックでは、fota_posix_demo.c サンプルプログラムを使用して、デバイス接続と OTA アップデートをシミュレートする方法について説明します。

注意事項

このトピックの手順は、一般ユーザーとして実行されます。 操作に管理者権限が必要な場合は、コマンドの前に sudo を付けます。

前提条件

プロダクトとデバイスを作成し、デバイス証明書 (ProductKey、DeviceName、DeviceSecret) を取得します。 詳細については、「プロダクトの作成」および「デバイスの作成」をご参照ください。

SDevice1 という名前のデバイスを作成します。

開発環境の準備

  • デバイス側の C SDK は Linux 上で実行されます。 64 ビットの Ubuntu 16.04 環境でコンパイルしてください。

  • 必要なソフトウェア:

    make 4.1 以降、gcc 5.4.0 以降。

    インストールコマンド:

    sudo apt-get install -y build-essential make gcc

操作手順

  1. C デバイス SDK を取得しますC SDK 4.x

  2. C デバイス SDK パッケージを解凍し、/LinkSDK/demos/fota_posix_demo.c ファイル内のデバイス接続情報を変更します。

    SDevice1 のデバイス情報を使用します。

    char *product_key       = "g18***";
    char *device_name       = "SDevice1";
    char *device_secret     = "cefbebf00***";
    ...
    ...
    char  *url = "iot-***.mqtt.iothub.aliyuncs.com";

    パラメーター

    説明

    url

    iot-***.mqtt.iothub.aliyuncs.com

    デバイス接続エンドポイントです。

    • 新規パブリックインスタンス: [インスタンス詳細] ページで、[開発設定の表示] をクリックします。 エンドポイントは [開発設定] パネルに表示されます。

    • 古いパブリックインスタンス: エンドポイントのフォーマットは${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com です。

    インスタンスエンドポイントの表示

    product_key

    g18***

    デバイス証明書情報です。 詳細については、「デバイス証明書の取得」をご参照ください。

    このサンプルでは、デバイスごとの一意の証明書認証方式を使用します。

    device_name

    SDevice1

    device_secret

    cefbebf00***

    fota_posix_demo.c ファイルは、OTA アップデートのサンプルコードを提供します。 デバイスはアップデート前にバージョンを 1.0.0 として報告します。 本番環境では、デバイスの構成エリアから実際のバージョン番号を取得し、それを報告するロジックを実装する必要があります。 詳細については、「サンプルコードの説明」をご参照ください。

        cur_version = "1.0.0";
        res = aiot_ota_report_version(ota_handle, cur_version);
        if (res < STATE_SUCCESS) {
            printf("aiot_ota_report_version failed: -0x%04X\r\n", -res);
        }
  3. Linux 仮想マシンに必要なソフトウェアをインストールします。

    sudo apt-get install -y build-essential make gcc
  4. 変更済みの LinkSDK パッケージを、ご利用の Linux 開発環境にアップロードします。

  5. SDK のルートディレクトリ /LinkSDK で、make コマンドを実行してサンプルプログラムをビルドします。

    make clean
    make

    サンプルプログラム fota-posix-demo./output ディレクトリに生成されます。

  6. サンプルプログラムを実行します:

    ./output/fota-posix-demo
  7. デバイスのランタイムログとステータスを表示します。

    • 次のログは、デバイスの接続情報と報告されたバージョン番号を示しています。

      :/opt/LinkSDK# ./output/fota-posix-demo
      [1630993401.977][LK-0313] MQTT user calls aiot_mqtt_connect api, connect
      [1630993401.977][LK-0317] SDevice1&g18xxx
      [1630993401.977][LK-0318] 348xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxC
      core_sysdep_network_establish host iot-xxx.mqtt.iothub.aliyuncs.com port 443, type 0
      establish tcp connection with server(host='iot-xxx.mqtt.iothub.aliyuncs.com', port=[443])
      success to establish tcp, fd=3
      local port: 32776
      [1630993401.988][LK-1000] establish mbedtls connection with server(host='iot-xxx mqtt.iothub.aliyuncs.com', port=[443])
      [1630993401.999][LK-1000] success to establish mbedtls connection,  (cost 45247 bytes in total, max used 47983 bytes)
      [1630993401.999][LK-0319] xxx.SDevice1|timestamp=2524608000000,_ss=1,_v=sdk-c-4.1.0,securemode=2,signmethod=hmacsha256,ext=3,_conn-tls_11|
      [1630993402.066][LK-0313] MQTT connect success in 86 ms
      AIOT_MQTTEVT_CONNECT
      [1630993402.066][LK-0309] pub: /ota/device/inform/g18xxx/SDevice1
      [LK-030A] > 7B 22 69 64 22 3A 31 2C  20 22 70 61 72 61 6D 73   {"id":1, "params
      [LK-030A] > 22 3A 7B 22 76 65 72 73  69 6F 6E 22 3A 22 31 2E   ":{"version":"1.
      [LK-030A] > 30 2E 30 22 7D 7D                                    0.0"}}
    • ご利用のインスタンスの IoT Platform コンソールに戻ります。 左側のナビゲーションウィンドウで、デバイス管理 > デバイス に移動します。 対象のデバイスを見つけ、そのステータスを確認します。 ステータスが オンライン の場合、デバイスが IoT Platform に接続されていることを示します。

次のステップ

デバイスへの OTA アップデートパッケージのプッシュ: IoT Platform はアップデートタスクをデバイスに送信します。 オンラインのデバイスはアップデート情報を受信し、OTA アップデートを実行します。