Olá!, estou tentando utilizar um módulo de RTC DS3231 para criar uma rotina de irrigação em um sistema hidropônico, porém, ao testar o módulo no microcontrolador esp32, ele chega a exibir os valores corretamente, pegando data e hora do meu computador, porém ao ser desconectado ele não continua a contar a hora mesmo estando com a bateria acoplada, permanecendo com o último horário a qual ele exibiu no momento em que a desconexão foi realizada, ou seja, se desligar a esp as 8 horas e religar as 9 o RTC permanece exibindo 8 horas.
Gostaria de saber se alguém já passou pelo mesmo problema, o se alguém sabe como resolver, desde já agradecido!
Eu acho que o que está a acontecer é que ao desligares o computador, a ligação série faz reset do ESP32.
Ao fazer reset do ESP32, o teu código diz-lhe para reinicializar o tempo com esta instrução no teu setup:
rtc.adjust(DateTime(F(DATE),F(TIME)));
Eu diria que o melhor que tens a fazer é compilar e enviar este código para o ESP32. Isso vai fazer com que o relógio seja ajustado com a data e hora corrente.
Depois comentas ou apagas a linha:
rtc.adjust(DateTime(F(DATE),F(TIME)));
compilas e voltas a enviar para o ESP32. Desta vez, ele não vai tentar ajustar a hora e vai assumir que a hora no RTC está correcta.
Existe uma maneira de ver se o RTC já foi ajustado ou não, mas sinceramente não me lembro agora como era feito. De qualquer das formas, se isso acontecesse não quererias mostrar a hora da compilação do programa e quererias talvez mostrar um erro para indicar o problema.