Obsah:
Video: Nastavení DS3231 RTC (hodiny v reálném čase) přesně, rychle a automatizovaně pomocí Javy (+-1 s): 3 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Tento Instructable vám ukáže, jak nastavit čas na hodinách reálného času DS3231 pomocí Arduina a malé aplikace Java, která používá sériové připojení Arduina.
Základní logika tohoto programu:
1. Arduino odešle sériový požadavek.
2. Program Java vypadá, jaký den/měsíc/… arduino požadoval a odeslal relevantní data zpět.
3. Poté, co jsou shromážděny všechny potřebné informace, arduino uloží data do DS3231.
Modul RTC DS3231
Modul DS3231 RTC je relativně levný modul RTC s vysokou přesností. (několik minut ročně)
Existují různé odrůdy, jejichž základní funkce je stejná pouze s malými rozdíly.
Podrobné srovnání najdete zde: Porovnání DS323x | maximintegrated.com
Koupit DS3231: DS3231 | ebay.com
Datasheet: DS3231 Datasheet | maximintegrated.com
Datový list: DS1307 Datový list | maximintegrated.com
Potřebné díly
1x Arduino (Nano, Uno, MEGA atd.)
4x propojovací vodiče
1x modul DS3231 (modul DS1307)
Krok 1: Zapojení
Připojte DS3231, jak je znázorněno na obrázku výše. Samozřejmě to můžete udělat bez použití prkénka, ale bude to trochu chaotičtější. Pro demonstraci jsem použil Arduino Nano, ale Uno nebo MEGA by také měly fungovat. (Ostatní mohou také fungovat, ale jsem líný to potvrdit)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
Krok 2: Kód Arduino
Stáhněte soubor.ino zespodu a nahrajte jej do svého Arduina (v mém případě Nano).
Ke správné funkci náčrtu jsou nainstalovány následující knihovny:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
Návod, jak nahrát kód do arduina, najdete zde (arduino.cc).
V Arduino IDE ověřte, zda byl kód odeslán správně. (Nahrávání dokončeno)
Vaše Arduino je nyní připraveno přijímat informace o čase
Stáhněte si kód zde: DS3231TimeSync.zip (mediafire.com)
Stáhněte si zdroj zde: DS3231TimeSyncSRC.zip (mediafire.com)
Úložiště GitHub: DS3213 RTC Time Sync (github.com)
Úložiště bitbucket: DS3231 RTC Time Sync (bitbucket.com)
Krok 3: Aplikace Java
1. Poklepáním na něj spusťte dříve stažený „DS3231Sync.jar“
2. Otevře se malé dialogové okno s dotazem na port vašeho arduina
Pokud si nejste jisti portem, který používá vaše arduino, podívejte se do Arduino IDE vpravo dole.
(Viz obrázky výše)
3. Otevře se další dialog a požádá vás o posun časového pásma
Offset je relativní k místnímu času vašeho počítače. Chcete -li nastavit RTC na místní čas, zadejte +00: 00.
Je důležité, abyste zadali posun časového pásma v určitém formátu!
Obecný formát je +hh: mm nebo -hh: mm. Vždy uvádějte úvodní nuly!
(Např.: -03: 00; -06: 00; +09: 00; +02: 30)
4. Aplikace Java spustí malé okno s výstupem z konzoly
Dávejte pozor na potvrzovací zprávy jako: „Čas nastaven skončil“
Když proces nastavování času skončí, kód vytiskne aktuální čas na DS3231 každých 5 sekund. Můžete potvrdit, že je čas nastaven správně.
Pokud po ~ 20 s nedosáhnete žádného výstupu, stiskněte resetovací tlačítko na arduinu a počkejte znovu.
Pokud stále nefunguje, ověřte skicu na Arduinu a/nebo ji nahrajte znovu. (Důležité: Před nahráním do Arduina zavřete Port v aplikaci Java; Jinak zablokuje sériový port!) Poté resetujte připojení v programu Java.
(Program Java používá k získání aktuálního data LocalDateTime.)
Čas je nyní nastaven. Bavte se
Pokud máte nějaké neřešitelné problémy s nastavením času, napište prosím níže a sdílejte se mnou svůj soubor log.txt (ve stejné složce jako jar). Díky moc!