OTA(Over-the-Air Technology)即空中下载技术,是物联网平台的一项基础功能。通过OTA方式,可以对分布在全球各地的IoT设备进行OTA升级。本文以MQTT协议下的设备固件整包升级为例,介绍OTA升级操作流程,并提供设备端OTA升级配置示例代码。

OTA升级流程

本示例中,OTA升级流程如下图所示。

流程
说明 本示例为设备固件整包升级,升级包模块使用默认(default)模块,因此消息中不含moduleisDiff参数。流程和参数说明,请参见设备端OTA升级
  1. (可选)设备端上报当前固件版本到Topic:/ota/device/inform/${YourProductKey}/${YourDeviceName}

    上报固件版本消息示例:

    {
      "id": 1,
      "params": {
        "version": "1-0-0"
      }
    }
  2. 在物联网平台控制台上,添加升级包、验证升级包和发起批量升级。

    具体操作,请参见推送固件到设备端

  3. 设备端订阅物联网平台推送OTA升级通知消息的Topic:/ota/device/upgrade/${YourProductKey}/${YourDeviceName}

    升级通知消息示例:

    {
        "code":"1000",
        "data":{
            "size":11472299,
            "sign":"83254ac96e141affb8aa42cbfec9****",
            "version":"2-0-0",
            "url":"https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/dbab6f742ae389b40db88fc2500b****/ck0q5lyav00003i7hezxe****.zip?Expires=1568951190&OSSAccessKeyId=cS8uRRy54Rsz****&Signature=nk0sogaxtyp7dYvKZnjNQ%2BZ8Q9****",
            "signMethod":"Md5",
            "md5":"83254ac96e141affb8aa42cbfec9****"
        },
        "id":1568864790381,
        "message":"success"
    }
  4. 设备从升级通知消息中的URL下载升级包,并进行本地升级。
  5. 上报升级进度到Topic:/ota/device/progress/${YourProductKey}/${YourDeviceName}

    上报进度消息示例:

    {
      "id": 1,
      "params": {
        "step":"1", 
        "desc":" xxxxxxxx "
      }   
    }
  6. 上报升级后的固件版本到Topic:/ota/device/inform/${YourProductKey}/${YourDeviceName}

    上报固件版本消息示例:

    {
      "id": 1,
      "params": {
        "version": "2-0-0"
      }
    }

操作文档

配置设备端OTA固件升级

推送固件到设备端