ESA2GJK1DH1K升级篇: 阿里云物联网平台 OTA: 关于阿里云物联网平台 OTA 的升级流程

前言

  鉴于有些用户直接想使用现成的物联网平台实现 OTA 远程升级

  我就写一写这系列的文章

  注意:首先大家必须把我自建服务器是如何实现的看明白!

  我看了下阿里云提供的,实际上流程和咱自建实现的差别不大

  https://help.aliyun.com/document_detail/85700.html?spm=a2c4g.11186623.6.699.6292740d5hzKl6

  首先控制升级获取当前程序的版本号等走的还是MQTT

  设备端首先通过MQTT获取云端的版本信息,还有程序固件的https链接

  然后设备根据https链接访问下载固件,然后写入Flash以后就升级完了....

现在说一下具体流程

  一,请求固件:

  首先阿里云OTA规定

  你MQTT请求固件的主题是

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

  消息格式   

{
  "id": "123",
  "params": {
    "version": "1.0.1"
  }
}

  二,阿里云回复:

    回复的MQTT主题: /ota/device/upgrade/${YourProductKey}/${YourDeviceName}

    回复的消息格式:

{
  "code": "1000",
  "data": {
    "size": 432945,
    "version": "2.0.0",
    "url": "https://iotx-ota-pre.oss-cn-shanghai.aliyuncs.com/nopoll_0.4.4.tar.gz?Expires=1502955804&OSSAccessKeyId=XXXXXXXXXXXXXXXXXXXX&Signature=XfgJu7P6DWWejstKJgXJEH0qAKU%3D&security-token=CAISuQJ1q6Ft5B2yfSjIpK6MGsyN1Jx5jo6mVnfBglIPTvlvt5D50Tz2IHtIf3NpAusdsv03nWxT7v4flqFyTINVAEvYZJOPKGrGR0DzDbDasumZsJbo4f%2FMQBqEaXPS2MvVfJ%2BzLrf0ceusbFbpjzJ6xaCAGxypQ12iN%2B%2Fr6%2F5gdc9FcQSkL0B8ZrFsKxBltdUROFbIKP%2BpKWSKuGfLC1dysQcO1wEP4K%2BkkMqH8Uic3h%2Boy%2BgJt8H2PpHhd9NhXuV2WMzn2%2FdtJOiTknxR7ARasaBqhelc4zqA%2FPPlWgAKvkXba7aIoo01fV4jN5JXQfAU8KLO8tRjofHWmojNzBJAAPpYSSy3Rvr7m5efQrrybY1lLO6iZy%2BVio2VSZDxshI5Z3McKARWct06MWV9ABA2TTXXOi40BOxuq%2B3JGoABXC54TOlo7%2F1wTLTsCUqzzeIiXVOK8CfNOkfTucMGHkeYeCdFkm%2FkADhXAnrnGf5a4FbmKMQph2cKsr8y8UfWLC6IzvJsClXTnbJBMeuWIqo5zIynS1pm7gf%2F9N3hVc6%2BEeIk0xfl2tycsUpbL2FoaGk6BAF8hWSWYUXsv59d5Uk%3D",
    "md5": "93230c3bde425a9d7984a594ac55ea1e",
    "sign": "93230c3bde425a9d7984a594ac55ea1e",
    "signMethod": "Md5"
  },
  "id": "1507707025",
  "message": "success"
}
 
  然后单片机提取 url 然后访问,即可获取到固件了  实际上我做的老版本的使用LUA升级Wi-Fi模块和GPRS模块就是这种流程,  单片机升级取消了这个获取url的流程,因为感觉繁琐所以去掉了  不过我的APP升级还是这种流程     https://www.cnblogs.com/yangfengwu/p/11273734.html

    

  三,升级过程中设备上报:

    MQTT发布的主题:/ota/device/progress/${YourProductKey}/${YourDeviceName}

    消息格式:

    

{
  "id": "123",
  "params": {
    "step": "-1",
    "desc": "固件升级失败,请求不到固件信息。"
  }
}

  四,升级完:

    阿里云规定升级完以后,和一开始一样上报一下版本

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

    

{
  "id": "123",
  "params": {
    "version": "1.0.1"
  }
}

不过现在的版本 应该是上报的升级以后的版本号

不过感觉阿里应该再优化的地方-1

  对于阿里提供的流程而言我感觉挺亲切,因为我的老版的升级教程就是这样子的流程

  不过呢有个地方感觉阿里应该再优化下

  阿里的固件的校验方式

  

  

  我感觉这样有点不好.

  其实应该可以让用户自定义个参数

  因为很多用户已经实现了升级,而且都有自己的程序文件校验方式.

  这样就给很多用户增加了工作量....

不过感觉阿里应该再优化的地方-2

  应该很多单片机的升级都是使用的 乒乓升级

  就是说每次升级的时候两块内存区来回的切换升级

  这就需要两份文件.

  列如我的升级篇使用的单片机分配情况

  

  而阿里提供的是每次访问的时候只能是一套......

  那我们只能把原来的乒乓升级改一下

  

  用其中一块区域专门接收程序文件,然后对程序文件做校验

  保证了程序文件确实没有问题以后

  再把文件拷贝过去运行......

  这样有个问题是,,,万一写的程序有问题,就不能实现程序回滚了

  

  感觉最好可以上传两套程序文件

  然后自定义一个参数 可以访问哪一套

  

原文地址:https://www.cnblogs.com/yangfengwu/p/12079110.html

时间: 2024-07-29 20:57:27

ESA2GJK1DH1K升级篇: 阿里云物联网平台 OTA: 关于阿里云物联网平台 OTA 的升级流程的相关文章

