Inhoudsopgave:

De DS3231 RTC (Real Time Clock) nauwkeurig, snel en geautomatiseerd instellen met Java (+-1s): 3 stappen
De DS3231 RTC (Real Time Clock) nauwkeurig, snel en geautomatiseerd instellen met Java (+-1s): 3 stappen

Video: De DS3231 RTC (Real Time Clock) nauwkeurig, snel en geautomatiseerd instellen met Java (+-1s): 3 stappen

Video: De DS3231 RTC (Real Time Clock) nauwkeurig, snel en geautomatiseerd instellen met Java (+-1s): 3 stappen
Video: Woordklok, deel 2 2024, November
Anonim
De DS3231 RTC (Real Time Clock) nauwkeurig, snel en geautomatiseerd instellen met Java (+-1s)
De DS3231 RTC (Real Time Clock) nauwkeurig, snel en geautomatiseerd instellen met Java (+-1s)

Deze Instructable laat je zien hoe je de tijd instelt op een DS3231 Real Time Clock met behulp van een Arduino en een kleine Java-applicatie die de seriële verbinding van de Arduino gebruikt.

De basislogica van dit programma:

1. De Arduino stuurt een serieel verzoek.

2. Het Java-programma kijkt welke dag/maand/… de arduino heeft aangevraagd en stuurt de relevante gegevens terug.

3. Nadat alle benodigde informatie is verzameld, slaat de arduino de gegevens op in de DS3231.

De DS3231 RTC-module

De DS3231 RTC-module is een relatief goedkope RTC-module met een hoge nauwkeurigheid. (een paar minuten per jaar)

Er zijn verschillende varianten waarvan de basisfunctionaliteit hetzelfde is met slechts kleine verschillen.

Gedetailleerde vergelijking vindt u hier: DS323x Vergelijking | maximintegrated.com

Koop DS3231:DS3231 | ebay.com

Gegevensblad:DS3231 Gegevensblad | maximintegrated.com

Gegevensblad:DS1307 Gegevensblad | maximintegrated.com

Onderdelen nodig

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

4x jumperdraden

1x DS3231-module (DS1307-module)

Stap 1: Bedrading

Bedrading
Bedrading

Bedraad de DS3231 zoals weergegeven in de afbeelding hierboven. Je kunt het natuurlijk ook zonder breadboard doen, maar het zal wel wat rommeliger zijn. Ik heb een Arduino Nano gebruikt voor demonstratie, maar een Uno of een MEGA zou ook moeten werken. (Anderen werken misschien ook, maar ik ben te lui om te bevestigen)

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

Stap 2: De Arduino-code

De Arduino-code
De Arduino-code

Download het.ino-bestand van hieronder en upload het naar je Arduino (in mijn geval een Nano).

De schets heeft de volgende bibliotheken nodig om correct te werken:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

Een tutorial over het uploaden van code naar je arduino vind je hier (arduino.cc).

Controleer in de Arduino IDE of de code correct is ingediend. (Klaar met uploaden)

Uw Arduino is nu klaar om tijdinformatie te ontvangen

Download de code hier: DS3231TimeSync.zip (mediafire.com)

Download hier de bron: DS3231TimeSyncSRC.zip (mediafire.com)

GitHub-repository: DS3213 RTC Time Sync (github.com)

Bitbucket-opslagplaats: DS3231 RTC-tijdsynchronisatie (bitbucket.com)

Stap 3: De Java-toepassing

De Java-toepassing
De Java-toepassing

1. Voer de eerder gedownloade "DS3231Sync.jar" uit door erop te dubbelklikken

2. Er wordt een klein dialoogvenster geopend waarin u wordt gevraagd naar de poort van uw arduino

Mocht je niet zeker zijn over de poort die door je arduino wordt gebruikt, kijk dan eens in de Arduino IDE rechtsonder.

(Zie afbeeldingen hierboven)

3. Er wordt een ander dialoogvenster geopend waarin u wordt gevraagd om een tijdzone-offset

De offset is relatief ten opzichte van de lokale tijd van uw computer. Om de RTC op uw lokale tijd in te stellen, voert u gewoon +00:00 in.

Het is van cruciaal belang dat u de tijdzone-offset in een specifiek formaat invoert!

Het algemene formaat is +uu:mm of -uu:mm. Voeg altijd voorloopnullen toe!

(Bijvoorbeeld: -03:00; -06:00; +09:00; +02:30)

4. De Java-toepassing start een klein venster met console-uitvoer

Houd bevestigingsberichten in de gaten zoals: "Tijdset voltooid"

Wanneer het tijdinstellingsproces is voltooid, zal de code elke 5 seconden de huidige tijd op de DS3231 afdrukken. U kunt controleren of de tijd correct is ingesteld.

Mocht je na ~20s geen output krijgen, druk dan op de reset-knop op je arduino en wacht opnieuw.

Als het nog steeds niet werkt, controleer dan de schets op de Arduino en/of upload deze opnieuw. (Belangrijk: sluit de poort in de Java-toepassing voordat u deze naar de Arduino uploadt; anders blokkeert hij de seriële poort!) Stel vervolgens de verbinding opnieuw in het Java-programma in.

(Het Java-programma gebruikt LocalDateTime om de huidige datum te krijgen.)

De tijd is nu ingesteld. Veel plezier

Mocht je onoplosbare problemen hebben met het instellen van de tijd, reageer dan hieronder en deel je log.txt (in dezelfde map als de pot) met mij. Heel erg bedankt!