2024-07-28 17:24:50 +02:00
|
|
|
#include <Ticker.h>
|
|
|
|
#include <WiFiManager-esp32.h> // 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) {
|
2024-08-08 22:54:33 +02:00
|
|
|
if (ticker.active()) {
|
|
|
|
ticker.detach();
|
|
|
|
}
|
2024-07-28 17:24:50 +02:00
|
|
|
|
|
|
|
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) {
|
|
|
|
digitalWrite(LED_BUILTIN, HIGH);
|
|
|
|
Serial.println("CONNECTED");
|
|
|
|
} else if (status.mode == WiFiManager::Mode::DISCONNECTED) {
|
|
|
|
digitalWrite(LED_BUILTIN, LOW);
|
|
|
|
Serial.println("DISCONNECTED");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void connect() {
|
|
|
|
Serial.begin(115200);
|
|
|
|
|
2024-08-08 22:54:33 +02:00
|
|
|
// wifiManager.resetSettings();
|
2024-07-28 17:24:50 +02:00
|
|
|
// wifiManager.configure("esp32-", true, LED_BUILTIN, true, BUTTON_BUILTIN,
|
|
|
|
// false);
|
2024-08-08 22:54:33 +02:00
|
|
|
wifiManager.configure("Claire", true, wifiManagerCb, BUTTON_BUILTIN, false);
|
2024-07-28 17:24:50 +02:00
|
|
|
|
|
|
|
// 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);
|
|
|
|
}
|