ESA2GJK1DH1K基础篇: 阿里云物联网平台: 云平台显示单片机采集的温湿度数据,控制设备继电器(基于ESP8266,AT指令TCP_MQTT通信)(V1.0)

实现的功能 把单片机采集的温湿度显示在云平台 实现步骤1 1.在云平台再弄一个自定义功能 实现步骤2 我就是修改的这一节的单片机程序 https://www.cnblogs.com/yangfengwu/p/12539421.html 1.为了方便大家使用,我修改成了下面 用户直接根据自己的修改就可以 2.我设置的发布主题 3.我设置的订阅主题 下载单片机程序然后测试 一,调整波动开关位置,STM32和Wi-Fi通信 二,短接STM32的PB2和Wi-Fi模块的RST引脚(为了做项目稳定可靠,请

ESA2GJK1DH1K基础篇: 关于各大物联网平台的MQTT通信

前言 这节稍微唠叨点 其实我很长时间都没有出怎么连接现成的物联网平台的教程, 一直写的是教给大家自己搭建服务器,主要原因是因为我感觉连接现有的学不到东西. 没有啥技术含量! 现在出这种教程,是因为发现确实很多人喜欢用. 但是大家看看吧!连接现有的十分的简单 其实我不明白的是:网上到处都是这种的教程!!!!而且价格定的高,就好像多么的高大上一样...... 唠叨 说一下,大家连接我的MQTT服务器的时候需要 ClientID:  自己随意设置(我的程序是如果用的是Wi-Fi:则使用其MAC地址;如

国内物联网平台初探(五):机智云IoT物联网云服务平台及智能硬件自助开发平台

国内物联网平台初探(五)——机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力. 机智云平台为开发者提供了自助式智能硬件开发工具与开放的云端服务.通过傻瓜化的工具.不断增强的SDK与API服务能力最大限度降低了物联网硬件开发的技术门槛,降低研发成本,提升开发者的产品投产速度,帮助开发者进行硬件智能化升级,更好的连接.服

国内物联网平台初探(五) ——机智云IoT物联网云服务平台及智能硬件自助开发平台

平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力. 机智云平台为开发者提供了自助式智能硬件开发工具与开放的云端服务.通过傻瓜化的工具.不断增强的SDK与API服务能力最大限度降低了物联网硬件开发的技术门槛,降低研发成本,提升开发者的产品投产速度,帮助开发者进行硬件智能化升级,更好的连接.服务最终消费者. 产品功能 IoT PaaS服务 为IoT开发者提供智能设备自助开发工具

阿里云携手AppCan推“聚无线”移动开发平台

互联网行业的O2O大战愈演愈烈,巨头纷纷加紧布局,从地图.团购.音乐.社交媒体.生活网站到移动端支付,线下商机与互联网的结合越来越紧密,大移动生态圈的雏形已窥见一斑.在战线的最前沿,入口之争尤为激烈,一方面巨头希望获得消费者的倾心,实现利润升级.另一方面,作为应用源头的开发者也是巨头们争抢的焦点.开发者的追捧是操作系统.开发平台.延伸服务等生存的基石,是打通行业上下游的关键. 3月31日,阿里云宣布联合AppCan.高德.友盟等厂商推出移动开发平台"聚无线",这是阿里巴巴首次在移动领域

【阿里云IoT+YF3300】15.阿里云物联网小程序构建

2013年8月,“轻应用”概念提出,但是仅仅活跃四年随后淡出 ,直到2017年1月9号借助微信小程序成功续命.一时间,以微信小程序和支付宝小程序为代表的轻应用解决方案迅速贯穿多个环节,成为“万物互联”的雏形载体.随着物联网的发展,对数据的获取便捷度要求越来越高,硬件和场景都逐步迈入物联网时代,传统的App已经无法满足发展的需要,毕竟不可能一个场景安装一个App.YF3300,见证物联网+小程序的火花. 一.  云端配置 (1) 登陆阿里云物联网平台. (2) 在设备管理选项中创建产品 示例: (

阿里云发布企业数字化及上云外包平台服务:阿里云众包平台

摘要: 阿里云正式发布旗下众包平台业务(网址:https://zhongbao.aliyun.com/),支持包括:网站定制开发,APP.电商系统等软件开发,商标.商品LOGO.VI.产品包装设计.营销推广.大数据人工智能等各类企业上云.数字化转型服务. 阿里云正式发布旗下众包平台业务(网址:https://zhongbao.aliyun.com/),支持包括:网站定制开发,APP.电商系统等软件开发,商标.商品LOGO.VI.产品包装设计.营销推广.大数据人工智能等各类企业上云.数字化转型服务

3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(项目功能演示--远程升级WIFI模块程序)

2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(视频总揽) 为了节省时间,基础篇的基础内容不再叙述 , 原文地址:https://www.cnblogs.com/yangfengwu/p/10360618.html

ESA2GJK1DH1K升级篇: 测试STM32远程乒乓升级,基于(Wi-Fi模块AT指令TCP透传方式),MQTT通信控制升级

实现功能概要 前面的版本都是,定时访问云端的程序版本,如果版本不一致,然后下载最新的升级文件,实现升级. 这一节,在用户程序里面加入MQTT通信,执行用户程序的时候,通过接收MQTT的升级命令实现升级 注意:BootLoader程序还是用以前的程序. 一开始设计这个升级篇的时候,我就规定好了大的框架 BootLoader只是负责升级,其它一概不管 用户程序只是写入升级标志,然后重启,所有的升级步骤全部交给BootLoader! 协议: 一,MQTT上位机通过MQTT发送获取设备信息指令 {"da