觉得FOTA远程升级是个“技术活”,一不小心就得从头再来?
别担心,我这就给大家带来一份超详细的“傻瓜式”教程,
保证你看完就能从升级小白变身成专家!
咱们先聊聊合宙Air780EP这块宝贝,它不仅集成了各种高科技,还超级省电,特别适合那些玩物联网的大佬们。不管你是做智能家居、智能城市还是工业控制的,这块板子都能轻松搞定。
合宙支持LuatOS功能的模组型号,除本文介绍的Air780EP外, 还有Air780EPA、Air780E、Air780EX、Air201、Air780EPT、Air780EPS等型号, 本文介绍的FOTA应用流程,同样也适用于这些型号。
在正式开干之前,咱们得先搞清楚啥是FOTA远程升级。
简单说,就是不用拆机、不用重启,直接通过网络给设备升级软件,听起来就很酷对吧?
而且,LuatOS-Air平台下的固件分为两大块:核心固件(core)和脚本(script),你可以根据需要单独升级它们,或者两者一起升。
一、材料准备
我们升级前需要的工具准备有这些:
-
780EP开发板一套,包括天线SIM卡,USB线
-
PC电脑,以及登录官方IOT后台 https://iot.openluat.com/
-
固件和DEMO下载地址 LuatOS软件包
二、合宙iot平台升级core+script过程
1. iot平台创建产品
-
登录合宙iot平台
-
如果没有账户,注册一个账户
-
打开:我的项目->新建项目
2.复制PRODUCT_KEY
3. 模块端脚本修改,生成升级包
4. 按照新版本的需求,修改main.lua
如下图所示,PROJECT和PRODUCT_KEY保持不变,PRODUCT_KEY需和服务器保持一致,VERSION修改为1.0.1
注意事项:
1. main.lua 内填写版本号要符合 x.y.z 形式, 其中 x/y/z 均为数值, 不限于个位数;
2. 若fota使用合宙iot平台, 版本号中的 y 会被忽略, 推荐写0, 务必留意
5. 使用Luatools生成bin文件差分包
注意:只有Luatools版本2.1.89以上支持生成bin文件差分包,低版本仅支持生成sota文件
只升级脚本,差分包制作流程如下:
固件和DEMO下载地址 LuatOS软件包,这里下载的是LuatOS-SoC@EC718P V1001下面的core_V1001.zip软件包。下载对应软件包后按如下步骤生成对应的差分包。
在Luatools目录下的SOC量产及远程升级文件下,找到EC718P文件夹,打开后缀名为.bin的文件fotademo_1001.1.1_LuatOS-SoC_EC718P.bin,这个就是文件差分包。
需要升级底层CORE,差分包制作流程如下:
(1)生成新版本的量产固件,如下所示
(2)根据新旧固件生成对应差分文件,如下所示:
- a. 点击
选项及工具
选项,选择升级包制作工具
-
b. 选择对应文件,点击开始执行生成对应差分文件
-
c. 生成的差分文件
6. 在合宙iot平台配置升级包
- 进入iot平台,打开我的项目->固件列表->创建固件
- 选择新固件升级文件
如果升级全部设备
勾选的是否
,则需要添加需要升级的模块imei
7. 模块开机,完成升级
烧录旧版本的模块开机后,连接升级服务器,下载差分升级包,自动重启,重启过程中完成固件升级,整个过程的关键日志如下图所示
8. 云平台查看升级日志
登录云平台,选择对应设备升级的产品->固件升级->升级日志->输入对应的imei并选择日期->搜索
可以看到设备在此日期下的空中升级日志。正常升级成功的情况下,短时间内会有两次升级请求,第一次请求升级获取到升级包之后,设备重启升级成功会再次向云平台请求是否有更高版本的固件可以升级。直到升级结果为 “已是最新版本” 服务器没有更高版本的固件为止。
如果你的存在设备升级失败等情况,可以对照以下表格寻求解决方案:
三、自建第三方服务器升级过程
1.使用自建第三方服务器升级
注意:只有Luatools版本2.1.89以上支持生成bin文件差分包,低版本仅支持生成sota文件
手动生成core差分包+script全量包。例如core版本有1001、1002、1003,现在要统一升级到1004,则需要按照如下步骤操作:
手动生成:从1001到1004的core差分包+script全量包、从1002到1004的core差分包+script全量包、从1003到1004的core差分包+script全量包
模块请求升级时,服务器根据模块中的core版本返回对应的升级包文件
手动生成差分包的过程如下:用合宙提供的luatools中的soc差分工具生成差分包
2.操作步骤
(1)准备模块中使用的旧版本core升级文件
此文件指的是模块中旧版本core中的.soc文件(从合宙官方渠道下载),例如以LuatOS-SoC_V1001_EC718P.soc为例
(2)使用Luatools分别生成新旧版本的升级包
如下图所示
在Luatools目录下SOC量产及远程升级文件下的EC718P下,生成了一个后缀名为.soc的文件fotademo_1.0.1_LuatOS-SoC_V1002_EC718P.soc,这个就是新版本的升级包
(3) 生成差分包
使用luatools生成升级文件,无论core是否需要升级,升级文件必须包含core,因为差分会用到,使用luatools内的soc差分工具生成即可
生成对应差分包如下图所示:
注意:差分包不能超过480k
(4)差分包上传到自建服务器
lua固件默认支持HTTP获取升级包
启动远程升级功能,demo\fota2\main.lua文件做如下修改,打开使用自建服务器进行升级部分代码,填写对应的url
3. 使用其他协议实现自建服务器远程升级
可参考脚本库中配置。无论使用哪种协议,远程升级的关键是获取正确的升级固件包。
总结:
当你看到这里,是不是已经感到安心和踏实一些了,是的,你已经掌握了FOTA远程升级的方法了。每一个步骤都被细细拆解,确保即便是技术小白也能轻松上手。
你在FOTA远程升级的时候,有没有遇到过什么问题?评论区一起来讨论吧~
合宙支持LuatOS功能的模组型号,除本文介绍的Air780EP外, 还有Air780EPA、Air780E、Air780EX、Air201、Air780EPT、Air780EPS等型号, 本文介绍的FOTA应用流程,同样也适用于这些型号。
详细资料获取请点击 www.openluat.com