Arduino Temp. Monitor e relógio em tempo real com tela 3.2
Componentes e suprimentos
![]() |
| × | 1 |
Aplicativos e serviços online
![]() |
|
Sobre este projeto
Introdução

Queridos amigos, sejam bem vindos a mais um tutorial! Este é o Nick da educ8s.tv e hoje vamos ver como desenvolver este relógio e monitor de temperatura em tempo real! Vamos começar!
Algumas semanas atrás, eu testei este display TFT colorido de 3,2 ”para Arduino com o Arduino Mega e o Due. A tela funciona bem e construí um projeto simples com ela. É um monitor de temperatura e um relógio em tempo real. Como você pode ver na parte superior, podemos ver a data e hora atuais, podemos ver a temperatura agora, e na parte inferior, o Arduino registra a temperatura mínima e máxima que mediu. Também tentei projetar uma interface de usuário básica apenas com formas simples. Como você pode ver, tudo funciona bem e é um projeto muito fácil e útil de construir. Vamos ver como fazer!
Etapa 1:obtenha todas as peças
As peças necessárias para construir este projeto são estas:
- Arduino devido
- Um visor TFT colorido de 3,2 ”
- Módulo DS3231 RTC
- cabeçalhos masculinos
- fios
O custo do projeto gira em torno de 24 $. Você precisa de cerca de 14 $ para o Arduino Due, 8 $ para o display e cerca de 2 $ para o módulo RTC.
Etapa 2:Módulo de relógio em tempo real DS3231

O módulo de relógio de tempo real DS3231 é, como seu nome sugere, um relógio de tempo real. Usando sua bateria, ele pode manter o tempo por anos, uma vez que tem um consumo mínimo de energia.
O DS3231 é um relógio em tempo real I2C (RTC) extremamente preciso e de baixo custo com um oscilador de cristal com compensação de temperatura (TCXO) e cristal integrados. O dispositivo incorpora uma entrada de bateria e mantém uma cronometragem precisa quando a alimentação principal do dispositivo é interrompida. A integração do ressonador de cristal aumenta a precisão de longo prazo do dispositivo e também reduz a contagem de peças em uma linha de fabricação.
O RTC mantém informações de segundos, minutos, horas, dia, data, mês e ano. A data no final do mês é ajustada automaticamente para meses com menos de 31 dias, incluindo correções para ano bissexto. O relógio opera no formato de 24 ou 12 horas com um indicador AM / PM. Dois alarmes programáveis de hora do dia e uma saída de onda quadrada programável são fornecidos. O endereço e os dados são transferidos serialmente por meio de um barramento bidirecional I2C.
O custo do módulo é extremamente baixo; custa cerca de 2 $ incluindo a bateria!
Venha aqui.
Vamos usá-lo para manter o tempo e obter leituras de temperatura!
Etapa 3:o visor TFT colorido de 3,2 "(HX8357C ou HX8357B)

Sempre quis ter uma grande exibição para meus projetos do Arduino. Então, algumas semanas atrás, decidi comprar este display TFT colorido de 3,2 polegadas para Arduino Mega e Arduino Due porque o preço é tão tentador! Menos de US $ 10 para um display TFT colorido de 3,2 '. Com esse preço, você não pode errar.
Venha aqui.
A tela tem resolução de 480x320 pixels e um adaptador de cartão SD na parte traseira. Não usei a funcionalidade do cartão SD até agora. Vou tentar usá-lo no futuro. Se você olhar com atenção, verá que a tela também usa um regulador de 3,3 V, por isso funciona bem com níveis lógicos de 5 V e 3,3 V.
A tela vem em duas variações. Um deles usa o controlador HX8357C e o outro o controlador HX8357B. Felizmente, podemos usar a mesma biblioteca para os dois.
Biblioteca DISPLAY.
Depois de baixar a biblioteca, você deve abrir a linha de comentário 13 do arquivo User_Setup.h e descomentar a linha 14 se o monitor que você tem está usando o driver HX8357C, como o meu.
Etapa 4:conectando as peças




Vou usar o Arduino Due para construir este projeto, embora pudesse usar o Arduino Mega, um pouco mais barato, mas mais lento. O Arduino Due é muito mais rápido que o Arduino Mega e tem muita memória, por isso eu o prefiro para este projeto.
Em primeiro lugar, temos que conectar todas as partes. Vou usar esses cabeçalhos machos para conectar o módulo RTC ao Arduino DUE.
Precisamos de quatro pinos de cabeçalho. Dois para alimentação e dois para a interface I2C. Nós os dobramos assim e conectamos um ao pino de 3,3 V da placa Arduino Due, o outro ao GND e os outros dois ao pino SDA e SCL da placa. Com alguns fios fêmeas, conectamos o módulo à placa. É isso.
Agora podemos anexar a tela ao quadro. Você não precisa conectar esses dois pinos à placa Arduino, então vou deixá-los flutuando.
Agora estamos prontos para potencializar o projeto. Como você pode ver, funciona bem! É muito fácil! Vamos agora para o computador para ver o lado do software do projeto.
Etapa 5:O Código do Projeto

Agora estamos prontos para dar uma olhada no código. Estamos usando duas bibliotecas neste projeto:
- Biblioteca de exibição
- Biblioteca DS3231
Você tem que instalá-los e então o projeto irá compilar perfeitamente!
A primeira coisa que temos que fazer é definir a hora para o módulo de relógio em tempo real, se ainda não estiver definida. Para fazer isso, insira a data e hora atuais na função void setRTCTime,
void setRTCTime () {DateTime dt (2016, 4, 4, 13, 56, 30, 1); // Ano, Mês, Dia, Hora, Minutos, Segundos, Dia da Semana rtc.setDateTime (dt); }
descomente a chamada para a função na função Setup:
void setup () {rtc.begin (); tft.init (); tft.setRotation (1); tft.fillScreen (0xC618); atraso (100); printUI (); setRTCTime ();}
E carregue o programa no Arduino. Agora a hora está acertada. Mas, então, temos que comentar a chamada da função setRTCTime novamente e fazer o upload do programa para o Arduino mais uma vez.
void setup () {rtc.begin (); tft.init (); tft.setRotation (1); tft.fillScreen (0xC618); atraso (100); printUI (); // setRTCTime ();}
Como você pode ver, o código do projeto é simples. Apenas imprimimos a interface do usuário e exibimos a data, a hora e nela.
void loop () {float temperature =rtc.getTemperature (); getAndPrintTime (); printTemperature (temperatura); if (temperatura> maxTemperature) {maxTemperature =temperatura; updateMaxTemperature (); } if (temperatura
Você pode encontrar o código anexado a esta etapa. Você pode baixar a versão mais recente do código do site do projeto aqui:http://educ8s.tv/arduino-real-time-clock-32/
DueRTC.ino
Etapa 6:reflexões finais

Como você pode ver com poucas linhas de código e com custo muito baixo, podemos construir um projeto muito útil. Vou trabalhar mais neste projeto, pois se tornará uma estação meteorológica avançada, com mais sensores, gráficos e recursos wi-fi.
Como o Arduino Due é muito rápido e tem uma tonelada de memória, acho que é a placa Arduino ideal para usar. O que você acha deste projeto? Como você quer ver isso evoluir?
Por favor, poste seus comentários ou idéias na seção de comentários abaixo.
Código
- Snippet de código # 2
- Snippet de código # 3
- Snippet de código 4
Snippet de código # 2 Texto simples
configuração vazia () {rtc.begin (); tft.init (); tft.setRotation (1); tft.fillScreen (0xC618); atraso (100); printUI (); setRTCTime ();}
Snippet de código # 3 Texto simples
configuração vazia () {rtc.begin (); tft.init (); tft.setRotation (1); tft.fillScreen (0xC618); atraso (100); printUI (); // setRTCTime ();}
Snippet de código # 4 Texto simples
void loop () {float temperature =rtc.getTemperature (); getAndPrintTime (); printTemperature (temperatura); if (temperatura> maxTemperature) {maxTemperature =temperatura; updateMaxTemperature (); } if (temperaturaGithub
https://github.com/Bodmer/TFT_HX8357_Duehttps://github.com/Bodmer/TFT_HX8357_DueGithub
https://github.com/SodaqMoja/Sodaq_DS3231https://github.com/SodaqMoja/Sodaq_DS3231
Processo de manufatura
- Controle de um efeito com sensores reais
- Relógio Arduino com horas de oração islâmica
- Word Clock com resolução de minutos em palavras
- Brincando com Nextion Display
- Relógio digital TM1637 com configuração de hora e funcionalidade de alarme
- Voltímetro DIY com Arduino e um visor Nokia 5110
- BME280 Temperatura, Umidade e Pressão na Tela Nextion
- Controle do Servo Motor com Arduino e MPU6050
- u-blox LEA-6H 02 Módulo GPS com Arduino e Python
- Despertador simples com DS1302 RTC