Release v0.4.0: complete rewrite #1

Merged
admar merged 13 commits from Plus-Claire into main 2024-09-24 21:54:12 +02:00
3 changed files with 58 additions and 18 deletions
Showing only changes of commit 93d5240443 - Show all commits

View file

@ -7,8 +7,21 @@
#define TICKER_RATE_CONFIG 0.2 #define TICKER_RATE_CONFIG 0.2
#define TICKER_RATE_ERASE 0.05 #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 wifiManagerCb(WiFiManager::Status status);
void set_blink_rate(float interval);
void connect(); void connect();
void resetSettings();
#endif // __WIFIHANDLER_HPP__ #endif // __WIFIHANDLER_HPP__

View file

@ -15,39 +15,38 @@ static void tick(void) {
} }
} }
void wifiManagerCb(WiFiManager::Status status) { void set_blink_rate(float interval) {
if (ticker.active()) { if (ticker.active()) {
ticker.detach(); ticker.detach();
} }
if (interval > 0.0f) {
ticker.attach(interval, tick);
}
}
void wifiManagerCb(WiFiManager::Status status) {
if (status.mode == WiFiManager::Mode::CONNECTING) { if (status.mode == WiFiManager::Mode::CONNECTING) {
ticker.attach(TICKER_RATE_CONNECTING, tick); set_blink_rate(TICKER_RATE_CONNECTING);
Serial.println("CONNECTING");
} else if (status.mode == WiFiManager::Mode::SCANNING) { } else if (status.mode == WiFiManager::Mode::SCANNING) {
ticker.attach(TICKER_RATE_CONNECTING, tick); set_blink_rate(TICKER_RATE_CONNECTING);
Serial.println("SCANNING");
} else if (status.mode == WiFiManager::Mode::PORTAL) { } else if (status.mode == WiFiManager::Mode::PORTAL) {
ticker.attach(TICKER_RATE_CONFIG, tick); set_blink_rate(TICKER_RATE_CONFIG);
Serial.println("PORTAL");
} else if (status.mode == WiFiManager::Mode::ERASING) { } else if (status.mode == WiFiManager::Mode::ERASING) {
ticker.attach(TICKER_RATE_ERASE, tick); set_blink_rate(TICKER_RATE_ERASE);
Serial.println("ERASING");
} else if (status.mode == WiFiManager::Mode::CONNECTED) { } else if (status.mode == WiFiManager::Mode::CONNECTED) {
set_blink_rate(0.0f);
digitalWrite(LED_BUILTIN, HIGH); digitalWrite(LED_BUILTIN, HIGH);
Serial.println("CONNECTED");
} else if (status.mode == WiFiManager::Mode::DISCONNECTED) { } else if (status.mode == WiFiManager::Mode::DISCONNECTED) {
set_blink_rate(0.0f);
digitalWrite(LED_BUILTIN, LOW); digitalWrite(LED_BUILTIN, LOW);
Serial.println("DISCONNECTED");
} }
} }
void connect() { void connect() {
Serial.begin(115200); Serial.begin(115200);
// wifiManager.resetSettings(); wifiManager.configure("Claire", wifiManagerCb);
// 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 // fetches ssid and pass and tries to connect
// if it does not connect it starts an access point // if it does not connect it starts an access point
@ -64,5 +63,19 @@ void connect() {
Serial.println(WiFi.localIP()); Serial.println(WiFi.localIP());
// keep LED on // 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;
} }

View file

@ -7,6 +7,21 @@ DESPatch dESPatch;
void setup() { void setup() {
Serial.begin(115200); 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(); connect();
const char url[] = const char url[] =
@ -18,11 +33,10 @@ void setup() {
Serial.print("dESPatch.configure() returned with code "); Serial.print("dESPatch.configure() returned with code ");
Serial.println(x); Serial.println(x);
Serial.println(":-)");
} }
void loop(void) { void loop(void) {
Serial.println("hello :-)"); Serial.println("hello :-)");
dESPatch.checkForUpdate(true); dESPatch.checkForUpdate(true);
delay(500); delay(5000);
} }