合宙Air780E|iot|update|FOTA|LuatOS-Air开发|LuatOS-SOC接口|官方demo|学习(17):FOTA(远程升级)
目录
一. 概述
注意:
二. 材料准备
三. 合宙iot平台升级core+script过程
1. iot平台创建产品
2. 模块端脚本修改,生成升级包
3. 按照新版本的需求,修改main.lua
注意事项:
4. 使用Luatools生成bin文件差分包
5.在合宙iot平台配置升级包
6. 模块开机,完成升级
7.云平台查看升级日志
8.设备升级失败代码(处理方案简述)
一. 概述
update是物联网中比较常用的功能,本文介绍如何用Air780E开发板,如何做update升级。
LuatOS-Air开发模式下,固件分为两部分:core和script
远程升级时:core为差分升级;script为全量覆盖升级
远程升级时:可以仅升级script;可以仅升级core;也可以同时升级core+script
支持合宙iot平台升级和自建第三方服务器升级。
注意:
"fotademo"的升级仅适用于V1103及以上的固件,以下版本固件无法实现core+script同时升级的目的。V1103以下版本的固件需本地升级至V1103及以上版本,之后才可实现完整的远程升级(同时升级core+script)功能。
二. 材料准备
- [EVB_Air780E]开发板一套,包括天线SIM卡,USB线。
- PC电脑,以及登录官方IOT后台 合宙云平台
- 固件和DEMO下载地址 LuatOS软件包
刷入旧版本的fota-demo程序及所需要的支持库文件:
刷入完成后log:
可以从日志中查到imei号后期需要填入iot平台用于升级。
三. 合宙iot平台升级core+script过程
1. iot平台创建产品
- 登录合宙iot平台
http://iot.openluat.com/cloud/main
- 如果没有账户,注册一个账户
- 我的项目->新建产品
复制产品product_key
2. 模块端脚本修改,生成升级包
core |
旧版本core |
新版本core |
|
例子 |
LuatOS-SoC_V1103_EC618.soc |
LuatOS-SoC_V1103_EC618.soc |
|
要求 |
1、大于等于旧版本core版本号 |
2、新旧版本core支持的功能相同 |
|
script |
旧版本 |
新版本 远程升级包) |
要求 |
PROJECT |
fotademo |
fotademo |
新旧版本保持一致 |
VERSION |
1.0.1 |
1.0.2 |
大于等于旧版本VERSION |
PRODUCT_KEY |
JdIY6pAEHiK3z9sTz3I0eQHqG******** |
JdIY6pAEHiK3z9sTz3I0eQ********* |
和iot平台创建的产品 |
3. 按照新版本的需求,修改main.lua
如下图所示,PROJECT和PRODUCT_KEY保持不变,PRODUCT_KEY需和服务器保持一致,VERSION修改为1.0.2。
注意事项:
1、固件版本 V1103 及以上, 配合 libfota.lua
2、main.lua 内填写版本号要符合 x.y.z 形式, 其中 x/y/z 均为数值, 不限于个位数
3、若fota使用合宙iot平台, 版本号中的 y 会被忽略, 推荐写0, 务必留意。
4. 使用Luatools生成bin文件差分包
注意:只有Luatools版本2.1.89以上支持生成bin文件差分包,低版本仅支持生成sota文件
固件和DEMO下载地址 LuatOS软件包,这里下载的是LuatOS-SoC@EC618 V1103项目下面的core_V1103.zip软件包。下载对应软件包后按如下步骤生成对应的差分包。
在Luatools目录下的SOC量产及远程升级文件下,找到EC618文件夹,打开后缀名为.bin的文件fotademo_1103.1.2_LuatOS-SoC_EC618.bin,这个就是文件差分包。
5.在合宙iot平台配置升级包
进入iot平台创建的产品,打开我的项目->固件列表->创建固件,如下图所示
默认生成的量产文件均存放在luatools主程序下的SOC量产及远程升级文件夹下,如:E:\LuatOS\SOC量产及远程升级文件\EC618。
点击确定之后,升级配置完成,如下图所示
添加需要升级的模块imei,如下图所示
Imei编号可在log日志中查到。
添加完成如图:
6. 模块开机,完成升级
烧录旧版本的模块开机后,连接升级服务器,下载差分升级包,自动重启,重启过程中完成固件升级,整个过程的关键日志如下图所示:
7.云平台查看升级日志
登录云平台,选择对应设备升级的产品->固件升级->升级日志->输入对应的imei并选择日期->搜索:
可以看到设备在此日期下的空中升级日志。正常升级成功的情况下,短时间内会有两次升级请求,第一次请求升级获取到升级包之后,设备重启升级成功会再次向云平台请求是否有更高版本的固件可以升级。直到升级结果为 “已是最新版本” 服务器没有更高版本的固件为止。
之后再重启,日志会显示http应答不OK 400,直到有新的升级包:
8.设备升级失败代码(处理方案简述)
设备升级失败代码,可对照以下表格寻求解决方案。
响应码 |
响应信息 |
问题以及解决办法 |
云平台日志结果 |
3 |
无效的设备 |
检查请求键名(imei小写)正确性 |
无 |
17 |
无权限 |
设备会上报imei、固件名、项目key。 |
无权限 |
21 |
21 |
不允许从1.0.2升到1.0.3 |
21 |
25 |
无效的项目 |
productkey不一致,检查是否存在拼写错误, |
未找到项目 |
26 |
无效的固件 |
固件名称错误,项目中没有对应的固件。用户自己修改了固件名称,可对照升级日志中设备当前固件名与升级配置中固件名是否相同(固件名称,固件功能要完全一致,只是版本号不同)。 |
找不到固件 |
27 |
已是最新版本 |
1、设备固件版本高于云平台 |
已是最新版本 |
40 |
循环升级 |
云平台进入设备列表搜索被禁止的imei,解除禁止升级就好了。 |
检测到循环升级 |
43 |
请等待 |
云平台生成差分升级包需要等待, |
正在生成版本,请等待 |
44 |
基础版本缺失 |
平台未收录设备固件(多为定制固件, |
基础CORE版本缺失 |
合宙Air780E|iot|update|FOTA|LuatOS-Air开发|LuatOS-SOC接口|官方demo|学习(17):FOTA(远程升级)相关推荐
- CORE-ESP32C3|eink|墨水屏日历|天气API|LuatOS公共接口|气象要素数据V1|collectgarbage|LuatOS-SOC接口|官方demo|学习(13):墨水屏动态日历
目录 参考博文 项目官方地址 显示效果: 硬件准备 软件版本 日志及soc下载工具 软件使用 接线示意图 硬件接线 一.Elink驱动管脚适配 二.天气信息获取 API使用方式: 接口格式(注意需不需 ...
- AIR系列|板载LED|gpio引脚选择|GPIO|流水灯|LuatOS-SOC接口|官方demo|学习(20-1):GPIO库基础
AIR系列各型号开发板板载LED对应管脚及GPIO控制代码 AIR103: rtos_bsp == "AIR103" then -- Air103开发板LED引脚编号--retur ...
- 合宙Air103|fbd数据库| fskv - 替代fdb库|LuatOS-SOC接口|官方demo|学习(16):类redis的fbd数据库及fskv库
基础资料 基于Air103开发板:
- 合宙Air103|射频读写器|RC522|RDIF|Mifare1 S50|非接触式IC卡|AB密钥|社区库接口|官方demo|学习(9):RC522-射频读写器
基础资料 基于Air103开发板:
- 合宙Air780e+luatos+阿里云物联网平台完成设备通信与控制(属性上报+4G远程点灯)
一.简介 1.项目介绍 之前发布的文章有采用合宙的4G LTE Cat.1模块,编程语言用的是lua,整体来说代码比较简洁,实现对华为云物联网平台的设备通信与控制,即采用一个变量作为模拟属性定时上报, ...
- 合宙Air780e C-SDK开发
Air78e简介 AirXXXE系列模组,是合宙通信基于移芯EC618平台设计研发的新款4G Cat.1模组. Air780e的资料点击这里打开. Air78e开发板简介 一代 IPEX 天线连接器( ...
- 合宙Air105|摄像头|capture|SPI|Serial 串口|TFTLCD|Micro SD卡|GC032A|USB转TTL|官方demo|学习(2-1):摄像头camera-capture
目录 基础资料 探讨重点 实现功能 硬件准备 软件版本 软件使用 接线示意图 功能1:捕捉图片并存入SPI接口外置SD卡 lcd初始化 摄像头初始化 指定capture按钮 SD卡初始化 图片存储 功 ...
- 合宙Luat | 最新网红Cat.1开发板全攻略【使用教程+注意事项+设计图纸】
合宙Luat | 最新网红Cat.1开发板全攻略[使用教程+注意事项+设计图纸] 使用指南目录参考 特别注意事项 常见问题Q&A 很多朋友认识合宙,都源于合宙的Cat.1系列产品.Air724 ...
- 合宙Air780e+luatos接入华为云物联网平台完成设备通信与控制
一.简介 1.项目介绍 之前发布的文章有esp8266的wifi模块和BC20的NB模块与华为云物联网通信为主,本期文章采用了合宙的4G LTE Cat.1模块,编程语言用的是lua,整体来说代码比较 ...
最新文章
- matlab plot函数_慧图大讲堂 | 一起来认识MATLAB吧!
- 一个初级程序员学习新技术的策略
- 如何成为一个设计师和程序员混合型人才
- android mp4语音识别,怎样用语音识别将一段视频转化为文字, 比如:百度的语音识别api...
- 985毕业+数据分析师+做过名企项目+懂运营=跳槽失败???
- SQL 窗口函数的优化和执行
- 中国创客面临无限挑战
- 学弟拿到了大厂推荐算法岗offer,分享一波他的经验
- matplotlib创建图的基本方法
- 低版本浏览器如何兼容html5,解决Vue兼容低版本浏览器的简单方法
- Python中filter筛选函数匿名参数问题
- 新手编程入门先学什么?
- Spring(26)——PathMatchingResourcePatternResolver
- 马未都说收藏:陶瓷篇(2)三国两晋南北朝唐代时期的瓷器
- Oracle里default什么意思,ORACLE中默认值default的使用方法
- Android如何实现APP自动更新
- Java的三大特性之封装、继承、多态-----最简理解
- 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest (大部分题解)
- kfc扫描点餐系统java_Java实现KFC点餐系统过程解析
- 面试篇-- Http、TCP/IP协议与Socket之间的区别
热门文章
- BlackBerry 用户界面开发实例(二)
- echarts pie ajax赋值,echart-pie-ajax
- linux64下调用海康sdk(=登陆、获取通道列表、获取文件列表、按照文件下载文件、按照时间下载文件)
- C语言输入未知数目的若干个整数
- ubantu 18.04.4下载
- 【转】Windows Error Code(windows错误代码详解)
- 大数据搜索引擎原理分析——设计并实现一个中文分词的算法
- 企业微信私有部署服务器连接失败,企业微信-私有部署
- 交流桩CP信号充电流程
- Ubuntu深入学习