阿里云OTA升级指南

这篇具有很好参考价值的文章主要介绍了阿里云OTA升级指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

阿里云OTA升级指南

OTA简介

OTA是Over-The-Air的缩写,中文意为“通过空中传输”。在计算机和通信技术领域中,OTA指的是通过无线网络等方式将软件、固件、配置文件等更新、下载、安装到设备上的一种技术手段。它可以实现远程升级和管理设备的软件和配置,无需物理连接设备,提高了设备管理的效率和灵活性。

OTA技术的应用非常广泛,在智能手机、智能电视、智能家居、智能汽车等领域都有广泛应用。通过OTA技术,厂商可以远程修复设备的软件漏洞或错误,升级设备的功能和性能,提供新的服务和功能,以及进行设备配置和管理等操作。同时,用户也可以通过OTA技术方便地更新设备的软件版本,享受到更好的用户体验。

总之,OTA技术通过无线传输方式实现设备软件和配置的远程升级和管理,为设备厂商和用户提供了方便和灵活性,有助于提升设备的功能和性能。

前提概要

本次操作流程目的是想借助MQTT协议使用ESP32给设备进行OTA升级,操作使用上位机软件进行测试,之后再移植到ESP32程序中去

使用软件

阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot
MQTTX

阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot
阿里云OTA升级

OTA升级-设备基础信息操作

这里需要注意的是每个需要升级的设备必要反馈给平台该设备当前的软件版本号,否则在后期升级的时候会导致选中设备

设备端通过MQTT协议推送当前设备OTA模块版本号到Topic: /ota/device/inform/{YourProductKey}/{YourDeviceName}。消息格式如下:

{
    "id": "123",
    "params": {
        "version": "1.0.1",
        "module": "MCU"
    }
}
参数 类型 说明
id String 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
version String OTA模块版本。
module String OTA模块名。说明上报默认(default)模块的版本号时,可以不上报module参数。设备的默认(default)模块的版本号代表整个设备的固件版本号。

阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot

当设备给平台发送相应信息后我们找到设备的详情就可以看到我们设备版本号就有信息了
阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot
这样设备的基础信息功能我们就弄好了,接下来我们就需要操作OTA的部分了

OTA升级-升级包操作

在添加升级包之前,我们还需要订阅升级的Topic
设备端订阅Topic:/ota/device/upgrade/{YourProductKey}/{YourDeviceName}。物联网平台对设备发起OTA升级请求后,设备端会通过该Topic收到升级包的存储地址URL。

{
    "id": "123",
    "code": 200,
    "data":{
        "size":432945,
        "digestsign":"A4WOP***SYHJ6DDDJD9***",
        "version":"2.0.0",
        "isDiff":1,
        "signMethod":"MD5",
        "dProtocol":"mqtt",
        "streamId":1397345,
        "streamFileId":1,
        "md5":"93230c3bde***",
        "sign":"93230c3bde42***",
        "module":"MCU",
        "extData":{
            "key1":"value1",
            "key2":"value2"
        }
    }
}

阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot
阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot
这里需要注意的是注意在选择升级包模块的时候,默认的情况只有default,所以我们就需要添加对应的模块名称
阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot

订阅信息获取升级包信息
/sys/{productKey}/{deviceName}/thing/ota/firmware/get_reply

阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot
阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot

订阅MQTT分片下载请求
请求Topic:/sys/{productKey}/{deviceName}/thing/file/download
响应Topic:/sys/{productKey}/{deviceName}/thing/file/download_reply

{
    "id": "123456",
    "version": "1.0",
    "params": {
        "fileToken":"1bb8***",
        "fileInfo":{
            "streamId":1234565,
            "fileId":1
        },
        "fileBlock":{
            "size":256,
            "offset":2
        }
    }
}

这里的一些数据信息根据之前云平台下发的包信息进行更改

参数 类型 说明
id String 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
version String 协议版本,固定为1.0。
params Object 请求参数。
fileToken String 文件的唯一标识Token,非必填参数。支持数字、英文字母、下划线(_)和英文句号(.),不超过16个字符。使用说明:若传入该参数,物联网平台响应设备请求时,会返回该参数,便于您在设备端多文件下载场景下,从响应消息中确认下载的对应文件。若确认设备端在下载文件的请求和响应周期内,不需要对其他文件发起下载请求,可不设置该参数。
fileInfo Object OTA升级包文件信息。
streamId Long 通过MQTT协议下载OTA升级包时的唯一标识。
fileId Integer 单个升级包文件的唯一标识。
fileBlock Object 文件分片信息。
size Integer 请求下载的文件分片大小,单位字节,取值范围为256131072。若为最后一个文件分片,取值范围为1131072。
offset Integer 文件分片对应字节的起始地址。取值范围为0~16777216。

阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot
这样升级包里面的所有数据流都可以一次性下载下来啦

阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot

OTA升级-上报升级进度

建议设置设备端上报进度频率为3秒内最多一次。若设备上报进度频繁,在物联网平台控制台的OTA升级包详情的批次详情中,可能无法查看到上报的全部进度。

  • 设备发布消息到Topic:/ota/device/progress/ Y o u r P r o d u c t K e y / {YourProductKey}/ YourProductKey/{YourDeviceName}
{
    "id": "123",
    "params": {
        "step": "-1",
        "desc": "OTA升级失败,请求不到升级包信息。",
        "module": "MCU"
    }
}

阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot
阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot
如果要显示升级成功,就需要上报当前固件的软件版本

阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot
阿里云OTA升级指南,学习文件记录,基础学习,阿里云,云计算,iot
按照上述操作完成了OTA升级的完整流程文章来源地址https://www.toymoban.com/news/detail-835839.html

到了这里,关于阿里云OTA升级指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker部署的gitlab升级指南(15.11.X容器里升级PostgreSQL到13.8)

    一、确定当前版本 二、备份数据,防止升级发生意外 三、确定升级路线 docker环境部署gitlab的升级很简单,直接基于高版本的镜像运行容器即可; 需要注意的是gitlab的升级不能跨大版本升级,详见升级路径: https://docs.gitlab.com/ee/update/index.html#upgrade-paths 可在此链接查看gitla

    2024年01月16日
    浏览(40)
  • JDK 8 升级 JDK 17 全流程教学指南

    JDK 8 升级 JDK 17 首先已有项目升级是会经历一个较长的调试和自测过程来保证允许和兼容没有问题。先说几个重要的点 遇到问题别放弃 仔细阅读报错,精确到每个单词每一行,不是自己项目的代码也要点进去看看源码到底是为啥报错 明确你项目引入的包,升级到 JDK17 后对应

    2024年02月13日
    浏览(38)
  • Spring Boot 2.x 到 3.2 的全面升级指南

    Spring Framework 是一种流行的开源企业级框架,用于创建在 Java Virtual Machine (JVM) 上运行的独立、生产级应用程序。而Spring Boot 是一个工具,可以让使用 Spring 框架更快、更轻松地开发 Web 应用程序和微服务。随着 Spring Boot 的不断发展,开发人员必须跟上最新的升级和变化。 最近

    2024年02月04日
    浏览(45)
  • Vue2与Vue3的区别与升级指南

    个人笔记不喜勿喷,如有错误感谢评论指正。 一、下面是Vue 2和Vue 3之间的一些主要区别: 1. 性能优化: Vue 3对虚拟DOM进行了重写,提高了渲染性能。它引入了静态树提升和新的编译器,减少了包的大小。 2. 响应式系统的重写: Vue 3中的响应式系统使用了Proxy代理,而不再使

    2024年02月15日
    浏览(36)
  • uni-app 项目支持 vue 3.0 介绍及升级指南

    HBuilderX 3.3.0+  更新uni-app编译器,支持基于 Vite 编译到小程序平台。 至此, uni-app 在 App/H5/小程序 全平台支持 Vue 3.0 开发,且全平台支持 Vite 编译器,下载 HBuilderX 3.3.0+ 体验。 Tips: H5/PC Web 平台:hello-uniapp H5 端已迁移 vue3,点击体验 除支持  vue3  语法特性外, uni-app  特有

    2024年02月10日
    浏览(41)
  • Ubuntu 20.04 升级Ubuntu 22.04 及更换国内源指南

    打开虚拟机,发现我的ubuntu版本还停留在20.04上,主要平时都用的实体机,树莓派以及Centos系统居多,虚拟机也不是经常使用,今天闲来无事就把它升级到22.04吧,升级到Ubuntu 22.04.1 LTS版本后它可以提供免费安全和维护更新至 2027年4月。 我们点开左下角的应用中心,启动紫色

    2024年01月24日
    浏览(51)
  • 升级篇:超详细ChatGPT(GPT 4.0)论文润色指南+最全提示词/咒语

    在这篇文章中,我将分享如何利用ChatGPT 4.0辅助论文写作的技巧,并根据网上的资料和最新的研究补充更多好用的咒语技巧。 本篇文章持续更新,祝大家写作顺利,如果对你有帮助,欢迎转发、推荐、分享! 温馨提示: 如果严肃对待这件事,请用GPT-4,别用GPT-3.5! 咒语心法

    2023年04月09日
    浏览(69)
  • SpringBoot2.7升级项目到Springboot3.1踩坑指南(jdk17/jdk21)

    由于SpringBoot3.x全面拥抱JDK17,兼容jdk21,jdk17乃是大势所趋。这里是从SpringBoot2.7--SpringBoot3.1踩坑指南。 提前阅读:jdk8升级JDK17避坑指南(适用于SpringBoot2.3—SpringBoot2.7升级) 国内顶级开源项目升级到springBoot3情况,可以作为升级SpringBoot3的风向标。仅对比国内规模使用,落地过

    2024年03月09日
    浏览(58)
  • Kubernetes 的包管理器工具—— Helm 使用指南:打包、安装和升级 Kubernetes 中的应用程序

    作者:禅与计算机程序设计艺术 Helm 是 Kubernetes 的包管理器工具。Helm 可以帮助用户管理复杂的 Kubernetes 应用,通过 Charts 来打包、安装和升级 Kubernetes 中的应用程序。 1.1.1 Helm 安装 Helm 的下载及安装方式可以查看 官方文档。 1.1.2 Helm 操作命令 Helm 提供了多个子命令用于管理

    2024年02月09日
    浏览(37)
  • 【技术指南】升级你的pnpm到最新版本,享受Node.js v16.14带来的强大功能!

    引言: 在现代软件开发中,包管理工具是必不可少的。而pnpm作为一款功能强大的包管理工具,为我们提供了高效、便捷的开发体验。然而,随着Node.js的不断更新,pnpm也需要进行相应的升级以适应新的版本。本文将详细介绍如何将你的pnpm升级到最新版本,并享受Node.js v16.1

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包