Përmbajtje:

Vendosja e DS3231 RTC (Ora në kohë reale) në mënyrë të saktë, të shpejtë dhe të automatizuar duke përdorur Java (+-1s): 3 hapa
Vendosja e DS3231 RTC (Ora në kohë reale) në mënyrë të saktë, të shpejtë dhe të automatizuar duke përdorur Java (+-1s): 3 hapa

Video: Vendosja e DS3231 RTC (Ora në kohë reale) në mënyrë të saktë, të shpejtë dhe të automatizuar duke përdorur Java (+-1s): 3 hapa

Video: Vendosja e DS3231 RTC (Ora në kohë reale) në mënyrë të saktë, të shpejtë dhe të automatizuar duke përdorur Java (+-1s): 3 hapa
Video: #17 Kohëmatësi i operimit të planifikuar DS3231 RTC | Outseal Arduino PLC 2024, Korrik
Anonim
Vendosja e DS3231 RTC (Ora në kohë reale) në mënyrë të saktë, të shpejtë dhe të automatizuar duke përdorur Java (+-1s)
Vendosja e DS3231 RTC (Ora në kohë reale) në mënyrë të saktë, të shpejtë dhe të automatizuar duke përdorur Java (+-1s)

Ky Instructable do t'ju tregojë se si të vendosni kohën në një orë në kohë reale DS3231 duke përdorur një Arduino dhe një aplikacion të vogël Java që përdor lidhjen serike të Arduino.

Logjika themelore e këtij programi:

1. Arduino dërgon një kërkesë serike.

2. Programi Java shikon se cilën ditë/muaj/… arduino kërkoi dhe dërgon të dhënat përkatëse mbrapa.

3. Pasi të mblidhen të gjitha informacionet e nevojshme, arduino ruan të dhënat në DS3231.

Moduli DS3231 RTC

Moduli DS3231 RTC është një modul relativisht i lirë RTC me një saktësi të lartë. (disa minuta në vit)

Ka varietete të ndryshme, funksionaliteti themelor i të cilave është i njëjtë me vetëm dallime të vogla.

Krahasimi i detajuar mund të gjendet këtu: Krahasimi DS323x | maximintegrated.com

Blej DS3231: DS3231 | ebay.com

Fleta e të dhënave: DS3231 Fleta e të dhënave | maximintegrated.com

Fleta e të dhënave: DS1307 Fleta e të dhënave | maximintegrated.com

Pjesët e nevojshme

1x Arduino (Nano, Uno, MEGA, etj.)

4x Tela Jumper

1x DS3231 Moduli (Moduli DS1307)

Hapi 1: Instalimet elektrike

Instalime elektrike
Instalime elektrike

Lidhni DS3231 siç tregohet në imazhin e mësipërm. Sigurisht që mund ta bëni pa përdorur një dërrasë buke, por do të jetë pak më e çrregullt. Unë kam përdorur një Arduino Nano për demonstrim, por një Uno ose një MEGA duhet të funksionojë gjithashtu. (Të tjerët gjithashtu mund të punojnë, por unë jam dembel për ta konfirmuar)

  • Arduino -> DS3231
  • A4 -> SCL
  • A5 -> SDA
  • 5V -> KQV
  • GND -> GND

Hapi 2: Kodi Arduino

Kodi Arduino
Kodi Arduino

Shkarkoni skedarin.ino nga poshtë dhe ngarkojeni atë në Arduino tuaj (në rastin tim një Nano).

Skica ka nevojë për bibliotekat e mëposhtme të instaluara për të punuar si duhet:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

Një tutorial se si të ngarkoni kodin në arduino tuaj mund të gjendet këtu (arduino.cc).

Në Arduino IDE verifikoni që kodi është paraqitur saktë. (Ngarkimi u krye)

Arduino juaj tani është gati të marrë informacione për kohën

Shkarkoni kodin këtu: DS3231TimeSync.zip (mediafire.com)

Shkarkoni burimin këtu: DS3231TimeSyncSRC.zip (mediafire.com)

Depoja e GitHub: DS3213 RTC Sync Time (github.com)

Depo Bitbucket: DS3231 RTC Time Sync (bitbucket.com)

Hapi 3: Aplikacioni Java

Aplikacioni Java
Aplikacioni Java

1. Drejtoni "DS3231Sync.jar" të shkarkuar më parë duke klikuar dy herë mbi të

2. Do të hapet një dialog i vogël duke ju kërkuar portën e arduino -s tuaj

Nëse nuk jeni të sigurt për portin e përdorur nga arduino juaj hidhini një sy Arduino IDE në pjesën e poshtme të djathtë.

(Shihni imazhet më lart)

3. Një dialog tjetër do të hapet dhe do t'ju kërkojë një kompensim të zonës kohore

Kompensimi është i lidhur me kohën lokale të kompjuterit tuaj. Për të vendosur RTC në kohën tuaj lokale, thjesht shkruani +00: 00.

Criticalshtë kritike që të futni zonën kohore të kompensuar në një format të veçantë!

Formati i përgjithshëm është +hh: mm ose -hh: mm. Gjithmonë përfshini zero kryesore!

(P.sh.: -03: 00; -06: 00; +09: 00; +02: 30)

4. Aplikacioni Java do të nisë një dritare të vogël me dalje të tastierës

Mbani një sy për mesazhet e konfirmimit si: "Koha e caktuar përfundoi"

Kur përfundon procesi i caktuar i kohës, kodi do të printojë kohën aktuale në DS3231 çdo 5 sekonda. Mund të konfirmoni që koha është vendosur në mënyrë korrekte.

Nëse nuk merrni ndonjë dalje pas 20 ~, shtypni butonin e rivendosjes në arduino tuaj dhe prisni përsëri.

Nëse ende nuk funksionon verifikoni skicën në Arduino dhe/ose ngarkojeni përsëri. (E rëndësishme: Mbyllni Portin në aplikacionin Java para se të ngarkoni në Arduino; Përndryshe do të bllokojë portin serik!) Pastaj rivendosni lidhjen në programin Java.

(Programi Java po përdor LocalDateTime për të marrë datën aktuale.)

Ora tani është caktuar. Argëtohu

Me siguri keni ndonjë problem të pazgjidhshëm në caktimin e kohës ju lutemi komentoni më poshtë dhe ndani log.txt tuaj (në të njëjtën dosje me kavanozin) me mua. Faleminderit shume!