Arduino

Estação Meteorológica com Arduino: Tutorial Completo 2024

Introdução

Se você deseja criar uma estação meteorológica arduino que permite monitorar as variáveis de temperatura e umidade de um ambiente, exibir estes dados em um display LCD e também em seu smartphone, você encontrou o tutorial que precisava.

Neste artigo vamos construir um projeto que é uma estação meteorológica que pode ser usada em diversos ambientes para verificar a situação climatológica, e tudo isso através de um arduino e de seu celular.

Abordaremos com detalhes cada componente utilizado no sistema trazendo um conteúdo completo para todos os níveis de conhecimento em eletrônica.

O que é uma estação meteorológica?

Uma estação meteorológica é um equipamento capaz de monitorar as condições do clima do ambiente ao qual ele for instalado.

Geralmente ele mede variáveis como temperatura e umidade relativa do ar por exemplo. Alguns dispositivos mais sofisticados são capazes de captar a velocidade e direção do vento, radiação solar, chuva e pressão atmosférica.

Um dos dispositivos que utiliza alguns dos mesmos princípios da estação meteorológica são os refrigeradores de forma geral, você pode encontrar mais informações técnicas e profissionais deste segmento no curso de refrigeração online.

Essas variáveis são fundamentais para definir as condições de um ambiente dando a informação se existem condições para plantação, criação de animais, armazenamento de objetos e até se o ambiente pode afetar sua saúde.

Como faremos nossa estação meteorológica arduino?

Para criar nossa própria estação meteorológica para monitorar os dados do clima vamos utilizar várias referências de componentes que foram utilizados em artigos do nosso site para montar o sistema.

A intenção principal é criar um sistema que seja capaz de medir a temperatura e a umidade do ar e apresente estes dados no smartphone em tempo real para que possamos verificar as condições do clima.

Alguns componentes usados:

Para esta montagem utilizaremos:

  • 1 – Sensor DHT22
  • 1 – Módulo Bluetooth HC-05
  • 1 – Arduino Uno
  • 1 – Protoboard
  • 1 – Resistor 1K Ohm
  • 1 – Resistor 2K Ohm
  • 1 – Resistor 10K Ohm
  • 1 – Potenciômetro 10K Ohm
  • 1 – Display LCD 16×2

Temos em nosso site um artigo dando detalhes sobre o funcionamento de cada componente nesta lista. Recomendo que antes de partir para este projeto completo, verifique e estude cada um dos componentes para não encontrar dificuldades no desenvolvimento.

Sensor de temperatura e umidade DHT 22

O sensor DHT é um sensor de temperatura e umidade relativa do ar, capaz de medir temperaturas de -40°C até 80°C com uma precisão de 0,5°C, enquanto a variação da umidade é de 0 a 100% com precisão de 2%

Para o sensor de temperatura e umidade do ar, temos um conteúdo no site onde você pode aprender o tutorial completo do DHT11 Arduino e suas características.

Módulo Bluetooth HC-05

O módulo HC-05 é responsável por realizar a conexão de um dispositivo bluetooth com outro, como um arduino e um celular por exemplo.

Recomendamos que você veja a abordagem completa sobre este módulo bluetooth Arduino aqui em nosso site afim de se aprofundar na montagem e comunicação desse módulo com a placa microcontroladora.

Display LCD 16×2

O display LCD 16×2 é um módulo capaz de representar até 32 caracteres, sendo 16 por linha. Ele é um módulo versátil e útil apresentar dados e informações.

Para um melhor entendimento deste componente o artigo Display LCD 16×2 Arduino traz todas as informações de como funciona e como utilizar este módulo que é amplamente utilizado em diversos equipamentos do nosso cotidiano.

Com este material e estas informações você vai estar preparado para produzir este e muitos outros projetos.  

Montagem do circuito estação meteorológica arduino

A montagem do circuito integra diversos componentes, por isso devemos redobrar a atenção na montagem para que o sistema funcione como esperamos.

Se você almeja melhorar suas habilidades de interpretação e execução de projetos, o curso online de eletrônica irá te auxiliar nessa conquista  O circuito completo de nossa estação segue na imagem abaixo:

Montagem eletrônica completa com todos os módulos, sensor DHT22, bluetooth HC05 e display LCD 16x2

A fim de facilitar a visualização da montagem, faremos a exibição das conexões de cada componente separado:

  • Montagem do módulo bluetooth HC-05:
Montagem eletrônica entre o Arduino e o módulo bluetooth HC-05
  • Montagem do sensor DHT-22:    
Montagem eletrônica entre o Arduino e o sensor DHT22
  • Montagem do display LCD 16×2:
Montagem eletrônica entre o Arduino e o display LCD 16x2

Código da estação meteorológica Arduino

