Tabla de contenido:
Video: Configuración del DS3231 RTC (reloj en tiempo real) de forma precisa, rápida y automatizada mediante Java (+ -1 s): 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Este Instructable le mostrará cómo configurar la hora en un reloj de tiempo real DS3231 usando un Arduino y una pequeña aplicación Java que usa la conexión serial del Arduino.
La lógica básica de este programa:
1. El Arduino envía una solicitud en serie.
2. El programa Java busca qué día / mes /… el arduino solicitó y envía los datos relevantes.
3. Una vez recopilada toda la información necesaria, el arduino almacena los datos en el DS3231.
El módulo DS3231 RTC
El módulo RTC DS3231 es un módulo RTC relativamente económico con una alta precisión. (unos minutos al año)
Existen diferentes variedades cuya funcionalidad básica es la misma con solo pequeñas diferencias.
Puede encontrar una comparación detallada aquí: Comparación DS323x | maximintegrated.com
Comprar DS3231: DS3231 | ebay.com
Hoja de datos: DS3231 Hoja de datos | maximintegrated.com
Hoja de datos: DS1307 Hoja de datos | maximintegrated.com
Piezas necesarias
1x Arduino (Nano, Uno, MEGA, etc.)
4 cables de puente.
1x módulo DS3231 (módulo DS1307)
Paso 1: cableado
Conecte el DS3231 como se muestra en la imagen de arriba. Por supuesto, puede hacerlo sin el uso de una placa de pruebas, pero será un poco más complicado. He usado un Arduino Nano para la demostración, pero un Uno o un MEGA también deberían funcionar. (Otros también pueden funcionar, pero soy demasiado vago para confirmar)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
Paso 2: el código Arduino
Descargue el archivo.ino desde abajo y cárguelo en su Arduino (en mi caso, un Nano).
El boceto necesita las siguientes bibliotecas instaladas para funcionar correctamente:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
Puede encontrar un tutorial sobre cómo cargar código en su arduino aquí (arduino.cc).
En el IDE de Arduino, verifique que el código se envió correctamente. (Terminado de cargar)
Su Arduino ahora está listo para recibir información de tiempo
Descargue el código aquí: DS3231TimeSync.zip (mediafire.com)
Descargue la fuente aquí: DS3231TimeSyncSRC.zip (mediafire.com)
Repositorio de GitHub: DS3213 RTC Time Sync (github.com)
Repositorio de Bitbucket: DS3231 RTC Time Sync (bitbucket.com)
Paso 3: la aplicación Java
1. Ejecute "DS3231Sync.jar" descargado antes haciendo doble clic en él
2. Se abrirá un pequeño cuadro de diálogo que le pedirá el puerto de su arduino
Si no está seguro del puerto utilizado por su arduino, eche un vistazo al IDE de Arduino en la parte inferior derecha.
(Ver imágenes arriba)
3. Se abrirá otro cuadro de diálogo que le pedirá una diferencia de zona horaria
El desplazamiento es relativo a la hora local de su computadora. Para configurar el RTC a su hora local, simplemente ingrese +00: 00.
¡Es fundamental que ingrese el desplazamiento de la zona horaria en un formato específico!
El formato general es + hh: mm o -hh: mm. ¡Incluya siempre ceros a la izquierda!
(Por ejemplo: -03: 00; -06: 00; +09: 00; +02: 30)
4. La aplicación Java lanzará una pequeña ventana con salida de consola
Esté atento a los mensajes de confirmación como: "Hora finalizada"
Cuando finalice el proceso de ajuste de la hora, el código imprimirá la hora actual en el DS3231 cada 5 segundos. Puede confirmar que la hora está configurada correctamente.
Si no obtiene ninguna salida después de ~ 20 segundos, presione el botón de reinicio en su arduino y espere nuevamente.
Si aún no funciona, verifique el boceto en el Arduino y / o cárguelo nuevamente. (Importante: cierre el puerto en la aplicación Java antes de cargarla en Arduino; de lo contrario, bloqueará el puerto serie). Luego, restablezca la conexión en el programa Java.
(El programa Java utiliza LocalDateTime para obtener la fecha actual).
La hora está ahora fijada. ¡Divertirse
Si tiene algún problema sin solución para establecer la hora, comente a continuación y comparta su log.txt (en la misma carpeta que el frasco) conmigo. ¡Muchas gracias!