ESP32的OTA功能使用

ESP32强大的WIFI功能,能够远程升级,岂不是更美,也是非常基本的功能,毕竟要面对无数的“物”点。

用开发一般系统的思路,在所有程序前面会有一段加载,然后加载会选择后续的跳转点,当OTA时,会将普通通信下来的数据重写进程序段,这样在再次重启的时候,将实现重跳转,也就是OTA功能。

ESP32在基本库里就有OTA功能,是一段WIFI配置功能,然后使用网页方式来实现上传,讲究!

先将这段程序用串口烧写进esp32。

然后进入网页页面:

http://esp32.local/serverIndex

选择上传,网页源码是在ota程序中用html写的,带AJAX功能,还贴心设置了背景颜色,讲究。

然后需要选择bin文件,bin,bin,bin,强调三遍,arduino的生成是.uno文件,所以需要对要生成的bin,选择项目-导出已编译的二进制文件。

这样就会在.uno旁边生成一个bin。

上传上去后,串口会看到上传进度,然后大概等个5s,不是32死了,是在重跳转,自动就到了新的程序段。、

我是用昨天的mqtt做的实验,由于mqtt中没有带这段ota程序,因此一旦烧写了新的程序,那么原来上传网页的程序不再存在,所以也不能再上传。

当然如果希望esp32在随时都有ota功能,那么就需要在编写时带上这段OTA程序。

网上有些用其他工具的,但是我觉得OTA功能是ESP32必须在代码段带的功能,引导区应该带不了wifi OTA这么大的段,所以这段程序不管用何种工具,都跑不掉,所以老老实实ctrl c /v是看似笨,实际简单的办法。


rst地方是自动重启的地方,是两个代码的分界。


还剩最后的COAP,留给明天。

ESP32是一种基于Espressif Systems的开源硬件平台,它结合了Wi-Fi和蓝牙功能,并支持物联网应用。OTA(Over-the-Air Update)更新是指通过无线网络自动更新嵌入式设备固件的功能。在Arduino平台上,使用ESP32进行OTA升级通常涉及以下几个步骤: 1. **库支持**:首先需要安装`arduinoOTA`库,这是Arduino IDE中的一个插件,简化了ESP32的在线升级过程。 2. **配置固件头部**:在项目中,你需要设置固件的URL、文件名和验证密钥等信息,以便让ESP32知道去哪里获取新版本。 3. **ota.begin()函数**:在程序中添加`ota.begin()`函数,初始化在线升级功能。 4. **ota.update()函数**:当需要升级时,调用`ota.update()`,这会启动下载并安装新固件的过程。如果成功,ESP32会被重启以加载新的程序。 5. **错误处理**:为了确保可靠,还要处理可能出现的网络连接失败、更新过程中错误等情况。 ```cpp #include <WiFi.h> #include <ArduinoOTA.h> void setup() { // 网络配置... ota.setCallback(onUpdateComplete); ota.begin("your_server_ip", "update_firmware.bin"); } void loop() { if (ota.checkForUpdate()) { // 检查是否有可用更新 Serial.println("New version available - starting update..."); if (ota.update()) { // 开始下载和安装更新 Serial.println("Update successful!"); delay(1000); // 等待一段时间再重启 esp.restart(); } else { Serial.println("Error updating!"); } } } void onUpdateComplete() { Serial.println("Update complete."); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值