阿里云OTA升级指南

阿里云OTA升级指南

OTA简介

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

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

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

前提概要

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

使用软件

在这里插入图片描述
MQTTX

在这里插入图片描述
阿里云OTA升级

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

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

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

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

在这里插入图片描述

当设备给平台发送相应信息后我们找到设备的详情就可以看到我们设备版本号就有信息了
在这里插入图片描述
这样设备的基础信息功能我们就弄好了,接下来我们就需要操作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"
        }
    }
}

在这里插入图片描述
在这里插入图片描述
这里需要注意的是注意在选择升级包模块的时候,默认的情况只有default,所以我们就需要添加对应的模块名称
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

订阅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
        }
    }
}

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

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

在这里插入图片描述
这样升级包里面的所有数据流都可以一次性下载下来啦

在这里插入图片描述

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升级的完整流程

  • 23
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿里云OTA(Over-The-Air)是一种远程无线升级的解决方案,可以将软件、固件和配置文件等数据通过云端实现远程升级和配置。下面是关于阿里云OTA服务器部署的一些步骤和说明。 首先,在阿里云控制台中创建一个账号,并选择阿里云的云产品OTAS(Over-The-Air upgrading Service)。然后,根据实际需求和项目规模选择合适的实例规格,完成实例购买和初始化设置。 接下来,在阿里云OTA控制台中创建并配置产品和设备。产品即指需要进行OTA升级和配置的设备类型,设备是指产品的具体实例。在创建产品时,需要选择合适的计费方式和其他相关参数。然后,可以配置设备属性和功能定义,并生成设备密钥以保证通信连接的安全性。 然后,在阿里云OTA控制台中上传固件版本和升级文件。固件版本是设备固件的不同版本,可以根据实际需求选择合适的版本号和描述信息。升级文件即需要推送到设备的更新文件,可以是固件、配置文件或其他应用程序。上传文件后,需要填写文件的相关信息,并生成签名以保证文件的完整性和安全性。 最后,配置设备的OTA升级策略和规则。在OTA控制台中,可以设置升级策略,如升级类型(立即升级、延时升级等)、升级条件(设备在线、离线等)、推送规则(按时间、地点等条件)以及升级通知等。根据实际需求,可以为不同的设备配置不同的策略。 总之,阿里云OTA服务器部署需要在控制台中进行创建产品、配置设备、上传固件和文件,最后设置升级策略和规则。通过这一系列的操作,可以实现远程无线升级和配置,提高设备的功能和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值