最小 PlatformIO ESP8266 ArduinoOTA 示例

此简单固件将连接到 Wifi 并在任何 ESP8266 模块上使用 ArduinoOTA 启用空中更新 (OTA)。将其作为你自己的固件的起点以启用 OTA。

minimal_arduinoota_example.cpp
#include <Arduino.h>
#include <ArduinoOTA.h>
#include <ESP8266WiFi.h>

void setup() {
  Serial.begin(115200);
  /**
   * 连接到 Wifi
   */
  WiFi.begin("MyWifiSSID", "MyWifiPassword");
  uint32_t notConnectedCounter = 0;
  while (WiFi.status() != WL_CONNECTED) {
      delay(100);
      Serial.println("Wifi 连接中...");
      notConnectedCounter++;
      if(notConnectedCounter > 150) { // 15 秒后未连接则重置板
          Serial.println("由于 Wifi 未连接而重置...");
          ESP.restart();
      }
  }
  Serial.print("Wifi 已连接,IP 地址:");
  Serial.println(WiFi.localIP());
  /**
   * 启用 OTA 更新
   */
  ArduinoOTA.begin();
}

void loop() {
  // 检查空中更新请求并(如果存在)刷写它
  ArduinoOTA.handle();
}

extends = env:d1_mini

platformio.ini
[env:d1_mini]
platform = espressif8266
board = d1_mini
framework = arduino
monitor_speed = 115200

[env:d1_mini_ota]
extends = env:d1_mini
upload_protocol = espota
upload_port = 192.168.178.166

有关两个目标(d1_minid1_mini_ota)如何工作的更多详细信息,请参见如何在 platformio.ini 中同时处理 OTA 和串行上传。注意你需要输入 ESP8266 的 IP 地址或 mDNS 名称才能使 OTA 工作。

固件将在串口上打印 Wifi IP 地址,因此你可以使用 PlatformIO 的 Monitor 功能查看它。


Check out similar posts by category: Electronics, Embedded, ESP8266/ESP32, PlatformIO