原文链接:https://blog.csdn.net/qq_43332314/article/details/129911972?spm=1001.2014.3001.5502
原文作者:爱出名的狗腿子

ESP32 OTA升级之 HTTP OTA

1. 前言

在所有电子设备中,OTA 功能目前都成为了必要之选,所谓 OTA (空中升级),也就是当设备在客户现场正常运转过程中,亦可通过外部通讯的方式,获取新的固件,将新的固件存放到 flash 内,并在下一次启动或复位后运行。


由于 OTA 操作实际是和 flash 紧密结合的,因此在进行esp32OTA 之前,首先需要对 esp32flash 布局有充足的了解,关于 esp32flash 布局,esp32 内采用分区表这个概念进行描述,关于分区表的详细介绍,大家可以自行阅读编程指南对应文章内的内容,再次不进行过多赘述: ESP32 分区表(点击跳转)


本文主要描述如何采用http通讯方案获取升级固件完成esp32的ota升级。


本文主要采用官方提供的Example例程,虽然乐鑫官方提供了有关例程,但是对于OTA有关例程实际完整运行起来还是有着诸多复杂配置,本文将一步一步记录如何真正在本地实现ESP32的 HTTP OTA。此外本文主要介绍关于采用 http 通讯方案完成ESP32的OTA升级,如需了解 https 方案,可查看博主另外一篇博客: ESP32 OTA升级之https ota详解 (点击跳转)


2. 搭建http本地服务器

由于我们采用http进行升级,在调试阶段,我们可以采用 python 先建立一个简单的本地 http 服务器以方便我们进行调试,具体操作细节如下:


  1. 首先需要在电脑上安装 python 环境(推荐python3),具体操作自行上网学习

  2. 采用 python 的内置 http.server 模块搭建一个简易的http服务器(python2版本对应模块名称为 SimpleHTTPServer

  3. 在工程目录下打开 windows power shell

  4. 输入 python —version 检查python的版本以及是否可以正常使用

  5. 输入 python -m http.server 8080 命令,创建 http 本地服务器(python2 对应命令为python -m SimpleHTTPServer 7890


    • -m 表示使用模块;8080 表示http对应的端口 port,此参数可自行修改


  1. 之后可在浏览器输入以下网址访问http本地服务器:http://127.0.0.1:8080/http://localhost:8080/ 进行访问(如果测试失败,有可能是你电脑上其他软件占用了端口所致,可尝试更换端口号测试)

  2. 通过以上简单操作,一行指令就完成了一个http服务器的搭建,并在电脑端可以进行访问,不过关于访问的域名地址,由于我们的服务器是在电脑上搭建的,所以在电脑上的浏览器可以使用127.0.0.1localhost进行访问,那其他电脑或设备如何进行访问呢?
  3. 接下来我们介绍如何在局域网内访问我们刚刚建立的http服务器
  4. 首先需要知道开启服务器的电脑的ip地址,在 power shell 内输入ipconfig.exe 进行查看,其实对应的IPv4 地址也就是http服务器的地址啦
  5. 因此局域网内的其他机器需要访问我们这台电脑的http服务器内的内容,可将对应的url修改为:http://(服务器电脑IPv4地址):(服务器端口号),我这对应的即http://192.168.1.5:8080

2. HTTP OTA

  1. esp-idf目录下的 example 文件夹下拷贝相应示例工程

    具体路径为:esp-idf\examples\system\ota\simple_ota_example



  1. 在新的目录下,进入simple_ota_exmaple 文件夹下,单击右键,在当前目录下打开 windows power shell 终端

  2. power shell 内输入 get_idf 命令,完成此终端的esp32环境配置


(关于环境搭建请查看ESP32开发环境搭建 ESP-IDF+(PowerShell / Vscode) (windows)(点击跳转)



  1. 输入 idf.py build 直接编译示例工程

  2. 由于我们这里是直接编译的例程,什么都没有修改,因此正常编译是不会有什么问题的,如果有,请检查环境是否搭建成功,或者上述操作是否存在错误。
    ps:编译错误,一般编译信息里面会有提示,可以根据提示查找问题原因!

  3. 修改工程配置参数,输入idf.py menuconfig,打开menuconfig配置项


    • 修改 wifi 连接信息

    • 修改升级文件路径, 注意此路径的填写,根据我们在第二章节所述,地址因修改为对应的 http 服务器电脑的地址,此外注意需要找到对应的 bin 文件的路径,工程bin文件一般在工程目录下的 ./build 目录下

  4. 如果不知道具体的路径,可先使用浏览器访问,找到对应的bin文件,如果工程目录下没有bin文件,请检查工程是否执行过idf.py build编译过,新的工程是没有bin文件的!!!

    此处路径参数填写,请参考第二章节描述!

  5. 退出menuconfig,重新编译工程idf.py build

  6. 烧录下载进行测试 idf.py -p COM4 flash monitor




创作不易,转载请注明出处!


关注、点赞+收藏,可快速查收博主有关分享!




3. 补充学习


  
强烈推荐: