全部產品
Search
文件中心

IoT Platform:配置裝置端OTA升級

更新時間:Jun 30, 2024

阿里雲物聯網平台提供裝置端SDK,裝置使用SDK與平台建立通訊。本文介紹使用平台提供的範例程式fota_posix_demo.c,類比裝置接入和OTA升級。

使用前必讀

本文操作步驟以普通使用者權限為例。如果您在操作過程中涉及到管理員權限才能執行的操作,可嘗試使用sudo命令執行。

前提條件

已建立產品和裝置,並擷取裝置認證(ProductKey、DeviceName和DeviceSecret)。具體操作,請參見建立產品建立裝置

本樣本需要建立一個裝置SDevice1

準備開發環境

  • 本文使用Linux下的裝置端C語言SDK。該SDK的編譯環境推薦使用64位的Ubuntu16.04。

  • SDK的開發編譯環境會用到以下軟體:

    make(4.1及以上版本)、gcc(5.4.0及以上版本)。

    可以使用如下命令列安裝:

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

操作步驟

  1. 擷取裝置端C語言SDKC 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升級的程式碼範例,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. 將步驟2中的已修改完成的LinkSDK檔案,上傳至Linux虛擬機器的開發環境。

  5. 在SDK根目錄/LinkSDK下,執行make命令,完成範例程式的編譯。

    make clean
    make

    產生的範例程式fota-posix-demo存放在./output目錄下。

  6. 執行以下命令,運行範例程式。

    ./output/fota-posix-demo
  7. 查看裝置作業記錄和狀態。

    • 裝置串連資訊和上報版本號碼日誌如下。作業記錄

    • 返回物聯網平台控制台對應執行個體下,在左側導覽列選擇裝置管理 > 裝置,找到目標裝置,查看裝置狀態。裝置狀態顯示為線上,則表示裝置與物聯網平台成功串連。

      裝置線上

後續步驟

推送OTA升級包到裝置端:物聯網平台下發OTA升級任務到裝置,線上裝置擷取升級資訊,進行OTA升級。