Sadržaj:
Video: Postavljanje DS3231 RTC (sata u stvarnom vremenu) precizno, brzo i automatizirano pomoću Jave (+-1 s): 3 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Ovaj Instructable će vam pokazati kako postaviti vrijeme na DS3231 satu za realno vrijeme pomoću Arduina i male Java aplikacije koja koristi serijsku vezu Arduina.
Osnovna logika ovog programa:
1. Arduino šalje serijski zahtjev.
2. Java program gleda koji dan/mjesec/… je arduino zatražio i šalje relevantne podatke natrag.
3. Nakon što se prikupe sve potrebne informacije, arduino pohranjuje podatke u DS3231.
DS3231 RTC modul
DS3231 RTC modul je relativno jeftin RTC modul visoke preciznosti. (nekoliko minuta godišnje)
Postoje različite sorte čija je osnovna funkcionalnost ista s malim razlikama.
Detaljno poređenje možete pronaći ovdje: Poređenje DS323x | maximintegrated.com
Kupi DS3231: DS3231 | ebay.com
Tehnički list: DS3231 Tehnički list | maximintegrated.com
Tehnički list: DS1307 Tehnički list | maximintegrated.com
Potrebni dijelovi
1x Arduino (Nano, Uno, MEGA, itd.)
4x premosne žice
1x modul DS3231 (modul DS1307)
Korak 1: Ožičenje
Ožičite DS3231 kao što je prikazano na gornjoj slici. Naravno da to možete učiniti bez upotrebe matične ploče, ali bit će malo neurednije. Koristio sam Arduino Nano za demonstraciju, ali bi trebali raditi i Uno ili MEGA. (I drugi bi mogli raditi, ali nisam lijen da potvrdim)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
Korak 2: Arduino kod
Preuzmite.ino datoteku odozdo i postavite je na svoj Arduino (u mom slučaju Nano).
Za ispravnu radnju skice potrebne su sljedeće biblioteke:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
Vodič o tome kako učitati kôd na svoj arduino možete pronaći ovdje (arduino.cc).
U Arduino IDE -u provjerite je li kôd ispravno poslan. (Učitavanje završeno)
Vaš Arduino je sada spreman za primanje informacija o vremenu
Preuzmite kôd ovdje: DS3231TimeSync.zip (mediafire.com)
Izvor preuzmite ovdje: DS3231TimeSyncSRC.zip (mediafire.com)
GitHub spremište: DS3213 RTC Time Sync (github.com)
Spremište Bitbucket -a: DS3231 RTC Time Sync (bitbucket.com)
Korak 3: Java aplikacija
1. Pokrenite "DS3231Sync.jar" koji ste prethodno preuzeli dvostrukim klikom na nju
2. Otvorit će se mali dijalog koji će vas pitati za port vašeg arduina
Ako niste sigurni u vezi porta koji koristi vaš arduino, pogledajte Arduino IDE u donjem desnom kutu.
(Pogledajte slike iznad)
3. Otvorit će se drugi dijalog i zatražiti pomak vremenske zone
Pomak je u odnosu na lokalno vrijeme vašeg računara. Da biste postavili RTC na lokalno vrijeme, samo unesite +00: 00.
Od kritičnog je značaja da unesete pomak vremenske zone u određenom formatu!
Opći format je +hh: mm ili -hh: mm. Uvijek uključite vodeće nule!
(Npr.: -03: 00; -06: 00; +09: 00; +02: 30)
4. Java aplikacija će pokrenuti mali prozor sa izlazom na konzoli
Pazite na poruke potvrde poput: "Vrijeme je završeno"
Kada proces podešavanja vremena završi, kod će ispisati trenutno vrijeme na DS3231 svakih 5 sekundi. Možete potvrditi da je vrijeme ispravno postavljeno.
Ako ne dobijete izlaz nakon ~ 20 s, pritisnite gumb za resetiranje na svom arduinu i pričekajte ponovo.
Ako i dalje ne radi, provjerite skicu na Arduinu i/ili je ponovo učitajte. (Važno: Zatvorite port u Java aplikaciji prije postavljanja na Arduino; u suprotnom će blokirati serijski port!) Zatim resetirajte vezu u Java programu.
(Java program koristi LocalDateTime za dobijanje trenutnog datuma.)
Vrijeme je sada postavljeno. Zabavi se
Ako imate bilo kakvih nerješivih problema s postavljanjem vremena, komentirajte ispod i podijelite svoj log.txt (u istoj fascikli kao i staklenka) sa mnom. Hvala puno!