#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();
}