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

- (可选)设备端上报当前固件版本到Topic:
/ota/device/inform/${YourProductKey}/${YourDeviceName}
。上报固件版本消息示例:
{ "id": 1, "params": { "version": "1-0-0" } }
- 在物联网平台控制台上,添加升级包、验证升级包和发起批量升级。
具体操作,请参见推送固件到设备端。
- 设备端订阅物联网平台推送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" }
- 设备从升级通知消息中的URL下载升级包,并进行本地升级。
- 上报升级进度到Topic:
/ota/device/progress/${YourProductKey}/${YourDeviceName}
。上报进度消息示例:
{ "id": 1, "params": { "step":"1", "desc":" xxxxxxxx " } }
- 上报升级后的固件版本到Topic:
/ota/device/inform/${YourProductKey}/${YourDeviceName}
。上报固件版本消息示例:
{ "id": 1, "params": { "version": "2-0-0" } }