erqw 2020-01-06
其实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() 这两个关键函数给更新掉