Para o correto funcionamento do código, é preciso verificar se algumas bibliotecas do arduino estão instaladas como a do display LCD e a do sensor DHT22. É possível verificar a partir do gerenciador de bibliotecas do IDE do arduino.

Exemplo do gerenciador de biblioteca da IDE Arduino buscando a biblioteca LiquidCrystal para o display LCD
Exemplo do gerenciador de biblioteca da IDE Arduino buscando a biblioteca dht para o sensor DHT22

Caso você não tenha as bibliotecas instaladas, reveja o artigo referente ao componente que necessite que terá uma descrição completa de como instalar a biblioteca.

Dando sequência ao projeto este código tem a função de ler a cada 5 segundos os dados de temperatura e umidade do ar e exibir em tempo real os resultados no display LCD, bem como fornecer estes dados ao aplicativo que usaremos para visualiza-los

O código segue abaixo, compile e grave, lembrando de remover as conexões dos pinos do RX e TX do arduino.

// Inclusão das bibliotecas do sensor DHT22 e Do display LCD
#include <LiquidCrystal.h>
#include <DHT.h>

// Define o pino 2 do arduino como o do sensor DHT22
#define DHT_PIN 2

// Define o modelo do sensor DHT
#define DHTTYPE DHT22

// Define os pinos a serem usados pelo display LCD
#define RS 12
#define EN 11
#define D4  4
#define D5  5
#define D6  6
#define D7  7

// Define um parâmetro com valor 5000
#define INTERVALO 5000

// Cria um objeto para o sensor DHT22 e para o DIsplay LCD
LiquidCrystal lcd(RS, EN, D4, D5, D6, D7);
DHT dht(DHT_PIN, DHTTYPE);

// Função executada apenas uma vez durante o funcionamento
void setup() {
  // Inicializa a serial do arduino e printa a mensagem
  Serial.begin(9600);
  Serial.println("INICIANDO SISTEMA");
  dht.begin();

  // Inicia o Display e limpa todos os caracteres
  lcd.begin(16, 2);
  lcd.clear();

  // Posiciona o ponteiro na segunda coluna, primeira linha do display
  lcd.setCursor(2, 0); 
  
  // Apresenta a mensagem no display LCD.
  lcd.print("INIT SYSTEM"); 
  // Espera por 3 segundos 
  delay(3000);
}

//Função que fica em loop durante a execução do programa
void loop() {

  // Cria variáveis que irão receber os dados do sensor
  float h = 0, t = 0, f = 0;

  // Recebe a umidade
  h = dht.readHumidity();
  // Recebe a temperatura em graus Celsius
  t = dht.readTemperature();
  // Fórmula para converter a temperatura para graus Farenheit
  f = dht.readTemperature(true);

  // Lógica para eliminar resultados indesejados
  if(isnan(h) || isnan(t) || t == 0 || h == 0){
    Serial.println(F("Falha na leitura do sensor"));
  }
  // Se estiver tudo ok com a leitura, transmite os dados via bluetooth
  else{
    // Temperatura
    Serial.print(t);
    Serial.print(",");

    // Umidade
    Serial.print(h);
    Serial.print(",");

    // Temperatura em Farenheit
    Serial.print(f);
    Serial.print(",");
    Serial.println();

    // Exibe as informações no display LCD
    lcd.clear();
    lcd.setCursor(2, 0); 
    lcd.print("MONITORANDO");  
    lcd.setCursor(0, 1); 
    lcd.print(t);
    lcd.print("C  ");
    lcd.print(h);
    lcd.print("%RH  ");
  }
  // Espera o intervalo definido para fazer a próxima leitura
  delay(INTERVALO);  
}

Aplicativo usado para monitorar a estação meteorológica Arduino

O aplicativo que iremos utilizar neste projeto, pode ser encontrado no Google Play Store e pode ser instalado em qualquer dispositivo que tenha o sistema Android.

Para encontrar o app basta buscar por DHT11 sensor datalogger que estará entre os primeiros resultados. A imagem exibe qual o aplicativo correto a se instalar.

Guia para escolher o aplicativo correto para monitorar a estação meteorológica no google play

Com o aplicativo instalado, circuito montado e código gravado, podemos passar para a aplicação principal pareando o nosso smartphone com o HC-05. A imagem a seguir mostra como podemos fazer isso através do app.

Guia para parear o arduino com o celular através do aplicativo DHT11 sensor data with bluetooth

A partir do momento em que for conectado, o aplicativo receberá a cada 5 segundos do arduino novas informações. Estes dados serão processados e exibidos em tempo real, diretamente na tela do celular.

Resultados obtidos da estação meteorológica Arduino

Após um tempo funcionando, o sistema gera um histórico dos dados em forma de gráficos, que podem ser analisados, como vemos na imagem.

