1方法总结
Arduino IDE OTA:最简单,适合快速开发。
HTTP OTA:适合远程更新,需要 Web 服务器。
MQTT OTA:适合远程更新,需要 Web 服务器、适合已使用 MQTT 的项目。
SPIFFS OTA:适合本地存储固件的场景。
第三方库:提供更高级的功能和易用性例如:
AsyncElegantOTA:基于 AsyncWebServer 的 OTA 库,支持 Web 界面更新。
WiFiManager:结合 OTA 功能,支持配置 Wi-Fi 和 OTA 更新。
Arduino IDE OTA实践
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
const char* ssid = "你的WIFI账号";
const char* password = "你的WIFI密码";
void setup() {
Serial.begin(115200);
Serial.println("Booting");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("Connection Failed! Rebooting...");
delay(5000);
ESP.restart();
}
// 初始化 OTA
ArduinoOTA.onStart([]() {
String type;
if