76 lines
1.4 KiB
C++
76 lines
1.4 KiB
C++
#include <WiFi.h>
|
|
#include <NTPClient.h>
|
|
#include <WiFiUdp.h>
|
|
|
|
const char* ssid = "Your WiFi SSID";
|
|
const char* password = "Your WiFi Password";
|
|
|
|
const int notify_hour = 20;
|
|
const int notify_minute = 0;
|
|
|
|
const int local_time_offset = 2 * 3600;
|
|
|
|
const int led = 1;
|
|
|
|
bool flashing = false;
|
|
bool skip = false;
|
|
|
|
WiFiUDP ntpUDP;
|
|
NTPClient timeClient(ntpUDP);
|
|
|
|
bool check_time() {
|
|
while(!timeClient.update()) {
|
|
timeClient.forceUpdate();
|
|
}
|
|
|
|
int hours = timeClient.getHours();
|
|
int minutes = timeClient.getMinutes();
|
|
|
|
if (skip && hours < notify_hour) skip = false;
|
|
|
|
if (!skip && (hours > notify_hour || (hours == notify_hour && minutes >= notify_minute))) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
void setup() {
|
|
// Serial.begin(115200);
|
|
pinMode(led, OUTPUT);
|
|
digitalWrite(led, HIGH);
|
|
|
|
// Serial.print("Connecting to ");
|
|
// Serial.println(ssid);
|
|
WiFi.begin(ssid, password);
|
|
|
|
while (WiFi.status() != WL_CONNECTED) {
|
|
delay(500);
|
|
// Serial.print(".");
|
|
}
|
|
|
|
/* Serial.println("");
|
|
Serial.println("WiFi connected.");
|
|
Serial.print("IP address: ");
|
|
Serial.println(WiFi.localIP()); */
|
|
|
|
timeClient.begin();
|
|
timeClient.setTimeOffset(local_time_offset);
|
|
|
|
if (check_time()) skip = true;
|
|
}
|
|
|
|
void loop() {
|
|
if (!flashing) {
|
|
flashing = check_time();
|
|
if (!flashing) delay(30000);
|
|
return;
|
|
}
|
|
|
|
if (!skip) {
|
|
digitalWrite(led, LOW);
|
|
delay(500);
|
|
digitalWrite(led, HIGH);
|
|
delay(500);
|
|
}
|
|
}
|