Release v0.4.0: complete rewrite #1
3 changed files with 58 additions and 18 deletions
|
@ -7,8 +7,21 @@
|
|||
#define TICKER_RATE_CONFIG 0.2
|
||||
#define TICKER_RATE_ERASE 0.05
|
||||
|
||||
#ifndef LED_BUILTIN
|
||||
#define LED_BUILTIN 2
|
||||
#endif
|
||||
|
||||
#ifndef BUTTON_BUILTIN
|
||||
#define BUTTON_BUILTIN 0
|
||||
#endif
|
||||
|
||||
#define CONNECT_BUTTON BUTTON_BUILTIN
|
||||
|
||||
void wifiManagerCb(WiFiManager::Status status);
|
||||
|
||||
void set_blink_rate(float interval);
|
||||
|
||||
void connect();
|
||||
void resetSettings();
|
||||
|
||||
#endif // __WIFIHANDLER_HPP__
|
|
@ -15,39 +15,38 @@ static void tick(void) {
|
|||
}
|
||||
}
|
||||
|
||||
void wifiManagerCb(WiFiManager::Status status) {
|
||||
void set_blink_rate(float interval) {
|
||||
if (ticker.active()) {
|
||||
ticker.detach();
|
||||
}
|
||||
|
||||
if (interval > 0.0f) {
|
||||
ticker.attach(interval, tick);
|
||||
}
|
||||
}
|
||||
|
||||
void wifiManagerCb(WiFiManager::Status status) {
|
||||
if (status.mode == WiFiManager::Mode::CONNECTING) {
|
||||
ticker.attach(TICKER_RATE_CONNECTING, tick);
|
||||
Serial.println("CONNECTING");
|
||||
set_blink_rate(TICKER_RATE_CONNECTING);
|
||||
} else if (status.mode == WiFiManager::Mode::SCANNING) {
|
||||
ticker.attach(TICKER_RATE_CONNECTING, tick);
|
||||
Serial.println("SCANNING");
|
||||
set_blink_rate(TICKER_RATE_CONNECTING);
|
||||
} else if (status.mode == WiFiManager::Mode::PORTAL) {
|
||||
ticker.attach(TICKER_RATE_CONFIG, tick);
|
||||
Serial.println("PORTAL");
|
||||
set_blink_rate(TICKER_RATE_CONFIG);
|
||||
} else if (status.mode == WiFiManager::Mode::ERASING) {
|
||||
ticker.attach(TICKER_RATE_ERASE, tick);
|
||||
Serial.println("ERASING");
|
||||
set_blink_rate(TICKER_RATE_ERASE);
|
||||
} else if (status.mode == WiFiManager::Mode::CONNECTED) {
|
||||
set_blink_rate(0.0f);
|
||||
digitalWrite(LED_BUILTIN, HIGH);
|
||||
Serial.println("CONNECTED");
|
||||
} else if (status.mode == WiFiManager::Mode::DISCONNECTED) {
|
||||
set_blink_rate(0.0f);
|
||||
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);
|
||||
wifiManager.configure("Claire", wifiManagerCb);
|
||||
|
||||
// fetches ssid and pass and tries to connect
|
||||
// if it does not connect it starts an access point
|
||||
|
@ -64,5 +63,19 @@ void connect() {
|
|||
Serial.println(WiFi.localIP());
|
||||
|
||||
// keep LED on
|
||||
digitalWrite(LED_BUILTIN, LED_ON_VALUE_DEFAULT);
|
||||
digitalWrite(LED_BUILTIN, HIGH);
|
||||
}
|
||||
|
||||
void resetSettings() {
|
||||
WiFiManager::Status status = {.wifi_status = 0U, .mode = WiFiManager::Mode::ERASING};
|
||||
|
||||
Serial.println("resetting wifi settings...");
|
||||
|
||||
wifiManagerCb(status);
|
||||
wifiManager.resetSettings();
|
||||
delay(1000);
|
||||
status.mode = WiFiManager::Mode::DISCONNECTED;
|
||||
wifiManagerCb(status);
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
18
src/main.cpp
18
src/main.cpp
|
@ -7,6 +7,21 @@ DESPatch dESPatch;
|
|||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
set_blink_rate(TICKER_RATE_CONNECTING);
|
||||
|
||||
pinMode(CONNECT_BUTTON, INPUT);
|
||||
|
||||
if (CONNECT_BUTTON >= 0) {
|
||||
// Give user 3 second chance to press button and reset settings
|
||||
Serial.println("Waiting 3 seconds to check if user presses the button");
|
||||
delay(3000);
|
||||
if (not digitalRead(CONNECT_BUTTON)) {
|
||||
resetSettings();
|
||||
}
|
||||
}
|
||||
|
||||
connect();
|
||||
|
||||
const char url[] =
|
||||
|
@ -18,11 +33,10 @@ void setup() {
|
|||
|
||||
Serial.print("dESPatch.configure() returned with code ");
|
||||
Serial.println(x);
|
||||
Serial.println(":-)");
|
||||
}
|
||||
|
||||
void loop(void) {
|
||||
Serial.println("hello :-)");
|
||||
dESPatch.checkForUpdate(true);
|
||||
delay(500);
|
||||
delay(5000);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue