mirror of
https://github.com/gunner47/GyverLamp.git
synced 2025-08-07 17:10:30 +03:00
Добавлен переход на летнее/зимнее время; Добавлен эффект Белый огонь; Исправлены ошибки
This commit is contained in:
71
libraries/Timezone/examples/Clock/Clock.ino
Normal file
71
libraries/Timezone/examples/Clock/Clock.ino
Normal file
@@ -0,0 +1,71 @@
|
||||
// Arduino Timezone Library Copyright (C) 2018 by Jack Christensen and
|
||||
// licensed under GNU GPL v3.0, https://www.gnu.org/licenses/gpl.html
|
||||
//
|
||||
// Arduino Timezone Library example sketch.
|
||||
// Self-adjusting clock for one time zone.
|
||||
// TimeChangeRules can be hard-coded or read from EEPROM, see comments.
|
||||
// Jack Christensen Mar 2012
|
||||
|
||||
#include <Timezone.h> // https://github.com/JChristensen/Timezone
|
||||
|
||||
// US Eastern Time Zone (New York, Detroit)
|
||||
TimeChangeRule myDST = {"EDT", Second, Sun, Mar, 2, -240}; // Daylight time = UTC - 4 hours
|
||||
TimeChangeRule mySTD = {"EST", First, Sun, Nov, 2, -300}; // Standard time = UTC - 5 hours
|
||||
Timezone myTZ(myDST, mySTD);
|
||||
|
||||
// If TimeChangeRules are already stored in EEPROM, comment out the three
|
||||
// lines above and uncomment the line below.
|
||||
//Timezone myTZ(100); // assumes rules stored at EEPROM address 100
|
||||
|
||||
TimeChangeRule *tcr; // pointer to the time change rule, use to get TZ abbrev
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
setTime(myTZ.toUTC(compileTime()));
|
||||
//setTime(01, 55, 00, 11, 3, 2012); //another way to set the time (hr,min,sec,day,mnth,yr)
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
time_t utc = now();
|
||||
time_t local = myTZ.toLocal(utc, &tcr);
|
||||
Serial.println();
|
||||
printDateTime(utc, "UTC");
|
||||
printDateTime(local, tcr -> abbrev);
|
||||
delay(10000);
|
||||
}
|
||||
|
||||
// Function to return the compile date and time as a time_t value
|
||||
time_t compileTime()
|
||||
{
|
||||
const time_t FUDGE(10); // fudge factor to allow for compile time (seconds, YMMV)
|
||||
const char *compDate = __DATE__, *compTime = __TIME__, *months = "JanFebMarAprMayJunJulAugSepOctNovDec";
|
||||
char chMon[3], *m;
|
||||
tmElements_t tm;
|
||||
|
||||
strncpy(chMon, compDate, 3);
|
||||
chMon[3] = '\0';
|
||||
m = strstr(months, chMon);
|
||||
tm.Month = ((m - months) / 3 + 1);
|
||||
|
||||
tm.Day = atoi(compDate + 4);
|
||||
tm.Year = atoi(compDate + 7) - 1970;
|
||||
tm.Hour = atoi(compTime);
|
||||
tm.Minute = atoi(compTime + 3);
|
||||
tm.Second = atoi(compTime + 6);
|
||||
time_t t = makeTime(tm);
|
||||
return t + FUDGE; // add fudge factor to allow for compile time
|
||||
}
|
||||
|
||||
// format and print a time_t value, with a time zone appended.
|
||||
void printDateTime(time_t t, const char *tz)
|
||||
{
|
||||
char buf[32];
|
||||
char m[4]; // temporary storage for month string (DateStrings.cpp uses shared buffer)
|
||||
strcpy(m, monthShortStr(month(t)));
|
||||
sprintf(buf, "%.2d:%.2d:%.2d %s %.2d %s %d %s",
|
||||
hour(t), minute(t), second(t), dayShortStr(weekday(t)), day(t), m, year(t), tz);
|
||||
Serial.println(buf);
|
||||
}
|
||||
|
Reference in New Issue
Block a user