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升級包到裝置端。
- 裝置端訂閱物聯網平台推送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" } }