ESP32那些事儿(九):功能开发之OTA功能

1、升级策略
    从前面对Bootloader的分析中,我们知道ESP32的OTA升级基本上也是可靠的,可靠的意思是即使升级失败,写入IMAGE不完整,设备还是可以用的。

    对于OTA升级,大家印象比较深刻的就是Android手机的升级,Android手机的升级确实是比较完善和健壮的,对于IOT设备来说,也没有差分Image的机制,所以只要简单有效即可。
    后来我们确定的方案就是后台静默强制升级,设备连上网后,只有检查有新版本,就会在后台强制升级,对用户来讲是无感的。

    那这时候就会有另外一个问题,通常这种设备和用户的交互非常有限,既没有与界面,又没有按键声音这些复杂的提醒等操作,那如何知道一个设备是什么版本,设备升级是否成功呢?我们的解决方法是在服务器端记录。
    1、在某一台设备开始HTTP下载的时候做一下记录,那么就知道某个设备下载了那个版本;
    2、同时在检查新版本的请求中,带上目前版本号,服务器记住设备的MAC地址和目前的版本,那我们就知道那些版本有那些设备升级成功了,同时也知道最新的版本有哪些设备升级成功了。
    OK,实验证明整体策略简单有效!我写的比较简略,大家也可以一起探讨。
    
2、版本比对
为了节省资源,可以在系统每一次重启,并且成功联网后,检查是否有新版本。

3、下载及升级
下载就比较简单了,自己构建服务器,目前各种云托管服务也很方便。
升级写入文件ESP32有一些自己的API,可以帮助我们简化一些逻辑。
https://esp-idf.readthedocs.io/en/latest/api-reference/system/ota.html?highlight=ota


 

你可能感兴趣的:(ESP32那些事儿,ESP32,IOT,物联)