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() 这两个关键函数给更新掉

相关推荐