#include #include // https://github.com/admarschoonen/WiFiManager #include "../include/WifiHandler.hpp" WiFiManager wifiManager; Ticker ticker; static void tick(void) { int state = 0; if (LED_BUILTIN >= 0) { state = digitalRead(LED_BUILTIN); digitalWrite(LED_BUILTIN, !state); } } void wifiManagerCb(WiFiManager::Status status) { ticker.detach(); if (status.mode == WiFiManager::Mode::CONNECTING) { ticker.attach(TICKER_RATE_CONNECTING, tick); Serial.println("CONNECTING"); } else if (status.mode == WiFiManager::Mode::SCANNING) { ticker.attach(TICKER_RATE_CONNECTING, tick); Serial.println("SCANNING"); } else if (status.mode == WiFiManager::Mode::PORTAL) { ticker.attach(TICKER_RATE_CONFIG, tick); Serial.println("PORTAL"); } else if (status.mode == WiFiManager::Mode::ERASING) { ticker.attach(TICKER_RATE_ERASE, tick); Serial.println("ERASING"); } else if (status.mode == WiFiManager::Mode::CONNECTED) { ticker.detach(); digitalWrite(LED_BUILTIN, HIGH); Serial.println("CONNECTED"); } else if (status.mode == WiFiManager::Mode::DISCONNECTED) { ticker.detach(); digitalWrite(LED_BUILTIN, LOW); Serial.println("DISCONNECTED"); } } void connect() { Serial.begin(115200); wifiManager.resetSettings(); // wifiManager.configure("esp32-", true, LED_BUILTIN, true, BUTTON_BUILTIN, // false); wifiManager.configure("esp32-", true, wifiManagerCb, BUTTON_BUILTIN, false); // fetches ssid and pass and tries to connect // if it does not connect it starts an access point // and goes into a blocking loop awaiting configuration if (!wifiManager.autoConnect()) { Serial.println("failed to connect and hit timeout"); // reset and try again, or maybe put it to deep sleep ESP.restart(); delay(1000); } // if you get here you have connected to the WiFi Serial.print("connected with address: "); Serial.println(WiFi.localIP()); // keep LED on digitalWrite(LED_BUILTIN, LED_ON_VALUE_DEFAULT); }