原文链接:https://blog.csdn.net/qq_43332314/article/details/129911972?spm=1001.2014.3001.5502
原文作者:爱出名的狗腿子
ESP32 OTA升级之 HTTP OTA
1. 前言
在所有电子设备中,OTA
功能目前都成为了必要之选,所谓 OTA
(空中升级),也就是当设备在客户现场正常运转过程中,亦可通过外部通讯的方式,获取新的固件,将新的固件存放到 flash
内,并在下一次启动或复位后运行。
由于 OTA
操作实际是和 flash
紧密结合的,因此在进行esp32
的 OTA
之前,首先需要对 esp32
的 flash
布局有充足的了解,关于 esp32
的 flash
布局,esp32
内采用分区表这个概念进行描述,关于分区表的详细介绍,大家可以自行阅读编程指南对应文章内的内容,再次不进行过多赘述: ESP32 分区表(点击跳转)。
本文主要描述如何采用http通讯方案获取升级固件完成esp32的ota升级。
本文主要采用官方提供的Example例程,虽然乐鑫官方提供了有关例程,但是对于OTA有关例程实际完整运行起来还是有着诸多复杂配置,本文将一步一步记录如何真正在本地实现ESP32的 HTTP OTA。此外本文主要介绍关于采用 http 通讯方案完成ESP32的OTA升级,如需了解 https 方案,可查看博主另外一篇博客: ESP32 OTA升级之https ota详解 (点击跳转)
2. 搭建http本地服务器
由于我们采用http进行升级,在调试阶段,我们可以采用 python
先建立一个简单的本地 http 服务器以方便我们进行调试,具体操作细节如下:
-
首先需要在电脑上安装
python
环境(推荐python3),具体操作自行上网学习 -
采用
python
的内置http.server
模块搭建一个简易的http服务器(python2版本对应模块名称为SimpleHTTPServer
) -
在工程目录下打开
windows power shell
-
输入
python —version
检查python的版本以及是否可以正常使用 -
输入
python -m http.server 8080
命令,创建 http 本地服务器(python2 对应命令为python -m SimpleHTTPServer 7890
)
-m
表示使用模块;8080
表示http对应的端口port
,此参数可自行修改
- 之后可在浏览器输入以下网址访问http本地服务器:
http://127.0.0.1:8080/
或http://localhost:8080/
进行访问(如果测试失败,有可能是你电脑上其他软件占用了端口所致,可尝试更换端口号测试) - 通过以上简单操作,一行指令就完成了一个http服务器的搭建,并在电脑端可以进行访问,不过关于访问的域名地址,由于我们的服务器是在电脑上搭建的,所以在电脑上的浏览器可以使用
127.0.0.1
或localhost
进行访问,那其他电脑或设备如何进行访问呢? - 接下来我们介绍如何在局域网内访问我们刚刚建立的http服务器
- 首先需要知道开启服务器的电脑的ip地址,在
power shell
内输入ipconfig.exe
进行查看,其实对应的IPv4
地址也就是http服务器的地址啦 - 因此局域网内的其他机器需要访问我们这台电脑的http服务器内的内容,可将对应的url修改为:
http://(服务器电脑IPv4地址):(服务器端口号)
,我这对应的即http://192.168.1.5:8080
2. HTTP OTA
-
从
esp-idf
目录下的example
文件夹下拷贝相应示例工程具体路径为:
esp-idf\examples\system\ota\simple_ota_example
-
在新的目录下,进入
simple_ota_exmaple
文件夹下,单击右键,在当前目录下打开windows power shell
终端 -
在
power shell
内输入get_idf
命令,完成此终端的esp32环境配置
(关于环境搭建请查看ESP32开发环境搭建 ESP-IDF+(PowerShell / Vscode) (windows)(点击跳转))
-
输入
idf.py build
直接编译示例工程 -
由于我们这里是直接编译的例程,什么都没有修改,因此正常编译是不会有什么问题的,如果有,请检查环境是否搭建成功,或者上述操作是否存在错误。
ps:编译错误,一般编译信息里面会有提示,可以根据提示查找问题原因! -
修改工程配置参数,输入
idf.py menuconfig
,打开menuconfig配置项
-
修改 wifi 连接信息
-
修改升级文件路径, 注意此路径的填写,根据我们在第二章节所述,地址因修改为对应的 http 服务器电脑的地址,此外注意需要找到对应的 bin 文件的路径,工程bin文件一般在工程目录下的
./build
目录下
-
-
如果不知道具体的路径,可先使用浏览器访问,找到对应的bin文件,如果工程目录下没有bin文件,请检查工程是否执行过
idf.py build
编译过,新的工程是没有bin文件的!!!
此处路径参数填写,请参考第二章节描述! -
退出menuconfig,重新编译工程
idf.py build
-
烧录下载进行测试
idf.py -p COM4 flash monitor
创作不易,转载请注明出处!
关注、点赞+收藏,可快速查收博主有关分享!
3. 补充学习
强烈推荐:
评论(0)
您还未登录,请登录后发表或查看评论