Kazalo:
Video: Nastavitev DS3231 RTC (ura v realnem času) natančno, hitro in avtomatizirano z uporabo Java (+-1 s): 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Ta Instructable vam bo pokazal, kako nastaviti uro na realnem času DS3231 z uporabo Arduina in majhne aplikacije Java, ki uporablja serijsko povezavo Arduina.
Osnovna logika tega programa:
1. Arduino pošlje serijsko zahtevo.
2. Program Java preveri, kateri dan/mesec/… je arduino zahteval in pošlje ustrezne podatke nazaj.
3. Ko so zbrane vse potrebne informacije, arduino shrani podatke v DS3231.
Modul RTC DS3231
Modul RTC DS3231 je relativno poceni modul RTC z visoko natančnostjo. (nekaj minut na leto)
Obstajajo različne sorte, katerih osnovna funkcionalnost je enaka, le z manjšimi razlikami.
Podrobno primerjavo najdete tukaj: Primerjava DS323x | maximintegrated.com
Kupite DS3231: DS3231 | ebay.com
Podatkovni list: Podatkovni list DS3231 | maximintegrated.com
Podatkovni list: DS1307 Podatkovni list | maximintegrated.com
Potrebni deli
1x Arduino (Nano, Uno, MEGA itd.)
4x mostične žice
1x modul DS3231 (modul DS1307)
1. korak: Ožičenje
Povežite DS3231, kot je prikazano na zgornji sliki. Seveda lahko to storite brez uporabe mize, vendar bo nekoliko bolj zapleteno. Za predstavitev sem uporabil Arduino Nano, vendar bi morala delovati tudi Uno ali MEGA. (Morda bodo delovali tudi drugi, vendar sem len, da potrdim)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
2. korak: Koda Arduino
Prenesite datoteko.ino od spodaj in jo naložite v svoj Arduino (v mojem primeru Nano).
Za pravilno delovanje skice so potrebne naslednje knjižnice:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
Vadnico o tem, kako naložiti kodo na svoj arduino, najdete tukaj (arduino.cc).
V Arduino IDE preverite, ali je bila koda pravilno predložena. (Nalaganje končano)
Vaš Arduino je zdaj pripravljen prejemati informacije o času
Kodo prenesite tukaj: DS3231TimeSync.zip (mediafire.com)
Prenesite vir tukaj: DS3231TimeSyncSRC.zip (mediafire.com)
Skladišče GitHub: DS3213 RTC Time Sync (github.com)
Skladišče Bitbucket: DS3231 RTC Time Sync (bitbucket.com)
3. korak: Aplikacija Java
1. Zaženite "DS3231Sync.jar", ki ste ga prej naložili, tako da ga dvokliknete
2. Odprlo se bo majhno pogovorno okno, ki vas bo prosilo za vrata vašega arduina
Če niste prepričani o vratih, ki jih uporablja vaš arduino, poglejte v Arduino IDE spodaj desno.
(Glej slike zgoraj)
3. Odprlo se bo drugo pogovorno okno in vas prosilo za zamik časovnega pasu
Odmik je odvisen od lokalnega časa vašega računalnika. Če želite RTC nastaviti na lokalni čas, vnesite +00: 00.
Pomembno je, da zamik časovnega pasu vnesete v določeni obliki!
Splošni format je +hh: mm ali -hhh: mm. Vedno vključite vodilne ničle!
(Npr.: -03: 00; -06: 00; +09: 00; +02: 30)
4. Java aplikacija bo odprla majhno okno z izhodom konzole
Bodite pozorni na potrditvena sporočila, kot so: "Čas je nastavljen"
Ko se postopek nastavitve časa konča, bo koda vsakih 5 sekund natisnila trenutni čas na DS3231. Lahko potrdite, da je čas pravilno nastavljen.
Če po ~ 20 sekundah ne dobite izhoda, pritisnite gumb za ponastavitev na arduinu in znova počakajte.
Če še vedno ne deluje, preverite skico na Arduinu in/ali jo naložite znova. (Pomembno: Preden naložite v Arduino, zaprite vrata v aplikaciji Java; sicer bodo blokirali serijska vrata!) Nato ponastavite povezavo v programu Java.
(Program Java uporablja LocalDateTime za pridobitev trenutnega datuma.)
Čas je zdaj nastavljen. Zabavaj se
Če imate kakršne koli nerešljive težave pri nastavitvi časa, komentirajte spodaj in delite svoj log.txt (v isti mapi kot kozarec) z mano. Najlepša hvala!