Recentemente tive a ideia de fazer uma pequena estação meteorológica utilizando Arduino, já que existem dezenas de sensores compatíveis com ele, com bibliotecas já prontas, bastando conectar o sensor e ler os dados.
O projeto será dividido em várias partes. Nesta primeira parte, vou explicar um pouco sobre os sensores utilizados, a conexão básica e o código necessário para ler os dados do sensor.
Para quem não conhece o Arduino, pode ler mais sobre ele aqui O que é um Arduino e o que pode ser feito com ele?
Componentes
Componentes
- Arduino (eu estou utilizando o Arduino Uno, mas você pode utilizar outro)
- Protoboard
- Sensor de temperatura e umidade DHT11
- Sensor de temperatura, pressão e altitude BMP085
- Display JHD 162A
- Biblioteca de sensores da Adafruit
- 2x potenciômetros (para controle de brilho e luminosidade do display)
- Resistor de 5k Ohm
DHT11
Sensor de umidade e temperatura barato, recebe de 3V a 5V e só precisa de uma entrada analógica para receber as informações.
Características técnicas:
Umidade: 20-80%, com precisão de 5%
Temperatura: 0-50ºC, com precisão de +-2ºC
Tempo de resposta: 2 segundos.
Sensor barométrico e de temperatura, também pode ser usado como altímetro. Recebe 3.3V (ATENÇÂO: se ligar aos 5V do Arduino irá queimar) e utiliza duas entradas análogicas do Arduino para transmitir as informações.
![]() |
Pinos do sensor BMP085 |
Característiacs técnicas:
Pressão: 300-1100 hPa (9000m à -500m), resolução de 0.03hPa
Temperatura: -40ºC à +85ºC, precisão de +- 2ºC.
Mais informações da Adafruit: Bosch BMP085 Breakout Board
Display JHD 162A
Você pode usar qualquer display.
Um tutorial de como ligar o JDH 162A com o Arduino eu achei aqui: Projeto Arduino com display LCD.
Basicamente:
- pino 1 do LCD ligado ao GND do arduino;
- pino 2 do LCD ligado ao 5V do arduino;
- pino 3 do LCD ligado ao pino central do primeiro potênciômetro (controle de contraste);
- pino 4 do LCD ligado ao pino digital 9 do arduino;
- pino 5 do LCD ligado ao GND do arduino;
- pino 6 do LCD ligado ao pino digital 8 do arduino;
- pino 11 do LCD ligado ao pino digital 5 do arduino;
- pino 12 do LCD ligado ao pino digital 4 do arduino;
- pino 13 do LCD ligado ao pino digital 3 do arduino;
- pino 14 do LCD ligado ao pino digital 2 do arduino;
- pino 15 do LCD ligado ao pino central do segundo potênciômetro (controle do brilho);
- pino 16 do LCD ligado ao GND do arduino.
Biblioteca de sensores da Adafruit
Por fim, utilizaremos a biblioteca integrada de sensores da Adafruit: Adafruit Unified Sensor Driver.
Você pode ler mais sobre ela na página do GitHub, mas basicamente ela define um tipo sensors_event_t, e utiliza unidades padrão do S.I. Assim, é possível que futuramente você troque o sensor, sem precisar fazer grandes alterações no código.
Você precisará das seguintes bibliotecas:
- Adafruit Unified Sensor Driver
- DHT-sensor-library
- Adafruit DHT Humidity & Temperature Unified Sensor Library
- Adafruit Unified BMP085/BMP180 Driver
Basta baixar a biblioteca compactada (.zip) e na IDE do Arduino: Sketch > Import Library > Add Library, selecionar o arquivo.zip da biblioteca.
Conetando tudo
Ligue o display conforme o esquema.
O sensor de umidade recebe 5V, GND e o pino analógico para a porta A1 do Arduino. O datasheet recomenda também conectar um resistor pull-up de 5K (alguns lugares recomendam um de 10K) entre o pino de dados e os 5V.
O sensor BMP085 recebe 3.3V (não conecte aos 5V do Arduino, use a saída 3.3V), GND, SDA conectado à porta A4 e SDL conectado à porta A5.
Código
O código do projeto está hospedado no GitHub.
Basicamente, ele recolhe as informações dos sensores e exibe no display LCD.
A temperatura estou usando do BMP085, pois é mais precisa.
Apesar de estrar exibindo também a altura, ela não está precisa pois faltam algumas configurações.
Estação Meteorológica com Arduino - GitHub
Estação Meteorológica com Arduino - GitHub