物联网平台OTA固件升级使用说明

[亡魂溺海] 提交于 2020-08-07 15:12:23

概述

OTA(Over-the-Air Technology)即空中下载技术。阿里云物联网平台支持通过OTA方式进行设备固件升级。本文以MQTT协议下的固件升级为例,介绍OTA固件升级流程、数据流转使用的Topic和数据格式。本文使用MQTT.fx客户端模拟设备,进行固件升级流程的操作演示。MQTT.fx接入物联网平台
官方文档:固件升级

OTA固件升级流程

  1. 流程图如下:
    image
  2. 相关Topic如下:
  • 设备端通过以下Topic上报固件版本给物联网平台。
    /ota/device/inform/${YourProductKey}/${YourDeviceName}
  • 设备端订阅以下Topic接收物联网平台的固件升级通知。
    /ota/device/upgrade/${YourProductKey}/${YourDeviceName}
  • 设备端通过以下Topic上报固件升级进度。
    /ota/device/progress/${YourProductKey}/${YourDeviceName}

操作演示

  1. 在物联网平台控制台的“监控运维”—“固件升级”中添加固件
    image
  2. 设备端通过MQTT协议推送当前设备固件版本号到Topic: /ota/device/inform/${YourProductKey}/${YourDeviceName}。消息格式
    image
  3. 设备端订阅Topic: /ota/device/upgrade/${YourProductKey}/${YourDeviceName}。控制台对设备发起固件升级请求后,设备端会通过该Topic收到固件的存储地址URL。
    image
  4. 控制台触发升级操作。
    image
  5. 设备收到物联网平台OTA服务推送的固件的URL地址。
    image
  6. 设备通过HTTPS协议根据URL下载固件。下载固件过程中,设备端向服务端推送升级进度到Topic: /ota/device/progress/${YourProductKey}/${YourDeviceName}。消息格式
    image
  7. 设备端完成固件升级后,推送最新的固件版本信息到Topic:/ota/device/inform/${YourProductKey}/${YourDeviceName}。如果上报的版本与OTA服务要求的版本一致就认为升级成功,反之失败。
    image
  8. 控制台查看升级结果
    image

说明

  • 设备固件版本号只需要在系统启动过程中上报一次即可,不需要周期循环上报。
  • 从物联网平台控制台发起批量升级后,设备升级操作记录状态是待升级。实际升级以物联网平台OTA系统接收到设备上报的升级进度开始。设备升级操作记录状态是升级中。
  • 根据版本号来判断设备端OTA升级是否成功。
  • 设备离线时,不能接收服务端推送的升级消息。通过MQTT协议接入物联网平台的设备再次上线后,物联网平台系统自动检测到设备上线,OTA服务端验证该设备是否需要升级。如果需要升级,再次推送升级消息给设备, 否则,不推送消息。
  • 设备需在固件URL下发后的24小时内下载固件,否则该URL失效。
  • 升级成功的唯一判断标志是设备上报正确的版本号。即使升级进度上报为100%,如果不上报新固件版本号,也视为升级失败。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!