OTA(Over-the-Air Technology)即空中下载技术,是物联网平台的一项基础功能。您可使用物联网平台的OTA升级功能,对分布在全球各地的IoT设备进行OTA升级。本文以MQTT协议下的设备为例,介绍设备进行OTA升级的过程 。

背景信息

本示例中,使用阿里云提供的设备端4.x版本C Link SDK,开发设备端接入和OTA升级功能,使设备接入物联网平台,并进行OTA升级。

设备进行OTA升级的流程和数据格式说明,请参见设备端OTA升级。本示例介绍为设备进行整包升级的流程,其中升级包模块使用默认(default)模块,升级包仅含一个文件。

OTA升级流程

流程图如下。

设备OTA升级

流程说明如下表。

序号 说明 相关文档
1 上报当前OTA版本到Topic:/ota/device/inform/${YourProductKey}/${YourDeviceName}
  1. 开发设备A,设置OTA固件版本号为1.0.0,激活设备A上线并上报当前固件版本。
  2. 开发设备B(与设备A属于同一产品),设置OTA固件版本号为2.0.0,激活设备B上线并上报当前OTA版本。

上报版本消息示例:

{
  "id": 1,
  "params": {
    "version": "1.0.0"
  }
}
配置设备端OTA升级
2 在物联网平台为目标产品上传高版本(2.0.0)的OTA升级包,然后向低版本(1.0.0)设备推送升级任务,将设备的固件从低版本(1.0.0)升级到高版本(2.0.0)。 推送OTA升级任务给设备
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后,调用SDK提供的API下载升级包,进行本地升级。
5 上报升级进度到Topic:/ota/device/progress/${YourProductKey}/${YourDeviceName}

上报进度消息示例:

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

上报版本消息示例:

{
  "id": 1,
  "params": {
    "version": "2.0.0"
  }
}