Table des matières:

Réglage précis, rapide et automatisé du DS3231 RTC (Real Time Clock) à l'aide de Java (+-1s) : 3 étapes
Réglage précis, rapide et automatisé du DS3231 RTC (Real Time Clock) à l'aide de Java (+-1s) : 3 étapes

Vidéo: Réglage précis, rapide et automatisé du DS3231 RTC (Real Time Clock) à l'aide de Java (+-1s) : 3 étapes

Vidéo: Réglage précis, rapide et automatisé du DS3231 RTC (Real Time Clock) à l'aide de Java (+-1s) : 3 étapes
Vidéo: Как построить ПЛК Arduino с модулем часов реального времени и поворотным энкодером 2024, Juillet
Anonim
Réglage précis, rapide et automatisé du DS3231 RTC (Real Time Clock) à l'aide de Java (+-1s)
Réglage précis, rapide et automatisé du DS3231 RTC (Real Time Clock) à l'aide de Java (+-1s)

Ce Instructable va vous montrer comment régler l'heure sur une horloge temps réel DS3231 à l'aide d'un Arduino et d'une petite application Java qui utilise la connexion série de l'Arduino.

La logique de base de ce programme:

1. L'Arduino envoie une requête série.

2. Le programme Java regarde quel jour/mois/… l'arduino a demandé et renvoie les données pertinentes.

3. Une fois toutes les informations nécessaires rassemblées, l'arduino stocke les données dans le DS3231.

Le module RTC DS3231

Le module RTC DS3231 est un module RTC relativement bon marché avec une grande précision. (quelques minutes par an)

Il existe différentes variétés dont la fonctionnalité de base est la même avec seulement des différences mineures.

La comparaison détaillée peut être trouvée ici: Comparaison DS323x | maximintegrated.com

Acheter DS3231:DS3231 | ebay.com

Fiche technique:DS3231 Fiche technique | maximintegrated.com

Fiche technique:DS1307 Fiche technique | maximintegrated.com

Pièces nécessaires

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

4x fils de cavalier

1x module DS3231 (module DS1307)

Étape 1: Câblage

Câblage
Câblage

Câblez le DS3231 comme indiqué dans l'image ci-dessus. Bien sûr, vous pouvez le faire sans utiliser de planche à pain, mais ce sera un peu plus compliqué. J'ai utilisé un Arduino Nano pour la démonstration, mais un Uno ou un MEGA devrait également fonctionner. (D'autres pourraient aussi fonctionner mais je suis trop paresseux pour confirmer)

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

Étape 2: Le code Arduino

Le code Arduino
Le code Arduino

Téléchargez le fichier.ino ci-dessous et téléchargez-le sur votre Arduino (dans mon cas, un Nano).

L'esquisse a besoin des bibliothèques suivantes installées pour fonctionner correctement:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

Un tutoriel sur la façon de télécharger du code sur votre arduino peut être trouvé ici (arduino.cc).

Dans l'IDE Arduino, vérifiez que le code a été soumis correctement. (Téléchargement terminé)

Votre Arduino est maintenant prêt à recevoir des informations de temps

Téléchargez le code ici: DS3231TimeSync.zip (mediafire.com)

Téléchargez la source ici: DS3231TimeSyncSRC.zip (mediafire.com)

Référentiel GitHub: DS3213 RTC Time Sync (github.com)

Référentiel Bitbucket: DS3231 RTC Time Sync (bitbucket.com)

Étape 3: L'application Java

L'application Java
L'application Java

1. Exécutez "DS3231Sync.jar" téléchargé précédemment en double-cliquant dessus

2. Une petite boîte de dialogue s'ouvrira vous demandant le port de votre arduino

Si vous n'êtes pas sûr du port utilisé par votre arduino, jetez un œil à l'IDE Arduino en bas à droite.

(Voir images ci-dessus)

3. Une autre boîte de dialogue s'ouvrira et vous demandera un décalage de fuseau horaire

Le décalage est relatif à l'heure locale de votre ordinateur. Pour régler le RTC sur votre heure locale, entrez simplement +00:00.

Il est essentiel que vous entriez le décalage horaire dans un format spécifique !

Le format général est +hh:mm ou -hh:mm. Incluez toujours des zéros non significatifs !

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

4. L'application Java lancera une petite fenêtre avec la sortie de la console

Gardez un œil sur les messages de confirmation tels que: « Heure définie terminée »

Une fois le processus de réglage de l'heure terminé, le code imprimera l'heure actuelle sur le DS3231 toutes les 5 secondes. Vous pouvez confirmer que l'heure est correctement réglée.

Si vous n'obtenez aucune sortie après environ 20 secondes, appuyez sur le bouton de réinitialisation de votre arduino et attendez à nouveau.

Si cela ne fonctionne toujours pas, vérifiez le croquis sur l'Arduino et/ou téléchargez-le à nouveau. (Important: Fermez le port dans l'application Java avant de télécharger sur l'Arduino; Sinon, cela bloquera le port série !) Ensuite, réinitialisez la connexion dans le programme Java.

(Le programme Java utilise LocalDateTime pour obtenir la date actuelle.)

L'heure est maintenant réglée. S'amuser

Si vous rencontrez des problèmes insolubles pour régler l'heure, veuillez commenter ci-dessous et partager votre log.txt (dans le même dossier que le pot) avec moi. Merci beaucoup!