#include <WiFi.h>
#include "esp_sleep.h"
#include "wifi_handler.h"
extern bool timeSynched;
extern ESP32Time *rtc;
volatile bool disconnectRequested = false;
volatile bool prDateTimeRequested = false;
void IRAM_ATTR printDateTime_isr() { prDateTimeRequested = true; }
void setup() {
Serial.begin(115200);
setupWiFi(); // Handle SNTP too
// Print Date/Time
pinMode(33, INPUT_PULLDOWN);
attachInterrupt(digitalPinToInterrupt(33), printDateTime_isr, RISING);
esp_sleep_enable_timer_wakeup(60*1000000); // 60 seconds
esp_sleep_enable_ext0_wakeup((gpio_num_t)33, HIGH);
}
void loop() {
if (disconnectRequested) {
disconnectRequested = false; // Clear the flag
Serial.println("Button pressed. Disconnecting WiFi...");
WiFi.disconnect();
}
if (timeSynched && prDateTimeRequested) {
prDateTimeRequested = false;
Serial.println(rtc->getTimeDate());
}
if (timeSynched) Serial.print("+");
else Serial.print(".");
Serial.print("Entering light sleep...");
esp_light_sleep_start();
Serial.println("Woke up!");
}
Print Date/Time