125 Serial.println(
"FastLED OTA Example");
126 Serial.println(
"===================");
137 Serial.println(
"Starting Wi-Fi (async mode)...");
139 Serial.println(
"Wi-Fi connecting in background...");
140 Serial.println(
"LEDs will show connection status:");
141 Serial.println(
" - Pulsing blue: Connecting...");
142 Serial.println(
" - Solid green: Connected!");
145 uint8_t failed =
ota.getFailedServices();
147 Serial.println(
"\nWARNING: Some OTA services failed to initialize:");
149 Serial.println(
" - mDNS failed: Device won't be discoverable at hostname.local");
150 Serial.println(
" Try accessing via IP address instead");
153 Serial.println(
" - HTTP server failed: Web OTA unavailable");
154 Serial.println(
" You can still use Arduino IDE OTA (port 3232)");
157 Serial.println(
" - ArduinoOTA failed: IDE OTA unavailable");
158 Serial.println(
" You can still use Web OTA interface");
164 Serial.println(
"Starting OTA services (network assumed configured)...");
166 Serial.println(
"OTA services started successfully");
168 Serial.println(
"OTA services failed to start");
172 uint8_t failed =
ota.getFailedServices();
174 Serial.println(
"\nWARNING: Some OTA services failed to initialize:");
176 Serial.println(
" - mDNS failed: Device won't be discoverable at hostname.local");
177 Serial.println(
" Try accessing via IP address instead");
180 Serial.println(
" - HTTP server failed: Web OTA unavailable");
181 Serial.println(
" You can still use Arduino IDE OTA (port 3232)");
184 Serial.println(
" - ArduinoOTA failed: IDE OTA unavailable");
185 Serial.println(
" You can still use Web OTA interface");
191 ota.onProgress([](
size_t written,
size_t total){
194 msg <<
"OTA Progress: " << written <<
"/" << total <<
" (" << (int)((written * 100) / total) <<
"%)";
197 ota.onError([](
const char* error_msg){
200 msg <<
"OTA error: " << error_msg;
206 msg <<
"OTA state: " << (int)
state;
212 ota.onBeforeReboot([](){
213 Serial.println(
"OTA complete! Preparing to reboot...");
214 Serial.println(
"Saving state and turning off LEDs...");
227 Serial.println(
"Setup complete. Running LED animation...");
239 if (!
ota.isConnected()) {
250 Serial.println(
"\nWi-Fi connected!");
251 Serial.print(
"Access web interface at: http://");
253 Serial.println(
".local/");
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
static const char * OTA_PASS
static const char * WIFI_SSID
static const char * WIFI_PASS
static const char * HOSTNAME
bool wifi_connected_notified
OTA (Over-The-Air) update manager for ESP32 platforms.
const char * c_str() const FL_NOEXCEPT
void fill_rainbow(CRGB *targetArray, int numToFill, fl::u8 initialhue, fl::u8 deltahue=5) FL_NOEXCEPT
Fill a range of LEDs with a rainbow of colors.
void fill_solid(CRGB *targetArray, int numToFill, const CRGB &color) FL_NOEXCEPT
Fill a range of LEDs with a solid color.
LIB8STATIC u8 beatsin8(accum88 beats_per_minute, u8 lowest=0, u8 highest=255, u32 timebase=0, u8 phase_offset=0) FL_NOEXCEPT
Generates an 8-bit sine wave at a given BPM that oscillates within a given range.
@ HTTP_FAILED
HTTP server failed to start (Web OTA unavailable)
@ MDNS_FAILED
mDNS initialization failed (device not discoverable at hostname.local)
@ ARDUINO_OTA_FAILED
ArduinoOTA initialization failed (IDE OTA unavailable)
Minimal, batteries-included OTA (Over-The-Air) update system for ESP32.
@ Green
<div style='background:#008000;width:4em;height:4em;'></div>
@ Blue
<div style='background:#0000FF;width:4em;height:4em;'></div>
@ Black
<div style='background:#000000;width:4em;height:4em;'></div>