esp8266 基于arduino实现ota
其实ESP8266板子要实现空中载入,最核心的就是要在代码中指定响应的载入代码就行。
第一步:打开 ArduinoOTA 中的basic_ota文件;
第二步:修改你的wifi名和密码,这里要注意一点就是 5G 的频这个板子会检测不到
#include <ESP8266WiFi.h> #include <ESP8266mDNS.h> #include <WiFiUdp.h> #include <ArduinoOTA.h> #ifndef STASSID #define STASSID "wifi名" #define STAPSK "wifi密码" #endif const char* ssid = STASSID; const char* password = STAPSK; int i = 0; 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(); } // 开启 arduino 的 OTA ArduinoOTA.begin(); Serial.println("Ready"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); pinMode(LED_BUILTIN, OUTPUT); } void loop() { // 持续查看是否有更新请求 ArduinoOTA.handle(); }
第三步:通过 arduino 软件选择对应的网络端口就可以进行固件更新了,不过更新的时候要注意不能将 Arduino.begin() 和 ArduinoOTA.handle() 这两个关键函数给更新掉