1. 远程固件升级服务概述
在现代物联网设备开发中,远程固件升级(FOTA)功能已经成为刚需。想象一下,当你的设备已经部署在全国各地甚至海外,突然发现一个需要紧急修复的软件缺陷,或者需要增加新功能时,难道要派人去现场一个个升级吗?显然不现实。这就是FOTA技术的价值所在。
FOTA(固件空中升级)技术允许开发者通过无线网络远程更新设备固件,无需物理接触设备。对于采用LuatOS开发模式的设备,固件分为两部分:core(核心固件)和script(脚本)。这种架构设计带来了灵活的升级策略:
- 仅升级script:全量更新脚本部分,适合快速迭代业务逻辑
- 同时升级core+script:差分更新核心固件,适合底层功能优化
提示:差分升级的核心优势在于节省流量,特别是对于大规模部署的设备,能显著降低升级成本。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件准备与环境搭建
2.1 硬件配置清单
要完成本教程的实践,你需要准备以下硬件:
- 开发板:Air780EPM V1.3版本
- 网络组件:
- 可上网的SIM卡一张
- 4G天线一根
- 网线一根(用于有线网络测试)
- 供电与调试:
- TYPE-C USB数据线
- 电脑一台
硬件连接示意图:
code复制[开发板]
├── SIM卡槽插入SIM卡
├── 4G天线接口安装天线
├── 网口连接路由器
└── USB接口连接电脑
2.2 软件环境准备
2.2.1 必备工具下载
-
烧录工具:Luatools(建议使用3.0.9及以上版本)
- 下载地址:https://docs.openluat.com/air8000/luatos/common/swenv/
-
内核固件:Air780EPM V2012版本
- 下载地址:https://docs.openluat.com/air780epm/luatos/firmware/version/
- 注意:2025年8月10日后发布的固件理论上都支持
-
测试工具:合宙提供的TCP/UDP web测试工具(用于场景二测试)
2.2.2 开发环境配置步骤
- 安装Luatools到本地电脑
- 下载对应版本的固件文件(.soc后缀)
- 准备项目脚本文件(可从示例代码仓库获取)
- 使用Luatools将固件和脚本烧录到开发板
注意事项:首次烧录时,建议完全擦除设备原有固件,避免版本冲突问题。
3. 自建服务器FOTA实现详解
3.1 网络连接配置
FOTA功能需要稳定的网络连接,libfota2支持多种网络接口:
lua复制-- netdrv_device.lua 配置示例
local netdrv_device = {
-- 选择一种网络连接方式(三选一)
-- 1. 4G网络
drv = netdrv_4g,
-- 2. SPI以太网(CH390H芯片)
-- drv = netdrv_eth_spi,
-- 3. 多网卡优先级配置
-- drv = netdrv_multiple,
-- priority = {netdrv_4g, netdrv_eth_spi}
}
return netdrv_device
