Sommario:

Impostazione dell'RTC (Real Time Clock) DS3231 in modo accurato, veloce e automatizzato utilizzando Java (+-1s): 3 passaggi
Impostazione dell'RTC (Real Time Clock) DS3231 in modo accurato, veloce e automatizzato utilizzando Java (+-1s): 3 passaggi

Video: Impostazione dell'RTC (Real Time Clock) DS3231 in modo accurato, veloce e automatizzato utilizzando Java (+-1s): 3 passaggi

Video: Impostazione dell'RTC (Real Time Clock) DS3231 in modo accurato, veloce e automatizzato utilizzando Java (+-1s): 3 passaggi
Video: Learn everything about the DS3231-SN Real Time Clock | Use without Arduino Library 2024, Luglio
Anonim
Impostazione dell'RTC (Real Time Clock) DS3231 in modo accurato, veloce e automatizzato tramite Java (+-1s)
Impostazione dell'RTC (Real Time Clock) DS3231 in modo accurato, veloce e automatizzato tramite Java (+-1s)

Questo Instructable ti mostrerà come impostare l'ora su un orologio in tempo reale DS3231 utilizzando un Arduino e una piccola applicazione Java che utilizza la connessione seriale di Arduino.

La logica di base di questo programma:

1. L'Arduino invia una richiesta seriale.

2. Il programma Java cerca quale giorno/mese/… l'arduino ha richiesto e restituisce i dati rilevanti.

3. Dopo che tutte le informazioni necessarie sono state raccolte, arduino memorizza i dati nel DS3231.

Il modulo RTC DS3231

Il modulo RTC DS3231 è un modulo RTC relativamente economico con un'elevata precisione. (pochi minuti all'anno)

Esistono diverse varietà la cui funzionalità di base è la stessa con solo piccole differenze.

Il confronto dettagliato può essere trovato qui: Confronto DS323x | maximintegrated.com

Acquista DS3231:DS3231 | ebay.com

Scheda tecnica:DS3231 Scheda tecnica | maximintegrated.com

Scheda tecnica:DS1307 Scheda tecnica | maximintegrated.com

Parti necessarie

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

4x cavi per ponticelli

1x modulo DS3231 (modulo DS1307)

Passaggio 1: cablaggio

Cablaggio
Cablaggio

Cablare il DS3231 come mostrato nell'immagine sopra. Ovviamente puoi farlo senza l'uso di una breadboard, ma sarà un po' più disordinato. Ho usato un Arduino Nano per la dimostrazione, ma dovrebbe funzionare anche uno Uno o un MEGA. (Anche altri potrebbero funzionare, ma sono troppo pigro per confermare)

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

Passaggio 2: il codice Arduino

Il codice Arduino
Il codice Arduino

Scarica il file.ino dal basso e caricalo sul tuo Arduino (nel mio caso un Nano).

Lo sketch necessita delle seguenti librerie installate per funzionare correttamente:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

Un tutorial su come caricare il codice sul tuo arduino può essere trovato qui (arduino.cc).

Nell'IDE Arduino verifica che il codice sia stato inviato correttamente. (Caricamento completato)

Il tuo Arduino è ora pronto per ricevere informazioni sull'ora

Scarica il codice qui: DS3231TimeSync.zip (mediafire.com)

Scarica la fonte qui: DS3231TimeSyncSRC.zip (mediafire.com)

Repository GitHub: DS3213 RTC Time Sync (github.com)

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

Passaggio 3: l'applicazione Java

L'applicazione Java
L'applicazione Java

1. Eseguire "DS3231Sync.jar" scaricato in precedenza facendo doppio clic su di esso

2. Si aprirà una piccola finestra di dialogo che ti chiederà la porta del tuo arduino

Se non sei sicuro della porta utilizzata dal tuo arduino, dai un'occhiata nell'IDE di Arduino in basso a destra.

(Vedi immagini sopra)

3. Si aprirà un'altra finestra di dialogo che ti chiederà un offset del fuso orario

L'offset è relativo all'ora locale del computer. Per impostare l'RTC sulla tua ora locale, inserisci +00:00.

È fondamentale inserire l'offset del fuso orario in un formato specifico!

Il formato generale è +hh:mm o -hh:mm. Includi sempre gli zeri iniziali!

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

4. L'applicazione Java avvierà una piccola finestra con l'output della console

Tieni d'occhio i messaggi di conferma come: "Tempo impostato terminato"

Al termine del processo di impostazione dell'ora, il codice stamperà l'ora corrente sul DS3231 ogni 5 secondi. È possibile confermare che l'ora è impostata correttamente.

Se non ottieni alcun output dopo ~ 20 secondi, premi il pulsante di ripristino sul tuo arduino e attendi di nuovo.

Se ancora non funziona, verifica lo sketch su Arduino e/o caricalo di nuovo. (Importante: chiudere la porta nell'applicazione Java prima di caricare su Arduino, altrimenti bloccherà la porta seriale!) Quindi ripristinare la connessione nel programma Java.

(Il programma Java utilizza LocalDateTime per ottenere la data corrente.)

L'ora è ora impostata. Divertiti

Se hai problemi irrisolvibili nell'impostazione dell'ora, commenta qui sotto e condividi il tuo log.txt (nella stessa cartella del jar) con me. Molte grazie!