Përmbajtje:
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
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
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
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
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
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!