#ifndef STASSID #define STASSID "****" #define STAPSK "****" #define PIN 5 // PIN an dem die Datenleitung angeschlossen ist #define NUM_LEDS 114 // Anpassen auf die Anzahl der LEDs, die _Du_ wirklich verwendest #endif #define MY_NTP_SERVER "ch.pool.ntp.org" #define MY_TZ "CET-1CEST,M3.5.0/02,M10.5.0/03" #include #include #include Adafruit_NeoPixel pixels(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800); byte alteMinute = 100; // Variabeln zum Speichern der aktuell angezeigten Minute time_t now; tm tm; void showTime() { time(&now); // read the current time localtime_r(&now, &tm); // update the structure tm with the current time //Serial.print("year:");s //Serial.print(tm.tm_year + 1900); // years since 1900 //Serial.print("\tmonth:"); //Serial.print(tm.tm_mon + 1); // January = 0 (!) //Serial.print("\tday:"); //Serial.print(tm.tm_mday); // day of month //Serial.print("\thour:"); //Serial.print(tm.tm_hour); // hours since midnight 0-23 //Serial.print("\tmin:"); //Serial.print(tm.tm_min); // minutes after the hour 0-59 //Serial.print("\tsec:"); //Serial.print(tm.tm_sec); // seconds after the minute 0-61* //Serial.print("\twday"); //Serial.print(tm.tm_wday); // days since Sunday 0-6 /* if (tm.tm_isdst == 1) // Daylight Saving Time flag Serial.print("\tDST"); else Serial.print("\tstandard"); Serial.println(); */ } void(* resetFunc) (void) = 0; void setup() { Serial.begin(115200); Serial.println("\nNTP TZ DST - bare minimum"); configTime(MY_TZ, MY_NTP_SERVER); // --> Here is the IMPORTANT ONE LINER needed in your sketch! // start network WiFi.persistent(false); WiFi.mode(WIFI_STA); WiFi.begin(STASSID, STAPSK); while (WiFi.status() != WL_CONNECTED) { delay(200); Serial.print ( "." ); } Serial.println("\nWiFi connected"); // by default, the NTP will be started after 60 secs pixels.begin(); } void loop() { if (tm.tm_min != alteMinute) { // Nach verändern der Minute, erneut aufrufen alteMinute = tm.tm_min; // Aktuelle Minute in alteMinute schreiben Serial.print("\thour:"); Serial.print(tm.tm_hour); // hours since midnight 0-23 Serial.print("\tmin:"); Serial.print(tm.tm_min); zeitauswerten(); // Neue Uhrzeit auf den Buffer der Stripes schreiben pixels.show(); // Neue gesetze Pixels anzeigen if (alteMinute == 55 & tm.tm_hour == 12 & tm.tm_sec <= 5){ Serial.println("Reset wird ausgeführt"); resetFunc(); } } showTime(); } // Funktion zum Aufbereiten der Uhrzeit void zeitauswerten(void) { // Zeiten in Variabeln schreiben byte h = tm.tm_hour; byte m = tm.tm_min; pixels.clear(); // Alle Pixels auf "aus" Serial.print(" Ausgabe: Es ist"); pixels.setPixelColor(99, 0, 150, 0); pixels.setPixelColor(100, 0, 150, 0); pixels.setPixelColor(102, 0, 150, 0); pixels.setPixelColor(103, 0, 150, 0); pixels.setPixelColor(104, 0, 150, 0); // Auswerten der Minuten if (m > 4 && m < 10) { //Fünf nach fuenf(); nach(); Serial.print(" fünf nach"); } else if (m > 9 && m < 15) { //Zehn nach zehn(); nach(); Serial.print(" zehn nach"); } else if (m > 14 && m < 20) { //Viertel nach viertel(); nach(); Serial.print(" viertel nach"); } else if (m > 19 && m < 25) { //Zwanzig nach zwanzig(); nach(); Serial.print(" zwanzig nach"); } else if (m > 24 && m < 30) { //Fünf vor halb fuenf(); halb(); vor(); Serial.print(" fünf vor halb"); } else if (m > 29 && m < 35) { //halb halb(); Serial.print(" halb"); } else if (m > 34 && m < 40) { //Fünf nach halb fuenf(); halb(); nach(); Serial.print(" fünf nach halb"); } else if (m > 39 && m < 45) { //Zwanzig vor zwanzig(); vor(); Serial.print(" zwanzig vor"); } else if (m > 44 && m < 50) { //Viertel vor viertel(); vor(); Serial.print(" viertel vor"); } else if (m > 49 && m < 55) { //Zehn vor zehn(); vor(); Serial.print(" zehn vor"); } else if (m >= 55 && m < 60) { //Fünf vor fuenf(); vor(); Serial.print(" fünf vor"); } // Wenn die Minuten größer oder gleich 25 sind // Wird die Stunde um +1 erhöht if (m >= 25) h++; // Auswerten der Stunde if (h == 12 || h == 0 || h == 24) { // Zwoelf zwoelf(); Serial.print(" Zwölf "); } else if (h == 13 || h == 1) { // Eins if (m > 4) { // Zeige EINS an eins(); Serial.print(" Eins "); } else { // Zeige EIN an ein(); Serial.print(" Ein "); } } else if (h == 14 || h == 2) { // Zwei zwei(); Serial.print(" Zwei "); } else if (h == 15 || h == 3) { // Drei drei(); Serial.print(" Drei "); } else if (h == 16 || h == 4) { // Vier vier(); Serial.print(" Vier "); } else if (h == 17 || h == 5) { // Fuenf fuenfh(); Serial.print(" Fünf "); } else if (h == 18 || h == 6) { // Sechs sechs(); Serial.print(" Sechs "); } else if (h == 19 || h == 7) { // Sieben sieben(); Serial.print(" Sieben "); } else if (h == 20 || h == 8) { // Acht acht(); Serial.print(" Acht "); } else if (h == 21 || h == 9) { // Neun neun(); Serial.print(" Neun "); } else if (h == 22 || h == 10) { // Zehn zehnh(); Serial.print(" Zehn "); } else if (h == 23 || h == 11) { // Elf elf(); Serial.print(" Elf "); } // "Uhr" anzeigen zur vollen Stunde if (m >= 0 && m < 5) { // Uhr uhr(); Serial.print("Uhr"); } if (m == 1 || m == 6 || m == 11 || m == 16 || m == 21 || m == 26 || m == 31 || m == 36 || m == 41 || m == 46 || m == 51 || m == 56 || m == 2 || m == 7 || m == 12 || m == 17 || m == 22 || m == 27 || m == 32 || m == 37 || m == 42 || m == 47 || m == 52 || m == 57 || m == 3 || m == 8 || m == 13 || m == 18 || m == 23 || m == 28 || m == 33 || m == 38 || m == 43 || m == 48 || m == 53 || m == 58 || m == 4 || m == 9 || m == 14 || m == 19 || m == 24 || m == 29 || m == 34 || m == 39 || m == 44 || m == 49 || m == 54 || m == 59 ) { minute1(); Serial.print(" ; minute1"); } if (m == 2 || m == 7 || m == 12 || m == 17 || m == 22 || m == 27 || m == 32 || m == 37 || m == 42 || m == 47 || m == 52 || m == 57 || m == 3 || m == 8 || m == 13 || m == 18 || m == 23 || m == 28 || m == 33 || m == 38 || m == 43 || m == 48 || m == 53 || m == 58 || m == 4 || m == 9 || m == 14 || m == 19 || m == 24 || m == 29 || m == 34 || m == 39 || m == 44 || m == 49 || m == 54 || m == 59 ) { minute2(); Serial.print(" ; minute2"); } if (m == 3 || m == 8 || m == 13 || m == 18 || m == 23 || m == 28 || m == 33 || m == 38 || m == 43 || m == 48 || m == 53 || m == 58 || m == 4 || m == 9 || m == 14 || m == 19 || m == 24 || m == 29 || m == 34 || m == 39 || m == 44 || m == 49 || m == 54 || m == 59 ) { minute3(); Serial.print(" ; minute3"); } if (m == 4 || m == 9 || m == 14 || m == 19 || m == 24 || m == 29 || m == 34 || m == 39 || m == 44 || m == 49 || m == 54 || m == 59 ) { minute4(); Serial.print(" ; minute4"); } Serial.println(); // Absatz erzeugen //Serial.printf("NTP: %02d:%02d Uhr", tm.tm_hour, tm.tm_min); // Uhrzeit } // Funktionen zum Setzen der einzelnen LEDs void fuenf (void) { pixels.setPixelColor(106, 0, 150, 0); pixels.setPixelColor(107, 0, 150, 0); pixels.setPixelColor(108, 0, 150, 0); pixels.setPixelColor(109, 0, 150, 0); } void zehn (void) { pixels.setPixelColor(98, 0, 150, 0); pixels.setPixelColor(97, 0, 150, 0); pixels.setPixelColor(96, 0, 150, 0); pixels.setPixelColor(95, 0, 150, 0); } void zwanzig (void) { pixels.setPixelColor(94, 0, 150, 0); pixels.setPixelColor(93, 0, 150, 0); pixels.setPixelColor(92, 0, 150, 0); pixels.setPixelColor(91, 0, 150, 0); pixels.setPixelColor(90, 0, 150, 0); pixels.setPixelColor(89, 0, 150, 0); pixels.setPixelColor(88, 0, 150, 0); } /*void drei (void) { pixels.setPixelColor(, 0, 150, 0); pixels.setPixelColor(, 0, 150, 0); pixels.setPixelColor(, 0, 150, 0); pixels.setPixelColor(, 0, 150, 0); }*/ void viertel (void) { pixels.setPixelColor(87, 0, 150, 0); pixels.setPixelColor(86, 0, 150, 0); pixels.setPixelColor(85, 0, 150, 0); pixels.setPixelColor(84, 0, 150, 0); pixels.setPixelColor(83, 0, 150, 0); pixels.setPixelColor(82, 0, 150, 0); pixels.setPixelColor(81, 0, 150, 0); } void vor (void) { pixels.setPixelColor(76, 0, 150, 0); pixels.setPixelColor(75, 0, 150, 0); pixels.setPixelColor(74, 0, 150, 0); } void nach (void) { pixels.setPixelColor(69, 0, 150, 0); pixels.setPixelColor(68, 0, 150, 0); pixels.setPixelColor(67, 0, 150, 0); pixels.setPixelColor(66, 0, 150, 0); } void halb (void) { pixels.setPixelColor(58, 0, 150, 0); pixels.setPixelColor(57, 0, 150, 0); pixels.setPixelColor(56, 0, 150, 0); pixels.setPixelColor(55, 0, 150, 0); } void elf (void) { pixels.setPixelColor(60, 0, 150, 0); pixels.setPixelColor(61, 0, 150, 0); pixels.setPixelColor(62, 0, 150, 0); } void fuenfh (void) { pixels.setPixelColor(62, 0, 150, 0); pixels.setPixelColor(63, 0, 150, 0); pixels.setPixelColor(64, 0, 150, 0); pixels.setPixelColor(65, 0, 150, 0); } void eins (void) { pixels.setPixelColor(54, 0, 150, 0); pixels.setPixelColor(53, 0, 150, 0); pixels.setPixelColor(52, 0, 150, 0); pixels.setPixelColor(51, 0, 150, 0); } void ein (void) { pixels.setPixelColor(54, 0, 150, 0); pixels.setPixelColor(53, 0, 150, 0); pixels.setPixelColor(52, 0, 150, 0); } void zwei (void) { pixels.setPixelColor(47, 0, 150, 0); pixels.setPixelColor(46, 0, 150, 0); pixels.setPixelColor(45, 0, 150, 0); pixels.setPixelColor(44, 0, 150, 0); } void drei (void) { pixels.setPixelColor(36, 0, 150, 0); pixels.setPixelColor(35, 0, 150, 0); pixels.setPixelColor(34, 0, 150, 0); pixels.setPixelColor(33, 0, 150, 0); } void vier (void) { pixels.setPixelColor(43, 0, 150, 0); pixels.setPixelColor(42, 0, 150, 0); pixels.setPixelColor(41, 0, 150, 0); pixels.setPixelColor(40, 0, 150, 0); } void sechs (void) { pixels.setPixelColor(32, 0, 150, 0); pixels.setPixelColor(31, 0, 150, 0); pixels.setPixelColor(30, 0, 150, 0); pixels.setPixelColor(29, 0, 150, 0); pixels.setPixelColor(28, 0, 150, 0); } void acht (void) { pixels.setPixelColor(25, 0, 150, 0); pixels.setPixelColor(24, 0, 150, 0); pixels.setPixelColor(23, 0, 150, 0); pixels.setPixelColor(22, 0, 150, 0); } void sieben (void) { pixels.setPixelColor(16, 0, 150, 0); pixels.setPixelColor(15, 0, 150, 0); pixels.setPixelColor(14, 0, 150, 0); pixels.setPixelColor(13, 0, 150, 0); pixels.setPixelColor(12, 0, 150, 0); pixels.setPixelColor(11, 0, 150, 0); } void zwoelf (void) { pixels.setPixelColor(17, 0, 150, 0); pixels.setPixelColor(18, 0, 150, 0); pixels.setPixelColor(19, 0, 150, 0); pixels.setPixelColor(20, 0, 150, 0); pixels.setPixelColor(21, 0, 150, 0); } void zehnh (void) { pixels.setPixelColor(10, 0, 150, 0); pixels.setPixelColor(9, 0, 150, 0); pixels.setPixelColor(8, 0, 150, 0); pixels.setPixelColor(7, 0, 150, 0); } void neun (void) { pixels.setPixelColor(7, 0, 150, 0); pixels.setPixelColor(6, 0, 150, 0); pixels.setPixelColor(5, 0, 150, 0); pixels.setPixelColor(4, 0, 150, 0); } void uhr (void) { pixels.setPixelColor(2, 0, 150, 0); pixels.setPixelColor(1, 0, 150, 0); pixels.setPixelColor(0, 0, 150, 0); } void minute1 (void) { pixels.setPixelColor(112, 0, 150, 0); } void minute2 (void) { pixels.setPixelColor(111, 0, 150, 0); } void minute3 (void) { pixels.setPixelColor(114, 0, 150, 0); } void minute4 (void) { pixels.setPixelColor(113, 0, 150, 0); }