【ESP32S3】ESP32-S3 WiFi 无线 OTA(升级)烧录镜像方法

张开发
2026/4/21 18:29:21 15 分钟阅读

分享文章

【ESP32S3】ESP32-S3 WiFi 无线 OTA(升级)烧录镜像方法
【ESP32S3】ESP32-S3 WiFi 无线 OTA升级烧录镜像方法一、ESP32-S3 WiFi 无线 OTA最常用二、Arduino 完整可运行代码三、如何生成固件并提供下载一、ESP32-S3 WiFi 无线 OTA最常用原理设备连 WiFi从 HTTP 服务器下载新固件.bin写入 OTA 备用分区校验成功后重启并切换分区二、Arduino 完整可运行代码#includeWiFi.h#includeESPAsyncWebServer.h#includeUpdate.h// WiFi 信息constchar*ssid你的WiFi名称;constchar*password你的WiFi密码;// OTA 固件地址自己搭 HTTP 服务器放 binconstchar*otaUrlhttp://192.168.1.100/firmware.bin;AsyncWebServerserver(80);voidsetup(){Serial.begin(115200);WiFi.begin(ssid,password);while(WiFi.status()!WL_CONNECTED){delay(500);Serial.print(.);}Serial.println(WiFi 已连接);Serial.println(IP: WiFi.localIP().toString());// 启动 OTA 升级startOTAUpdate();}voidloop(){}// OTA 升级函数voidstartOTAUpdate(){WiFiClient client;HTTPClient http;Serial.print(开始下载固件: );Serial.println(otaUrl);http.begin(client,otaUrl);inthttpCodehttp.GET();if(httpCode!HTTP_CODE_OK){Serial.println(下载失败);http.end();return;}intcontentLengthhttp.getSize();if(contentLength0){Serial.println(固件长度错误);http.end();return;}// 开始升级boolcanBeginUpdate.begin(contentLength);if(!canBegin){Serial.println(无法开始更新);http.end();return;}// 写入数据uint8_tbuff[1024];intbytesRead;WiFiClient*streamhttp.getStreamPtr();while(http.connected()(bytesReadstream-readBytes(buff,sizeof(buff)))0){Update.write(buff,bytesRead);}// 结束升级if(Update.end()){Serial.println(OTA 升级成功即将重启);ESP.restart();}else{Serial.println(OTA 失败: String(Update.getError()));}http.end();}三、如何生成固件并提供下载Arduino项目 → 导出已编译的二进制文件得到xxx.ino.bin放到电脑 HTTP 服务器Python 一键启动python-mhttp.server80把 bin 放到同目录下就是在哪个目录启动命令就放在哪个目录OTA 地址填http://电脑IP/firmware.bin

更多文章