Загрузка данных


#include <WiFi.h>
#include <ArduinoOTA.h>
#include <Preferences.h>

Preferences preferences;

const char* DEFAULT_SSID = "LegendaryBoka";
const char* DEFAULT_PASS = "123404321";

void setup() {
  Serial.begin(115200);
  delay(500);
  Serial.println("\n=== OTA RESTORE ===");

  // Загружаем WiFi из NVS
  preferences.begin("wifi_cfg", false);
  String ssid = preferences.getString("ssid", "");
  String pass = preferences.getString("pass", "");

  if (ssid.length() == 0) {
    Serial.println("[NVS] Empty - saving defaults");
    preferences.putString("ssid", DEFAULT_SSID);
    preferences.putString("pass", DEFAULT_PASS);
    ssid = DEFAULT_SSID;
    pass = DEFAULT_PASS;
  }

  Serial.print("SSID: ");
  Serial.println(ssid);

  // Подключаемся к WiFi
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid.c_str(), pass.c_str());

  Serial.print("Connecting");
  int attempts = 0;
  while (WiFi.status() != WL_CONNECTED && attempts < 30) {
    delay(200);
    Serial.print(".");
    attempts++;
  }

  if (WiFi.status() != WL_CONNECTED) {
    Serial.println("\nWiFi FAILED");
    return;
  }

  Serial.println("\nWiFi OK");
  Serial.print("IP: ");
  Serial.println(WiFi.localIP());

  // Запускаем OTA
  ArduinoOTA.setHostname("esp32-ota");
  ArduinoOTA.begin();
  Serial.println("OTA Ready");
}

void loop() {
  ArduinoOTA.handle();
}