流程总图
本图描述的是2G模块, 然后4G模块的更新不是基于文件的, 稍有区别
重点提示,敲黑板!!!
- 升级服务器返回状态码200就代表需要升级
- 实际升级是在系统启动时完成,update.lua是负责下载升级文件的
使用合宙iot平台
平台地址: https://iot.openluat.com/
该平台的功能及限制:
- 可以根据imei列表升级设备
- 不支持根据区域升级设备
- 支持全项目升级
- 能统计升级成功的设备,但不支持统计失败的设备(通常不存在)
点击新建项目
输入一个有个性的名字就行, 我输入的是 超级插座
进入产品
把ProductKey记下了,下面会用到
设备端代码修改
打开项目的main.lua
- 确保开头声明了PROJECT/VERSION/PRODUCT_KEY
1 | -- 务必注意变量的大小写 |
使用luatools生成量产文件
会有两个目录:
分别是 远程升级用.bin文件 和 量产升级用.lod文件
lod是不能远程升级的,只能使用bin文件升级
升级文件的命名规则,非常非常非常重要
1 | -- ${PROJECT}_${VERSION}_${LOD}.bin |
文件名就是固件版本,不要通过修改文件名来改变版本号,这是行不通的!!!
回到iot平台,添加固件
上动图
测试升级
- 先把main.lua的VERSION改成2.0.3, 刷机
- 回到iot平台, 点击编辑, 将2.0.4设置为可升级
- 点击”添加”, 填入测试设备的imei,并确定
- 重启测试设备,观察日志, 一般来说都会更新成功的^_^