Claire/src/WifiHandler.cpp

69 lines
2.1 KiB
C++
Raw Normal View History

#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) {
if (ticker.active()) {
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) {
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);
// wifiManager.resetSettings();
// wifiManager.configure("esp32-", true, LED_BUILTIN, true, BUTTON_BUILTIN,
// false);
wifiManager.configure("Claire", 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);
}