Sadržaj:

Postavljanje DS3231 RTC (sata u stvarnom vremenu) precizno, brzo i automatizirano pomoću Jave (+-1 s): 3 koraka
Postavljanje DS3231 RTC (sata u stvarnom vremenu) precizno, brzo i automatizirano pomoću Jave (+-1 s): 3 koraka

Video: Postavljanje DS3231 RTC (sata u stvarnom vremenu) precizno, brzo i automatizirano pomoću Jave (+-1 s): 3 koraka

Video: Postavljanje DS3231 RTC (sata u stvarnom vremenu) precizno, brzo i automatizirano pomoću Jave (+-1 s): 3 koraka
Video: Контроллер автоматического пуска-останова с часами реального времени DS3231 2024, Juli
Anonim
Postavljanje DS3231 RTC (sata u stvarnom vremenu) precizno, brzo i automatizirano pomoću Jave (+-1 s)
Postavljanje DS3231 RTC (sata u stvarnom vremenu) precizno, brzo i automatizirano pomoću Jave (+-1 s)

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čenje
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

Arduino kod
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

Java aplikacija
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!