Tela do celular exibindo os valores de medição de temperatura e umidade recebidos pelo aplicativo através das transmissões do arduino

O aplicativo exibe nitidamente o que cada gráfico representa, as informações ficam distintas e fáceis de se interpretar. O interessante é que você pode adaptar este código exemplo, e aplicar para um qualquer projeto particular que precise monitorar o clima.

Considerações Finais do Projeto

Podemos comprovar neste projeto a eficácia do arduino e dos sensores para este tipo de aplicação. Este tutorial abre portas para você ir além, otimizando esta solução podendo agregar valor e até mesmo desenvolver um produto baseado neste sistema.

Vamos ficando por aqui e espero que vocês tenham gostado deste projeto!! Nos vemos nos próximos tópicos!!

Flávio Babos
Flávio é especialista em tecnologia, empreendedor e estudante de Engenharia Mecatrônica pela Universidade Federal de Uberlândia (UFU). Já desenvolveu diversos projetos de elétrica, eletrônica e atualmente dedica seu tempo em escolher os melhores produtos de tecnologia para ajudar sua audiência no processo de decisão de compra na internet.

Portas Lógicas: Tudo que você precisa saber [Guia Definitivo]

Previous article

Os 10 Melhores Robôs Aspiradores para Comprar em 2024

Next article

18 Comments

  1. Tem algum outro app compativel com o código??

    1. Olá Thamires! Quando elaboramos esta aplicação, definimos as variáveis que o bluetooth envia de acordo com o que este app conseguiria reconhecer para utilizar. Talvez você consiga utilizar um outro aplicativo, porém necessitaria adaptar o nome das variáveis que envia através do bluetooth, para que seu novo app reconheça.

      1. Não tem no código mencionado a relação como bluetooth, poderiam disponibilizar o código que tenha?

  2. o circuito foi feito no tinkercad?

    1. Olá, estes circuitos foram feitos no programa Fritzing.

      1. Olá. Tudo bem? podia me mandar o ficheiro por favor? estou pensando em imprimir numa PCB.

  3. Ola, tudo bem?
    Eu sou professora e pesquisadora e estou testando uma metodologia de levantamento de dados meteorológicos de campo com microprocessadores e sensores.
    Voces vendem um projeto pronto?
    Att.
    Loyde

    1. Olá, tudo ótimo! Não vendemos, porém, agradecemos o interesse 😄

  4. Olá meu amigo, tudo bem ?
    eu gostei muito do seu projeto, e estava pensando em fazer ele no meu TCC que está próximo, por acaso você poderia me passar um meio de contato seu, para eu poder tirar algumas informações que eu possa adicionar no meu TCC ?

  5. Gostei muito desse projeto, gostaria muito de fazer. Um dúvida, como fazer para usar esse mesmo projeto, mas com um display lcd com módulo i2c?

  6. Olá Flavio, seria possível adicionar nesse projeto e app, mais funcionalidade como nível de chuva captada por um pluviometro, ou a pressão atmosférica, em um único código?

  7. Ola Flávio, estou usando seu código para teste com a montegem, de forma idêntica, mas na compilação esta dando este erro ==> exit status 1
    #include expects “FILENAME” or
    Pode me dizer o que estou fazendo de errado?

    Grato

    J.A. Amaral

  8. Ola Flavio.. consegui fazer funcionar, mas não transmite os dados de temperatura e umidade para o celular. Fica atualizando somente a hora.. pode me ajudar ?

    Att.

    Amaral

  9. Boa tarde Fabio,
    Montei seu projeto da Estação meteorológica, porém os valores de umidade e temperatura não estão aparecendo no celular.. Pode me dar alguma dica. Os valores aparecem no monitor serial do arduino e também o BlueTooth conecta normalmente o aplicativo DH11 ok

    Grato

  10. Olá, eu estava observando o código para saber como é realizado a transmissão das informações para o celular via bluetooth e notei que no código não tem nada relacionado, poderiam me ajudar? eu coloquei no meu código, porém as informações capturadas não estão sendo transmitidas no app que foi mencionado aqui no site

  11. Ola Flávio, estou usando seu código para teste com a montegem, de forma idêntica, mas na compilação esta dando este erro ==> exit status 1
    #include expects “FILENAME” or
    Pode me dizer o que estou fazendo de errado?

    Grato

  12. Bom dia Flávio. Montei seu projeto da Estação meteorológica, porém os valores de umidade e temperatura não estão aparecendo no celular. Pode me dar alguma dica. Os valores aparecem no monitor serial do arduino e também o BlueTooth conecta normalmente o aplicativo DH11.

    Obrigado

  13. Flavio, o módulo bluetooth conecta no app, mas não envia os dados. Já revisei e nada. Poderia rever essa parte? Há outros comentários que tiveram esse mesmo problema.

Leave a reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *