terça-feira, 28 de agosto de 2018

Trabalhando com hora no Arduino: Módulo RTC

Anteriormente trabalhando em nosso datalogger precisamos controlar o tempo entre as leituras, um controle normal, mas por falta de material trabalhamos com a função millis do microcontrolador, o que traz diversos problemas e a imprecisão de qual momento o dado foi realmente lido. Eu consigo saber quanto tempo depois do arduino ser ligado meu dado foi lido, mas não posso precisar que horas foi isso. E se houver uma queda de energia no processo?

Desta forma é ideal trabalhar com um módulo RTC sempre que for coletar dados, esse módulo pode não ser muito compacto, mas é barato (R$4,49) e ainda permite adicionar um sensor de temperatura no próprio corpo do RTC.

Seu funcionamento também é muito simples, basta utilizar a biblioteca RTClib (https://github.com/adafruit/RTClib). O código baixo captura a data do computador no momento da compilação do código, coloca ela como a data atual do módulo e ainda exibe as informações de data e hora no monitor serial. A conexão de cabos é simples pois o mesmo funciona por meio de I2C. 

É possível simplificar bem o código, fazendo o mesmo de tornar bem compacto apenas coletando informações do RTC. Também pode ser possível utilizar o RTC para controlar intervalos de repetição dentro do loop, como ler sensores a cada 30 segundos
Eu utilizei o código acima para criar um simples datalogger que gravasse a leitura de uma porta analógica a cada 30 segundos, ou seja, cada vez que os segundos fossem 30 ele gravava no SD a leitura analógica. Abaixo deixo o arquivo gerado, pode verificar que foi satisfatório o resultado após cerca de uma hora.



Nenhum comentário:

Postar um comentário