天天看點

物聯網平台OTA固件更新使用說明

概述

OTA(Over-the-Air Technology)即空中下載下傳技術。阿裡雲物聯網平台支援通過OTA方式進行裝置固件更新。本文以MQTT協定下的固件更新為例,介紹OTA固件更新流程、資料流轉使用的Topic和資料格式。本文使用MQTT.fx用戶端模拟裝置,進行固件更新流程的操作示範。

MQTT.fx接入物聯網平台

官方文檔:

固件更新

OTA固件更新流程

  1. 流程圖如下:
    物聯網平台OTA固件更新使用說明
  2. 相關Topic如下:
  • 裝置端通過以下Topic上報固件版本給物聯網平台。

    /ota/device/inform/${YourProductKey}/${YourDeviceName}

  • 裝置端訂閱以下Topic接收物聯網平台的固件更新通知。

    /ota/device/upgrade/${YourProductKey}/${YourDeviceName}

  • 裝置端通過以下Topic上報固件更新進度。

    /ota/device/progress/${YourProductKey}/${YourDeviceName}

操作示範

  1. 在物聯網平台控制台的“監控運維”—“固件更新”中添加強件
    物聯網平台OTA固件更新使用說明
  2. 裝置端通過MQTT協定推送目前裝置固件版本号到Topic: /ota/device/inform/${YourProductKey}/${YourDeviceName}。 消息格式
    物聯網平台OTA固件更新使用說明
  3. 裝置端訂閱Topic: /ota/device/upgrade/${YourProductKey}/${YourDeviceName}。控制台對裝置發起固件更新請求後,裝置端會通過該Topic收到固件的存儲位址URL。
    物聯網平台OTA固件更新使用說明
  4. 控制台觸發更新操作。
    物聯網平台OTA固件更新使用說明
  5. 裝置收到物聯網平台OTA服務推送的固件的URL位址。
    物聯網平台OTA固件更新使用說明
  6. 裝置通過HTTPS協定根據URL下載下傳固件。下載下傳固件過程中,裝置端向服務端推送更新進度到Topic: /ota/device/progress/${YourProductKey}/${YourDeviceName}。
    物聯網平台OTA固件更新使用說明
  7. 裝置端完成固件更新後,推送最新的固件版本資訊到Topic:/ota/device/inform/${YourProductKey}/${YourDeviceName}。如果上報的版本與OTA服務要求的版本一緻就認為更新成功,反之失敗。
    物聯網平台OTA固件更新使用說明
  8. 控制台檢視更新結果
    物聯網平台OTA固件更新使用說明

說明

  • 裝置固件版本号隻需要在系統啟動過程中上報一次即可,不需要周期循環上報。
  • 從物聯網平台控制台發起批量更新後,裝置更新操作記錄狀态是待更新。實際更新以物聯網平台OTA系統接收到裝置上報的更新進度開始。裝置更新操作記錄狀态是更新中。
  • 根據版本号來判斷裝置端OTA更新是否成功。
  • 裝置離線時,不能接收服務端推送的更新消息。通過MQTT協定接入物聯網平台的裝置再次上線後,物聯網平台系統自動檢測到裝置上線,OTA服務端驗證該裝置是否需要更新。如果需要更新,再次推送更新消息給裝置, 否則,不推送消息。
  • 裝置需在固件URL下發後的24小時内下載下傳固件,否則該URL失效。
  • 更新成功的唯一判斷标志是裝置上報正确的版本号。即使更新進度上報為100%,如果不上報新固件版本号,也視為更新失敗。

繼續閱讀