Índice:

Configurando o DS3231 RTC (Real Time Clock) com precisão, rapidez e automatização usando Java (+ -1s): 3 etapas
Configurando o DS3231 RTC (Real Time Clock) com precisão, rapidez e automatização usando Java (+ -1s): 3 etapas

Vídeo: Configurando o DS3231 RTC (Real Time Clock) com precisão, rapidez e automatização usando Java (+ -1s): 3 etapas

Vídeo: Configurando o DS3231 RTC (Real Time Clock) com precisão, rapidez e automatização usando Java (+ -1s): 3 etapas
Vídeo: Master GPIO with Raspberry Pi Pico & MicroPython - Part 2 2024, Julho
Anonim
Configurando o DS3231 RTC (Real Time Clock) com precisão, rapidez e automatização usando Java (+ -1s)
Configurando o DS3231 RTC (Real Time Clock) com precisão, rapidez e automatização usando Java (+ -1s)

Este Instructable vai mostrar como acertar a hora em um Real Time Clock DS3231 usando um Arduino e um pequeno aplicativo Java que usa a conexão serial do Arduino.

A lógica básica deste programa:

1. O Arduino envia uma solicitação serial.

2. O programa Java verifica qual dia / mês / … o arduino solicitou e envia os dados relevantes de volta.

3. Depois que todas as informações necessárias são coletadas, o arduino armazena os dados no DS3231.

O Módulo RTC DS3231

O Módulo RTC DS3231 é um módulo RTC relativamente barato com alta precisão. (alguns minutos por ano)

Existem diferentes variedades cuja funcionalidade básica é a mesma, com apenas pequenas diferenças.

A comparação detalhada pode ser encontrada aqui: Comparação do DS323x | maximintegrated.com

Compre DS3231: DS3231 | ebay.com

Folha de dados: Folha de dados DS3231 | maximintegrated.com

Folha de dados: DS1307 Folha de dados | maximintegrated.com

Peças necessárias

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

4 fios de jumper

1x Módulo DS3231 (Módulo DS1307)

Etapa 1: Fiação

Fiação
Fiação

Conecte o DS3231 conforme mostrado na imagem acima. Claro que você pode fazer isso sem o uso de uma placa de ensaio, mas será um pouco mais confuso. Usei um Arduino Nano para demonstração, mas um Uno ou um MEGA também deve funcionar. (Outros também podem funcionar, mas tenho preguiça de confirmar)

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

Etapa 2: o código do Arduino

O Código Arduino
O Código Arduino

Baixe o arquivo.ino abaixo e envie-o para o seu Arduino (no meu caso, um Nano).

O esboço precisa das seguintes bibliotecas instaladas para funcionar corretamente:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

Um tutorial sobre como fazer upload de código para seu arduino pode ser encontrado aqui (arduino.cc).

No IDE do Arduino, verifique se o código foi enviado corretamente. (Carregamento concluído)

Seu Arduino agora está pronto para receber informações de tempo

Baixe o código aqui: DS3231TimeSync.zip (mediafire.com)

Baixe a fonte aqui: DS3231TimeSyncSRC.zip (mediafire.com)

Repositório GitHub: DS3213 RTC Time Sync (github.com)

Repositório Bitbucket: DS3231 RTC Time Sync (bitbucket.com)

Etapa 3: o aplicativo Java

O aplicativo Java
O aplicativo Java

1. Execute o "DS3231Sync.jar" baixado antes, clicando duas vezes nele

2. Uma pequena caixa de diálogo será aberta solicitando a porta do seu arduino

Se você não tiver certeza sobre a porta usada pelo seu arduino, dê uma olhada no IDE do Arduino no canto inferior direito.

(Veja as imagens acima)

3. Outra caixa de diálogo será aberta e solicitará um ajuste de fuso horário

O deslocamento é relativo à hora local do seu computador. Para definir o RTC para sua hora local, basta inserir +00: 00.

É fundamental que você insira a diferença de fuso horário em um formato específico!

O formato geral é + hh: mm ou -hh: mm. Sempre inclua zeros à esquerda!

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

4. O aplicativo Java abrirá uma pequena janela com saída do console

Fique de olho nas mensagens de confirmação como: "Tempo definido encerrado"

Quando o processo de definição da hora terminar, o código imprimirá a hora atual no DS3231 a cada 5 segundos. Você pode confirmar se a hora está definida corretamente.

Se você não obtiver nenhuma saída após ~ 20s, pressione o botão de reinicialização em seu arduino e espere novamente.

Se ainda não estiver funcionando, verifique o sketch no Arduino e / ou carregue-o novamente. (Importante: feche a porta no aplicativo Java antes de fazer o upload para o Arduino; caso contrário, a porta serial será bloqueada!) Em seguida, reinicie a conexão no programa Java.

(O programa Java está usando LocalDateTime para obter a data atual.)

A hora está acertada. Divirta-se

Shoud, você tem algum problema insolúvel para definir a hora, por favor, comente abaixo e compartilhe seu log.txt (na mesma pasta do jar) comigo. Muito obrigado!