Refactored and fixed power off handling. Still power off does power on again after deep sleep time is over (~1h).
This commit is contained in:
parent
f6849ea534
commit
97be2b6791
42
src/main.cpp
42
src/main.cpp
|
@ -212,6 +212,30 @@ void setup() {
|
||||||
pinMode(POWER_OFF_PIN, INPUT);
|
pinMode(POWER_OFF_PIN, INPUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void checkForPowerOffRequest() {
|
||||||
|
static unsigned long powerOffButtonPressed_ts = 0;
|
||||||
|
static bool powerOffRequested = false;
|
||||||
|
|
||||||
|
if (!digitalRead(POWER_OFF_PIN)) { // power off pressed
|
||||||
|
if (!powerOffRequested) {
|
||||||
|
Serial.println("Switching off? Keep button for 2 seconds to turn off.");
|
||||||
|
powerOffRequested = true;
|
||||||
|
powerOffButtonPressed_ts = millis();
|
||||||
|
}
|
||||||
|
if (millis() - powerOffButtonPressed_ts > 2000) {
|
||||||
|
// pressed for longer than 2 seconds, now turn off
|
||||||
|
ESP.deepSleep(ESP.deepSleepMax());
|
||||||
|
delay(200);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (powerOffRequested) {
|
||||||
|
powerOffRequested = false;
|
||||||
|
Serial.println("Power off cancelled.");
|
||||||
|
powerOffButtonPressed_ts = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool requestToRegisterSent = false;
|
bool requestToRegisterSent = false;
|
||||||
|
|
||||||
void loop(void)
|
void loop(void)
|
||||||
|
@ -226,23 +250,7 @@ void loop(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned long powerOffButtonPressed_ts = 0;
|
checkForPowerOffRequest();
|
||||||
static bool powerOffMessagePrinted = false;
|
|
||||||
if (!digitalRead(POWER_OFF_PIN)) {
|
|
||||||
if (!powerOffMessagePrinted) {
|
|
||||||
Serial.println("Switching off? Keep button for 2 seconds to turn off.");
|
|
||||||
powerOffMessagePrinted = true;
|
|
||||||
}
|
|
||||||
if (millis() - powerOffButtonPressed_ts > 2000) {
|
|
||||||
// pressed for longer than 2 seconds, now turn off
|
|
||||||
ESP.deepSleep(ESP.deepSleepMax());
|
|
||||||
delay(200);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
powerOffButtonPressed_ts = millis();
|
|
||||||
if (powerOffMessagePrinted) Serial.println("Power off cancelled.");
|
|
||||||
powerOffMessagePrinted = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(AUTOSTART_CLOCK_AFTER_ms)
|
#if defined(AUTOSTART_CLOCK_AFTER_ms)
|
||||||
#if AUTOSTART_CLOCK_AFTER_ms > 0
|
#if AUTOSTART_CLOCK_AFTER_ms > 0
|
||||||
|
|
Loading…
Reference in New Issue