Relógio Meteorológico Arduino – Exibição em Tempo Real de Data, Hora, Temperatura e Umidade
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Arduino UNO | 1 |
| Sensor de Temperatura e Umidade DHT11 (4 pinos) | 1 |
| Módulo RTC DS3231 (Maxim Integrated) | 1 |
| Resistor 10k ohm | 1 |
| Display OLED Gráfico 128x64 (Adafruit) | 1 |
| Protoboard (genérico) | 1 |
| Jumpers (genéricos) | 15 |
Sobre o Projeto
Já pensou em criar sua própria interface que exiba hora, data, temperatura e umidade? É mais simples do que parece. Este projeto utiliza um Arduino UNO (ou Nano), sensor DHT11, módulo RTC DS3231 e um display OLED 128x64 para construir um relógio meteorológico completo.
Arduino UNO/Nano
O microcontrolador central. O UNO foi usado aqui, mas o Nano também funciona, pois possui pinos suficientes.
Sensor DHT11
Sensor digital de temperatura e umidade de baixo custo. Utiliza sensor capacitivo de umidade e termistor. Importante: as leituras devem ser feitas a cada 2 segundos no mínimo.
Nota crucial: Após definir a hora inicial no RTC, comente a linha de configuração e recompile. Isso evita que o relógio reinicie para a hora de compilação a cada ligada.
Módulo RTC DS3231
Relógio de tempo real (RTC) com oscilador de cristal compensado por temperatura (TCXO) integrado. Muito mais preciso que o DS1307. Mantém a hora correta mesmo sem alimentação principal, graças à bateria de backup.
Display OLED Gráfico 128x64
Exibe todos os dados. Compacto e brilhante. Comunicação via SPI ou I2C (configurável na traseira). Displays compatíveis com bibliotecas Adafruit são recomendados.
Código
Arquivo: Time_Temp_Humidity_Display.ino
Inclui bibliotecas para OLED (Adafruit_GFX, Adafruit_SSD1306), DHT (dht.h) e comunicação I2C para o DS3231. O código configura o display, lê o RTC, desenha um relógio analógico na tela e lê temperatura/umidade a cada 2 segundos.
Principais funções:
setDS3231time()– Define hora/data no RTC (use apenas uma vez).readDS3231time()– Lê hora/data do RTC.displayTime()– Mostra data, hora e desenha ponteiros do relógio analógico no OLED.ReadTempAndHum()– Lê DHT11 e exibe no display e monitor serial.loop()– Atualiza relógio a cada segundo, lê DHT a cada 2 segundos.
O código completo está na seção original. Lembre-se de instalar as bibliotecas necessárias: Adafruit_SSD1306, Adafruit_GFX, dht.
Esquemáticos
Diagrama de protoboard e esquemático disponíveis nos arquivos do projeto (Fritzing). Como o display OLED exato não estava no Fritzing, consulte os comentários no código para ligação dos pinos (MOSI=9, CLK=10, DC=11, CS=12, RESET=13).
Bibliotecas Necessárias (Custom Parts)
- Adafruit_SSD1306
- Adafruit_GFX
- DHT sensor library
- Arduino RTC library
Processo de manufatura
- Obter Data e Hora Atuais em Python: Guia Prático
- Monitor de Temperatura e Umidade em Rede com Raspberry Pi – Guia DIY de Configuração
- Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
- Monitoramento Contínuo de Temperatura e Umidade no Raspberry Pi com EzTemp
- Construa uma Estação Meteorológica de Laboratório Habilitada para Rede com Raspberry Pi
- Construa um Sistema de Monitoramento de Temperatura e Luz Multi-Sensor com Raspberry Pi e DS18B20
- Verifique e Calibre Seu Sensor de Umidade para Medições Precisas
- Dominando Data e Hora em Java: Construtores, Métodos e Boas Práticas
- Guia Completo de Data e Hora em C++
- Dominando Datas e Horas em Python: Guia Prático