Obsah:
Video: Presné, rýchle a automatické nastavenie DS3231 RTC (hodín v reálnom čase) pomocou Javy (+-1 s): 3 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Tento návod vám ukáže, ako nastaviť čas na hodinách reálneho času DS3231 pomocou Arduina a malej Java aplikácie, ktorá používa sériové pripojenie Arduina.
Základná logika tohto programu:
1. Arduino pošle sériovú požiadavku.
2. Program Java vyzerá, aký deň/mesiac/… arduino požadoval a odoslal relevantné údaje späť.
3. Po zhromaždení všetkých potrebných informácií arduino uloží údaje do DS3231.
Modul DS3231 RTC
Modul RTC DS3231 je relatívne lacný modul RTC s vysokou presnosťou. (niekoľko minút za rok)
Existujú rôzne odrody, ktorých základná funkčnosť je rovnaká iba s malými rozdielmi.
Podrobné porovnanie nájdete tu: Porovnanie DS323x | maximintegrated.com
Kúpiť DS3231: DS3231 | ebay.com
Dátový list: DS3231 Dátový list | maximintegrated.com
Dátový list: DS1307 Technický list | maximintegrated.com
Potrebné diely
1x Arduino (Nano, Uno, MEGA atď.)
4x prepojovacie vodiče
1x modul DS3231 (modul DS1307)
Krok 1: Zapojenie
Pripojte DS3231 tak, ako je to znázornené na obrázku vyššie. Samozrejme to môžete urobiť bez použitia breadboardu, ale bude to o niečo ťažšie. Na ukážku som použil Arduino Nano, ale fungovať by malo aj Uno alebo MEGA. (Ostatné môžu tiež fungovať, ale som lenivý to potvrdzovať)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
Krok 2: Kód Arduino
Dole si stiahnite súbor.ino a nahrajte ho do svojho Arduina (v mojom prípade Nano).
Na správnu funkciu náčrtu sú nainštalované nasledujúce knižnice:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
Návod, ako nahrať kód do svojho arduina, nájdete tu (arduino.cc).
V IDE Arduino overte, či bol kód odoslaný správne. (Nahrávanie sa dokončilo)
Vaše Arduino je teraz pripravené prijímať časové informácie
Stiahnite si kód tu: DS3231TimeSync.zip (mediafire.com)
Stiahnite si zdroj tu: DS3231TimeSyncSRC.zip (mediafire.com)
Úložisko GitHub: synchronizácia času DS3213 RTC (github.com)
Úložisko bitbucket: DS3231 RTC Time Sync (bitbucket.com)
Krok 3: Aplikácia Java
1. Dvojitým kliknutím na súbor „DS3231Sync.jar“spustený predtým spustite
2. Otvorí sa malé dialógové okno s otázkou na port vášho arduina
Ak si nie ste istí portom, ktorý používa vaše arduino, pozrite sa do Arduino IDE vpravo dole.
(Pozri obrázky vyššie)
3. Otvorí sa ďalšie dialógové okno a požiada vás o posunutie časového pásma
Offset je relatívny k miestnemu času vášho počítača. Ak chcete nastaviť RTC na miestny čas, zadajte +00: 00.
Je dôležité, aby ste zadali posun časového pásma v konkrétnom formáte!
Obecný formát je +hh: mm alebo -hh: mm. Vždy uvádzajte úvodné nuly!
(Napr.: -03: 00; -06: 00; +09: 00; +02: 30)
4. Aplikácia Java spustí malé okno s výstupom z konzoly
Dávajte si pozor na potvrdzovacie správy ako: „Nastavený čas skončil“
Po dokončení procesu nastavovania času kód vytlačí aktuálny čas na DS3231 každých 5 sekúnd. Môžete potvrdiť, že je čas nastavený správne.
Ak sa vám ~ 20 s nedostane žiadny výstup, stlačte tlačidlo reset na arduine a počkajte znova.
Ak stále nefunguje, overte náčrt na Arduine a/alebo ho znova nahrajte. (Dôležité: Pred nahraním do Arduina zatvorte Port v aplikácii Java; V opačnom prípade zablokuje sériový port!) Potom resetujte pripojenie v programe Java.
(Program Java používa na získanie aktuálneho dátumu LocalDateTime.)
Teraz je nastavený čas. Bavte sa
Ak máte akékoľvek neriešiteľné problémy s nastavením času, komentujte nižšie a zdieľajte so mnou svoj súbor log.txt (v rovnakom priečinku ako jar). Mnohokrat dakujem!