ESP32-OTA

1. 什么是OTA?

OTA(Over-The-Air)是一种通过网络无线传输固件或软件更新的技术。它允许远程更新设备上的固件或软件,而无需物理连接或手动干预。OTA 技术在许多领域得到广泛应用,包括智能家居、物联网设备、嵌入式系统等。

OTA 的主要优势包括:

  1. 远程更新:通过 OTA,可以在设备部署在远程位置时对其进行更新,无需人工干预或物理连接。
  2. 方便性和灵活性:设备可以通过无线网络自动下载和安装更新,用户不需要手动介入,提供了更大的便利性和灵活性。
  3. 效率和成本节约:OTA 可以大大降低更新固件或软件的成本和工作量,不再需要人工逐个设备更新,节约了时间和资源。
  4. 功能增强和错误修复:通过 OTA,可以在设备上快速部署新功能、修复错误或漏洞,提供更好的用户体验和安全性。

2. OTA的基本原理

OTA的原理是在服务器端(本地服务器或者远程服务器)放置新的固件,被升级设备访问服务器获取固件后即可将固件放到被升级设备的OTA分区升级程序。

3. ESP32远程OTA

刚开始参考的是乐鑫官方的教程,但是根据其教程部署http服务器后会访问失败。然后修改了一下http服务器的搭建方式,使用python搭建http服务器后成功。

步骤:

根据乐鑫官方搭建http服务器的部分使用删除线描述。

将ota需要用到的ca_cert.pem文件放到服务器

image-20230527210441216

输入命令openssl req -x509 -newkey rsa:2048 -keyout ca_key.pem -out ca_cert.pem -days 365 -nodes

输入配置信息

image-20230527210728893

3.1 将需要升级的程序放在该目录下

我用的是宝塔,具体上传方式可以根据自己常用的来。

把需要升级的.bin程序文件放到目录下,因为使用python搭建http服务器的原因,所以ca_cert.pem和ca_key.pem这两个文件不需要放到服务器

image-20230527211156418

3.2 启动HTTP服务器

命令:

openssl s_server -WWW -key ca_key.pem -cert ca_cert.pem -port 8070

nohup python -m SimpleHTTPServer 8070 &

  • nohup是使程序运行在后台的一种方式,也可以不用nohup &,程序直接运行在终端,方便查看日志

下图出现nohup.out表示服务器运行成功,nohup.out将原先在终端中输出的内容放到nohup.out中。我用的是腾讯云服务器,刚装的系统中是有python的,如果没有python需要自行安装一下

image-20230527224648972

3.3 配置

使用ESPIDF新建ota工程,ESPIDF开发环境搭建教程:https://blog.csdn.net/weixin_51954217/article/details/130462085?spm=1001.2014.3001.5501

image-20230527225447462

点击界面左下角的设置按钮,进入SDK configuration配置工程

image-20230527211742837

注意:服务器地址设置为http,不要https

3.4 烧录程序

image-20230527225725316

3.5 上电测试

image-20230527212215237

查了一下好像是SSL证书的问题

image-20230527213113621

又排查了一下,是因为刚才设置的域名为https的原因,然后将https改为http后用浏览器直接访问也可以。

http服务器直接使用python运行,命令:nohup python -m SimpleHTTPServer 8070 &同上面3.2启动mqtt服务器

image-20230527222213120

成功

用浏览器也是可以访问的到的

image-20230527222747889

ESP32端

image-20230527222456705

因为ota的程序是读取dht11温湿度的程序,然后dht11没有连接,所以会出现读取失败。但是说明ota成功。

板子重启后还是运行的ota程序

4. 问题:

image-20230527212215237

查了一下好像是SSL证书的问题

image-20230527213113621

5. 通过命令控制OTA

待补充

6. 参考:

  • https://blog.csdn.net/felix_tao/article/details/126075783

猜你喜欢

转载自blog.csdn.net/weixin_51954217/article/details/130907341
OTA