其實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() 這兩個關鍵函數給更新掉