Skocz do zawartości

Zegar LED na sterowniku MAX7219 oraz ESP8266


enclude

Pomocna odpowiedź

1 minutę temu, ethanak napisał:

A jaki sens ma tworzenie czegokolwiek, jak gotowego rozwiązania nikt nie przyniósł na tacy?

Ja np. wewnętrznie trzymam czas w UTC, a dopiero przy przeliczaniu na tm uwzględniam offset zależnie od daty. Pewnie istnieją gotowe rozwiązania, ale nie chce mi się szukać...

 

 

Inaczej - projekt jest świetny, tylko ten czas dla naszej strefy nie wzięty pod uwagę.

A ten polski adres NTP nie uwzględni przesunięcia? Bo jeśli tak to to załatwia wszystko.

Link do komentarza
Share on other sites

2 minuty temu, ethanak napisał:

Pewnie istnieją gotowe rozwiązania, ale nie chce mi się szukać...

Ten krótki artykuł pokazuje, że problem aktualizacji czasu z sieci z uwzględnieniem czasu letniego / zimowego można zamknąć w kilku linijkach - zobacz.

Link do komentarza
Share on other sites

9 minut temu, Belferek napisał:

Ten krótki artykuł pokazuje

A, tak... artykuł mówi:

NTP is part of the Arduino core for the ESP8266 since 2019.

Ja swój zegarek robiłem wcześniej.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

21 minut temu, Belferek napisał:

metoda jest rewelacyjna

Nie przeczę 🙂

W ogóle te fajne biblioteki oszczędzają zabawy z komunikacją UDP z serwerem NTP... ale dzięki temu że wtedy ich nie było potrafię sprawdzić godzinę bez bibliotek 🙂

 

  • Lubię! 1
Link do komentarza
Share on other sites

3 godziny temu, ethanak napisał:

W ogóle te fajne biblioteki oszczędzają zabawy z komunikacją UDP z serwerem NTP

O jakich bibliotekach mówisz? Podany artykuł korzysta jedynie z ESP8266Wifi.h i time.h

Link do komentarza
Share on other sites

8 godzin temu, Belferek napisał:

Tak jak i ja, ale dziś temat wrócił. Opisana we wspomnianym artykule metoda jest rewelacyjna - działa super.

I z tą metodą czas zmienia się idealnie w czasie zmian czasu? Nie ukrywam, że czegoś takiego również poszukuję, lecz, żeby to sprawdzić musiałbym czekać z pół roku 😉 

Link do komentarza
Share on other sites

34 minuty temu, MisiekD napisał:

I z tą metodą czas zmienia się idealnie w czasie zmian czasu?

Oczywiście, że tak! Sam możesz poeksperymentować z linią:

#define MY_TZ "CET-1CEST,M3.5.0/02,M10.5.0/03"

To tu jest zdefiniowane kiedy ma następować zmiana czasu:

M3, M10 - marzec, październik
5 - ostatni tydzień miesiąca
0 - niedziela
/02 /03 - godzina

Przecież możesz zamienić dla eksperymentu czas zmiany na czas zimowy czyli np.  M10.5.0/03 na M11.3.1/21 co powinno spowodować "przejściem na czas zimowy" dziś (14.11.2022, poniedziałek) o godz. 21:00 :-).

Skopiuj sobie podany w artykule kod i uruchom to sam zobaczysz.

Warto poczytać ten artykuł, który wyjaśnia co te symbole znaczą.

Po eksperymentach wróć do właściwych ustawień.

  • Lubię! 1
Link do komentarza
Share on other sites

2 godziny temu, ethanak napisał:

To sprawdź co będzie w now.

No chyba mój błąd - źle określiłem numer tygodnia. No ale pisałem o eksperymentach :-). W każdym bądź razie wpis:

#define MY_TZ "CET-1CEST,M3.5.0/02,M11.2.1/23:40:0"

Powoduje, że "zegarek startuje z czasem letnim", a o 23:40 (14.11.2022) "przechodzi na czas zimowy".

Z takim ustawieniem program uruchomiłem o 22:34 (według czasu PC) i w serialu widzę:
 

Brak polaczenia z WiFi:
1970-01-01    01:00:10    wday 4    czas zimowy

Polaczenie z serwerem NTP!
WiFi OK:192.168.0.18
2022-11-14    23:34:26    wday 1    czas letni (DST)

Jest ok, gdyż zgodnie z moim błędnym ustawieniem końca czasu letniego mam dodaną godzinę do czasu pobranego przez NTP.
Przychodzi odpowiednie pora i:

WiFi OK:192.168.0.18
2022-11-14	23:39:59	wday 1	czas letni (DST)
WiFi OK:192.168.0.18
2022-11-14	22:40:00	wday 1	czas zimowy
WiFi OK:192.168.0.18
2022-11-14	22:40:01	wday 1	czas zimowy

Jak widać nastąpiła zmiana czasu. Tak więc mechanizm działa.  To było ustawienie "eksperymentalne". Prawidłowe dla naszej strefy czasowej to oczywiście:

#define MY_TZ "CET-1CEST,M3.5.0/02,M10.5.0/03"

Pytanie tylko dlaczego 14.11.2022 jest w 2, a nie w 3 tygodniem miesiąca?

Edytowano przez Belferek
  • Lubię! 1
Link do komentarza
Share on other sites

10 godzin temu, Belferek napisał:

Prawidłowe dla naszej strefy czasowej to oczywiście:

#define MY_TZ "CET-1CEST,M3.5.0/02,M10.5.0/03"

Rewelka! To powinno być gdzieś podpięte, bo na pewno nie jednemu się przyda 🙂 

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.