Added deep sleep to save battery -- but this solution is not clean, as deep sleep is possible for an hour only and peripherals (display) is not turned off.
This commit is contained in:
parent
2eda00c694
commit
6eeb9177f9
23
src/main.cpp
23
src/main.cpp
|
@ -16,6 +16,7 @@
|
||||||
#include "radio.h"
|
#include "radio.h"
|
||||||
|
|
||||||
#define AUTOSTART_CLOCK_AFTER_ms 10000
|
#define AUTOSTART_CLOCK_AFTER_ms 10000
|
||||||
|
#define POWER_OFF_PIN 0
|
||||||
|
|
||||||
//define your default values here, if there are different values in config.json, they are overwritten.
|
//define your default values here, if there are different values in config.json, they are overwritten.
|
||||||
//length should be max size + 1
|
//length should be max size + 1
|
||||||
|
@ -134,9 +135,12 @@ void setupWifiConnection() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
|
// if coming from deep sleep, we just go to sleep again
|
||||||
|
|
||||||
// put your setup code here, to run once:
|
// put your setup code here, to run once:
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
Serial.println("Starting *** FastclockMasterESP8266");
|
Serial.println("Starting *** FastclockMasterESP8266");
|
||||||
|
Serial.println(ESP.getResetReason());
|
||||||
display.begin();
|
display.begin();
|
||||||
display.showLog();
|
display.showLog();
|
||||||
|
|
||||||
|
@ -205,6 +209,7 @@ void setup() {
|
||||||
|
|
||||||
radio.begin();
|
radio.begin();
|
||||||
fastclock.begin();
|
fastclock.begin();
|
||||||
|
pinMode(POWER_OFF_PIN, INPUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool requestToRegisterSent = false;
|
bool requestToRegisterSent = false;
|
||||||
|
@ -221,6 +226,24 @@ void loop(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static unsigned long powerOffButtonPressed_ts = 0;
|
||||||
|
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
|
||||||
static unsigned long autostart_ms = 0;
|
static unsigned long autostart_ms = 0;
|
||||||
|
|
Loading…
Reference in New Issue