Wpis z mikrobloga

Słuchajcie zrobiłem zegar przez ntp na esp8266, bez modułu rtc (po prostu pobiera co x czasu aktualną godzinę i tyle) i wczoraj zauważyłem że zegar gdy nie ma połączenia z siecią wi fi dalej działa poprawnie. Zastanawia mnie jakim cudem?! (Znaczy nie narzekam ale dlaczego?) Ktoś mi to wytłumaczy?)
Przypominam że zegar jest napisany że gdy godzina x (pobrana z ntc) = wyświetlenie numeru.
Zaznaczam że w tej dziedzinie sieci itp. jestem totalnym dzbanem.
Wiem że przydałby się kod ale nie mam teraz jak wysłać ( ͡° ʖ̯ ͡°)
#elektronika #arduino #esp8266
  • 7
@DziuplastyWunfelOAksamitnejCerze: RTC służy do pamiętania godziny przy braku prądu - moduł RTC ma bateryjkę swoją osobną.

To, co znasz jako kryształ/kwarc/oscylator/rezonator lub częstotliwość taktowania (zegara), to jest coś, co wystarczy, aby w miarę dokładnie oszacować upływ jednej sekundy, ale będzie ten czas powoli się odsuwał względem wskazania czasu UTC bez zewnętrznej ingerencji polegającej na nastawieniu/przestawieniu za jakiś czas.
https://pl.wikipedia.org/wiki/Rezonator_kwarcowy
https://pl.wikipedia.org/wiki/Zegar_kwarcowy

Np. kuchenki/AGD/mikrofalówki w swoich wersjach podstawowych nie muszą mieć swojego oscylatora,
Np. kuchenki/AGD/mikrofalówki w swoich wersjach podstawowych nie muszą mieć swojego oscylatora, bo bazują na wyzwalaniu reakcji opartej o zmiany/częstotliwości prądu przemiennego 50Hz w Europie.


Więc jeżeli coś się dzieje nie tak w sieci energetycznej w jakimś miejscu w Europie, to te zegarki w sprzęcie AGD znacząco odbiegają od czasu nominalnego :P
https://www.crazynauka.pl/europejskie-zegary-zgubily-6-minut-co-sie-stalo/
https://www.money.pl/gospodarka/spadek-czestotliwosci-w-europejskiej-sieci-elektroenergetycznej-trwa-dochodzenie-6595380513741632a.html

czas powoli się odsuwał względem wskazania czasu UTC

To się nazywa dryftem zegara, a czas UTC, to uśredniony
NTP to protokół, którego zadaniem jest kompensacja dryftu zegara, aby wszystkie zegary na świecie wskazywały czas UTC ze swojej strefy czasowej.


Oraz bez potrzeby posiadania odbiornika GPS/GNSS. Odbieranie GPS/GNSS wymagane jest tylko przy serwerze NTP Stratum-1:
https://pl.wikipedia.org/wiki/Network_Time_Protocol#/media/Plik:Network_Time_Protocol_servers_and_clients.svg

A reszta urządzeń łączy się do nich przez sieć - kiedyś brak dostępu do GPS/GNSS to było coś normalnego, a dzisiaj jest wręcz czymś nienormalnym, bo każdy ma smartfona.

Smartfon w sumie jest Stratum-1 w
@DziuplastyWunfelOAksamitnejCerze: #!$%@?ąc od prawdziwych, ale nieco nieprzydatnych informacji, które przytoczył kolega powyżej - najprawdopodobniej użyłeś jakiejś biblioteki, która sama sobie radzi z utrzymaniem poprawnego czasu. Ponieważ nie masz RTC z podtrzymaniem bateryjnym, po włączeniu urządzenia trzeba go tylko zainicjowac poprawnym czasem (co robisz w swoim kodzie pobierając czas z sieci) i tyle.
@patrolez: JPRD, zamiast pisać taki elaborat, wystarczyło przeczytać ciut uważniej, o co kolega pyta. Choć pierwsze zdanie :)

@DziuplastyWunfelOAksamitnejCerze: twoja biblioteka od NTP najprawdopodobniej sama tworzy zegar i sama go "odlicza", a Ty pobierając czas z NTP tak naprawdę pobierasz wartość tego wewnętrznego zegara z biblioteki. Gdy jest dostęp do serwera NTP, biblioteka to sama sobie koryguje, gdy nie ma - po prostu nie koryguje, ale "cyka" dalej.