Uzyskiwanie rzeczywistego czasu za pomocą NTP/RTC
Oznaczać dane dokładnymi datami i godzinami.
Uzyskiwanie rzeczywistego czasu za pomocą NTP/RTC to bezpłatna lekcja Arduino & IoT Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Arduino & IoT Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Arduino & IoT Academy zawiera 4 lekcji w sumie.
Dlaczego czas ma znaczenie
Odczyt taki jak „24,3 C” to tylko połowa informacji. Aby prawidłowo interpretować zapisane dane, każda próbka potrzebuje znacznika czasu, który dokładnie określa, kiedy została pobrana. ⏰
Arduino nie ma zegara
Arduino zapomina datę natychmiast po odłączeniu zasilania. Zlicza tylko milisekundy od uruchomienia, więc nie wie, która jest godzina rzeczywistego czasu zegarowego.
Dwa sposoby uzyskania czasu
Czas można pobrać z internetu za pomocą NTP albo przechowywać lokalnie w układzie RTC z podtrzymaniem bateryjnym. Każde rozwiązanie pasuje do innej sytuacji.
Działanie NTP
NTP (Network Time Protocol) pyta internetowy serwer czasu o bieżącą chwilę. Jest dokładny i bezpłatny, ale do działania wymaga aktywnego połączenia WiFi.
Pytanie serwera NTP
W przypadku ESP32 jedna linia konfiguracji wskazuje publiczny serwer czasu oraz przesunięcie strefy czasowej. Następnie płytka synchronizuje się automatycznie.
configTime(0, 0, "pool.ntp.org");Odczyt zsynchronizowanego czasu
Po synchronizacji pobiera się bieżący czas do struktury i odczytuje jej pola. Dzięki temu można uzyskać rok, miesiąc, dzień, godzinę i minutę, aby oznaczyć dane.
struct tm now;
getLocalTime(&now);Działanie RTC
Moduł RTC, taki jak DS3231, odmierza czas dzięki niewielkiej baterii pastylkowej, nawet gdy Arduino jest całkowicie wyłączone. Sieć nie jest do tego potrzebna.
Podłączanie RTC
Większość modułów RTC komunikuje się przez I2C, dlatego wystarczą cztery przewody: zasilanie, masa, SDA i SCL. Dzięki temu konstrukcja pozostaje bardzo prosta.
Odczyt z RTC
Za pomocą biblioteki RTClib pobiera się bieżącą chwilę jako obiekt DateTime, a następnie odczytuje jego pola, tak jak w przypadku wersji z NTP.
DateTime now = rtc.now();
int h = now.hour();NTP czy RTC?
Wybierz NTP, gdy urządzenie jest stale online i nie chcesz stosować dodatkowych elementów. Wybierz RTC dla urządzeń offline lub zasilanych baterią, które nadal muszą znać właściwy czas.
Połącz zalety obu rozwiązań
W wielu solidnych projektach stosuje się oba rozwiązania: RTC odmierza czas offline, a NTP delikatnie koryguje jego niewielki dryf, gdy dostępne jest WiFi. 🌐
Szybkie sprawdzenie
Które źródło czasu działa również bez połączenia z internetem?
Podsumowanie
Arduino nie ma prawdziwego zegara, dlatego czas należy dodać za pomocą NTP online lub RTC offline. Od tej pory każdy zapisany odczyt może zawierać dokładny znacznik czasu. ✅
Ucz się C++ dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Uzyskiwanie rzeczywistego czasu za pomocą NTP/RTC” jest bezpłatna?
Tak — pełny tekst „Uzyskiwanie rzeczywistego czasu za pomocą NTP/RTC” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Arduino & IoT Academy, przejdź na CoddyKit PRO. Kurs Arduino & IoT Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Uzyskiwanie rzeczywistego czasu za pomocą NTP/RTC”?
Oznaczać dane dokładnymi datami i godzinami. Ćwiczysz Arduino & IoT Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Arduino & IoT Academy?
Nie wymagamy żadnego doświadczenia. Arduino & IoT Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Uzyskiwanie rzeczywistego czasu za pomocą NTP/RTC”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Arduino & IoT Academy?
Tak. Każda lekcja Arduino & IoT Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Uzyskiwanie rzeczywistego czasu za pomocą NTP/RTC
- Zapisywanie CSV na karcie SD
- Buforowanie i grupowanie przesyłania
- Wizualizacja zapisanych danych