Sadržaj:

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

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

Video: Postavljanje DS3231 RTC (sata u stvarnom vremenu) točno, brzo i automatizirano pomoću Jave (+-1 s): 3 koraka
Video: LDmicro 18: GPS-будильник Ublox NEO-6M (программирование лестничной схемы ПЛК микроконтроллера с помощью LDmicro) 2024, Srpanj
Anonim
Postavljanje DS3231 RTC (sata u stvarnom vremenu) točno, brzo i automatizirano pomoću Jave (+-1 s)
Postavljanje DS3231 RTC (sata u stvarnom vremenu) točno, 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.

R32 modul DS3231

DS3231 RTC modul je relativno jeftin RTC modul visoke točnosti. (nekoliko minuta godišnje)

Postoje različite sorte čija je osnovna funkcionalnost ista s malim razlikama.

Detaljnu usporedbu možete pronaći ovdje: Usporedba DS323x | maximintegrated.com

Kupite 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 kratkospojne žice

1x DS3231 modul (DS1307 modul)

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 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 s donje strane i prenesite 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 prenijeti kod na svoj arduino možete pronaći ovdje (arduino.cc).

U Arduino IDE -u provjerite je li kôd ispravno poslan. (Prijenos je gotov)

Vaš Arduino sada je spreman za primanje informacija o vremenu

Ovdje preuzmite kôd: DS3231TimeSync.zip (mediafire.com)

Izvor preuzmite ovdje: DS3231TimeSyncSRC.zip (mediafire.com)

Spremište GitHub: 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 dijaloški okvir s upitom za priključak vašeg arduina

Ako niste sigurni u vezi s priključkom koji koristi vaš arduino, pogledajte Arduino IDE u donjem desnom kutu.

(Pogledajte slike iznad)

3. Otvorit će se drugi dijalog i zatražit će vam pomak vremenske zone

Pomak je u odnosu na lokalno vrijeme vašeg računala. Da biste postavili RTC na lokalno vrijeme, samo unesite +00: 00.

Vrlo je važno da pomak vremenske zone unesete 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 pokrenut će mali prozor s izlazom na konzoli

Pripazite na potvrdne poruke poput: "Vrijeme je završeno"

Kada proces postavljanja vremena završi, kod će ispisati trenutno vrijeme na DS3231 svakih 5 sekundi. Možete potvrditi da je vrijeme ispravno postavljeno.

Ako nakon ~ 20 sekundi ne dobijete izlaz, pritisnite gumb za resetiranje na svom arduinu i pričekajte ponovno.

Ako i dalje ne radi, provjerite skicu na Arduinu i/ili je ponovo prenesite. (Važno: Zatvorite Port u Java aplikaciji prije postavljanja na Arduino; u protivnom će blokirati serijski port!) Zatim resetirajte vezu u Java programu.

(Java program koristi LocalDateTime za dobivanje 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 mapi kao i staklenka) sa mnom. Hvala puno!