Estação Meteorológica com Arduino 129

Apresentamos um projeto de Estação Meteorológica com Arduino, utilizando vários componentes compactos e de baixo custo para exibir em um display gráfico informações sobre temperatura, umidade e pressão:

Para a montagem dessa estação, usaremos: um sensor de temperatura e umidade DHT22, um sensor de pressão BMP180 e um display LCD Nokia 5110. Vamos apresentar mais informações sobre eles antes de mostrar o processo de montagem da Estação Meteorológica com Arduino.

Sensor de Temperatura e umidade DHT22

O DHT22  é um sensor de temperatura e umidade sucessor do DHT11. Efetua medições de temperatura entre -40 e 125 ºC, e umidade entre 0 e 100%. Pode ser alimentado com tensões entre 3.3 e 6V e, como o DHT11, possui 4 pinos mas apenas 3 são utilizados: Vcc, Data e GND.

Sensor de temperatura e umidade DHT22

O DHT22 tem baixo consumo de corrente (2,5 mA durante as medições e entre 100 e 150 µA em standby), possuindo internamente um sensor de umidade capacitivo e um termistor. Nesse sensor, o intervalo recomendado entre medições é de 2 segundos (contra 1 segundo no DHT11). Você pode obter mais informações sobre como usar este sensor através deste tutorial aqui no nosso blog.

Sensor de temperatura e pressão BMP180

O sensor de temperatura e pressão BMP180 também é uma evolução de um outro sensor, o BMP085, sendo totalmente compatível em termos de firmware, interface e software (pode utilizar inclusive a mesma biblioteca).

A comunicação com o Arduino é feita por meio da interface I2C, e suporta alimentação de 1.8 à 3.6V, sendo portanto necessário tomar um certo cuidado ao ligar esse sensor ao Arduino.

Sensor de pressão BMP180

Apesar dessa limitação na alimentação do sensor, um regulador de tensão na placa permite que os pinos de dados (SCL e SDA) sejam utilizados normalmente em placas com nível de sinal de 5V, como o Arduino Uno. Descubra como controlar pressão e temperatura seguindo este post também aqui do nosso blog.

Display LCD Nokia 5110

O display LCD Nokia 5110 que vamos utilizar no projeto é um display gráfico de 84×48 pixels, 1,6 polegadas e backlight (luz de fundo) azul, com tensão de alimentação de 5V. Sua conexão com o Arduino utiliza 5 fios, e a configuração dos pinos de ligação é feita via software, assim podemos utilizar praticamente qualquer pino do Arduino. Para o backlight (pino BL), a tensão máxima suportada é de 3.3V.

Display Nokia 5110

 No nosso projeto, vamos ligar esse display da seguinte maneira:

  • Pino RST ligado ao pino 12 do Arduino
  • Pino CE ligado ao pino 11 do Arduino
  • Pino DC ligado ao pino 10 do Arduino
  • Pino Din ligado ao pino 9 do Arduino
  • Pino Clk ligado ao pino 8 do Arduino
  • Pino Vcc ligado ao pino 5V do Arduino
  • Pino BL ligado ao pino 3.3V do Arduino
  • Pino GND ligado ao GND do Arduino

Se você deseja montar esse projeto utilizando o display Nokia 5110 vermelho, consulte as especificações do fabricante, pois existem muitos modelos desse display que funcionam apenas com nível de sinal de 3.3V.

Circuito Estação Meteorológica

Vamos apresentar duas opções de circuito, sendo uma com o Arduino Uno, para quem deseja apenas testar o projeto na protoboard, e outra com o Arduino Nano, ideal para montagens definitivas e que pode ser colocado em uma caixa plástica por exemplo.

No Arduino Uno, utilizamos os pinos de 8 à 12 mencionados anteriormente para ligação do display, e o pino 3 como entrada de dados do DHT22 com um resistor de 10K funcionando como pull-up. O sensor BMP180 utiliza os pinos da interface I2C, que são os pinos analógicos A4 e A5:

Circuito Estação Meteorológica - Arduino Uno

No Arduino Nano, são utilizados os mesmos pinos. Verifique na imagem abaixo a pinagem dessa placa e a conexão dos componentes:

Arduino Nano - Pinos

Circuito Estação Meteorológica - Arduino Nano

Para deixar o projeto mais compacto usamos uma case de modem para proteção e transporte mas você pode usar qualquer outra caixa para obter o mesmo resultado:

Circuito Estação Meteorológica

Bibliotecas e programa

Antes de carregar o programa faça o download das bibliotecas abaixo :

Descompacte cada uma delas e copie para dentro da pasta LIBRARIES da IDE do Arduino.

A Adafruit_GFX é a biblioteca gráfica, responsável pelas funções de desenho de retângulos, círculos, linhas, etc. A Adafruit_PCD8544 é a biblioteca utilizada para gerenciar a comunicação entre o Arduino e o display. A biblioteca BMP085 serve tanto para o sensor BMP085 como para o BMP180, utilizado neste projeto.

O mesmo programa pode ser carregado no Arduino Uno ou no Arduino Nano. O programa desenha três retângulos com as bordas arredondadas, e dentro deles mostra as informações de temperatura, umidade e pressão, atualizando as informações à cada 5 segundos.

Você pode utilizar também o sensor de temperatura DHT11 no projeto, utilizando a mesma biblioteca DHT mostrada acima. Para isso, altere a linha DHT dht(3, DHT22), substituindo DHT22 por DHT11.

Display Estação Meteorológica

Gostou? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo) e visite nossa loja FILIPEFLOP!

Posts Relacionados

129 Comentários

  1. Agora já sei o que fazer de TCC 😀
    Parabéns!

  2. Ótimo post, quero ver agora se consigo encaixar o meu Arduino Uno dentro de uma case de modem hehe.

  3. legal esse projeto

  4. Que parâmetros são esse usados abaixo,que representa na função do retângulo do visor ?

    display.drawRoundRect(0,25, 84 ,23, 3, 2);

    1. Parâmetros da biblioteca: drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)

      Pelo o que eu entendi: drawRoundRect( eixo X, eixo Y, Largura, Altura, Borda, Cor)

    2. Boa noite Caique,

      0 e 25 são as coordenadas iniciais (x e y)
      84 e 23 são a largura e altura do retangulo
      3 é o raio da borda
      2 é a cor do retangulo

      Maiores informacoes voce encontra neste link: https://learn.adafruit.com/adafruit-gfx-graphics-library/graphics-primitives

      Abraço.

      Adilson – Equipe FILIPEFLOP

  5. Seria possível postar os dados de hora em hora num servidor, para acompanhamento posterior?

    1. Fiz uma estação meteorológica semelhante, utilizando um DHT22 para medir pressão e temperatura, um BMP180 para medição da pressão atmosférica, e outros sensores para medição de luminosidade, exposição UV e material particulado. Conectei o meu Arduino Uno ao wi-fi utilizando um módulo ESP8266, que posta os dados a cada 5 minutos no thingspeak.
      Os dados públicos podem ser acompanhados no site:
      https://thingspeak.com/channels/35540

      1. Igor, Seria pedir demais se postasse o seu programa? Ou somente indicasse quais as bibliotecas que utilizou?

        1. jagoris,

          Você pode testar esse código abaixo para ver se funciona? Conectei o DHT no pino 2 e o BMP nos pinos A4 e A5.

          As bibliotecas que utilizei estão no drive:

          https://drive.google.com/folderview?id=0B03tFgG6RVCTfm1OQ0RQOXN1N3paNzEtcl83VnJqWkRZMmhHT1pxWXNORUowXzVQVjZNR2s&usp=sharing

          #include
          #include
          #include
          #include
          #include
          #include

          dht DHT;
          Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);

          #define DHT22_PIN 2

          void setup()
          {
          Serial.begin(9600);
          monitor.begin(9600);

          /* Initicializar o sensor*/
          if(!bmp.begin())
          {
          /* Se ocorrer um problema na detecção do BMP085, verificar suas conexões */
          Serial.print(“O BMP085 não foi detectado. Verifique suas ligações ou o I2C ADDR!”);
          while(1);
          }
          }

          void loop(){
          int chk = DHT.read22(DHT22_PIN);
          float humidity = DHT.humidity;
          float temperature = DHT.temperature;

          sensors_event_t event;
          bmp.getEvent(&event);

          float pressure = 0;
          float temperature1 = 0;

          if (event.pressure)
          {
          pressure = event.pressure;
          bmp.getTemperature(&temperature1);
          }

          Serial.print(“Umidade: “);
          Serial.println(humidity);
          Serial.print(“Temperatura 1: “);
          Serial.println(temperature);
          Serial.print(“Pressão: “);
          Serial.println(pressure);
          Serial.print(“Temperatura 2: “);
          Serial.println(temperature1);

          delay(30000);

          }
          }

          1. #include stdlib.h
            #include DHT.h
            #include Wire.h
            #include Adafruit_Sensor.h
            #include Adafruit_BMP085_U.h

    2. Boa noite Evandro,

      Sim, você pode utilizar vários métodos para fazer isso, como por exemplo usar um módulo wireless NRF24L01.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  6. mais não teria como ele mostrar se vai chover ou fazer sol de acordo com a pressão atmosférica ?
    assim como aqueles relojios de paredes que tem uma mini estação meteorológica neles ?

    1. Adicionar alguns comandos a mais ao sketch fornecido, para dar uma utilização mais interessante ao conjunto proposto é um bom exercício mental e apenas uma questão de combinar valores de pressão, umidade relativa e temperatura.
      Pode-se até adicionar uma tela “dinâmica” que apareceria em substituição à tela principal (um bitmap adequado ficaria até bacana) quando os parâmetros citados fossem propícios à precipitação pluviométrica.
      Sugestão: estes valores poderiam ser tomados de observações durante a utilização do aparelho em períodos que antecedem chuvas para serem utilizados na modificação do sketch.
      Mas não nos decepcionemos. Se até nossos melhores serviços de meteorologia às vezes erram, também pode haver uma boa margem de “não-acertos” nas nossas previsões.

    2. Achei um resumo bem explicativo e rápido para entender as leituras de pressão do BMP180 e ajudar nas nossas previsões de tempo:

      http://www.climaonline.com.br/art_pdf/press.pdf

    3. Boa noite,

      É possível sim, mas você teria que armazenar os dados por algum tempo, para realizar uma previsão do tempo com mais precisão.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  7. onde compro essa caixa branca que vc usou?

    1. Boa noite Sérgio,

      Usamos uma caixa de um modem “antigo”. 🙂

      Abraço !

      Adilson – Equipe FILIPEFLOP

  8. Boa noite galera,

    Baixei as bibliotecas e tentei verificar o skecth, Achei interessante, mais dá o seguinte erro:
    Alguém sabe o que esta acontecendo ? Valeu.

    In file included from sketch_may04a.ino:8:
    C:Program Files (x86)ArduinolibrariesAdafruit_BMP085/Adafruit_BMP085.h:100: error: expected class-name before ‘{‘ token
    C:Program Files (x86)ArduinolibrariesAdafruit_BMP085/Adafruit_BMP085.h:114: error: ‘sensors_event_t’ has not been declared
    C:Program Files (x86)ArduinolibrariesAdafruit_BMP085/Adafruit_BMP085.h:115: error: ‘sensor_t’ has not been declared
    sketch_may04a:25: error: ‘Adafruit_BMP085’ does not name a type
    sketch_may04a.ino: In function ‘void setup()’:
    sketch_may04a:74: error: ‘bmp180’ was not declared in this scope
    sketch_may04a.ino: In function ‘void loop()’:
    sketch_may04a:88: error: ‘bmp180’ was not declared in this scope

  9. Projeto interessante! Alguma ideia de como medir a velocidade do vento utilizando um Arduino?

    1. Boa noite Igor,

      Ainda não. Estamos pesquisando.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  10. Apesar de ter baixado e instaladas as bibliotecas indicadas, quando compilo o programa tem o seguinte erro: fatal error: Adafruit_BMP085.h: No such file or directory
    compilation terminated.

    O que pode estar ocorrendo?

    1. Será que a biblioteca foi baixada e deszipada em alguma localização diferente, como a área de Downloads? Um recurso que você tem se você pesquisar onde foi instalada a library, é usar o recurso que existe na própria IDE do Arduino, chamado Importar Library, e apontar para o compilador o lugar da biblioteca. Isso costuma acontecer se a mesma não esta no diretório mais adequado que, em geral é chamado de “libraries”.

      1. PFerreira, descobri que tem que renomear o include do BMP085 para Adafruit_BMP085_U. Mas ao compilar não é encontrado o arquivo Adafruit_Sensor.
        Tenho a impressão que este tutorial não foi testado com estas bibliotecas.
        Alias, em https://learn.sparkfun.com/tutorials/bmp180-barometric-pressure-sensor-hookup- tem bibliotecas e informações interessantes já para o BMP180….

        1. jagoris eu sou mais utilizador do Linux e, neste ambiente, o sketch compila 100%.
          Resolvi testá-lo no Win8, verifiquei os problemas apontados.
          Talvez o autor do artigo tenha testado o sketch em ambiente Linux ( ou Mac) e, assim como eu pensei, achou que estava tudo bem em qualquer ambiente.

          1. Boa noite PFerreira,

            Testado no Windows 7, sem problemas. Pode ser que haja algum problema com relação ao Windows 8.

            Grato.

            Adilson – Equipe FILIPEFLOP

        2. Na pesquisa que empreendi pelo problema de compilação do sketch Estação Meteorológica deste site, acabei atualizando minhas versões da IDE do Arduino, tanto de Windows8 e Ubuntu, para a versão 1.6.4.
          Esta versão, além de mais prática na gerência e instalação de libraries, também é um pouco mais rápida que a que eu havia instalado anteriormente 1.6.1. (No Linux é uma bala).

          Acabei achando um sketch de nome igual, só que em inglês, WeatherStationV4, que
          compilou direto nos dois ambientes de programação. O sketch utiliza as libraries tradicionais LCD5110_Graph.h // DHT.h // Wire.h // SPI.h e duas que acho que são da Sparkfun: SFE_BMP180.h e LowPower.h
          A apresentação na telinha segue a mesma disposição do “EstaçãoMeteorologica” com
          a diferença de que não tem os frames (os retângulos de cantos arredondados) que
          envolvem as informações de temperatura/umidade e pressão. Uma implementação que pode ser de utilidade para quem se dedicar a uma estação é a de economia de energia proporcionada pela utilização de um LDR que comanda o display fazendo com que ele entre em modo sleep.
          Quem quiser usar os frames é só usar a library gráfica da Adafruit ( a de final GFX0).
          Quem se interessar é só procurar no youtube pela chave de pesquisa educ8s.com e, no texto de comentários do próprio autor do vídeo ele passa o link do sketch.

    2. Boas a mim acontece-me o mesmo!
      Pena que esteja a dar este erro, seria bom que este erro fosse corrigido, comprei o material e agora nada feito e achei muito interessante esta mini estação meteo.

      1. Se você quiser posso te passar o arquivo .hex, saída da compilação, e que pode ser carregado na placa arduino com o utilitário avrdude (existe para Windows, também).

      2. Boa noite Victor,

        Alteramos o link da biblioteca, veja se resolve o problema, por favor. Faça o download à partir deste link:

        https://github.com/adafruit/Adafruit-BMP085-Library

        Abraço.

        Adilson – Equipe FILIPEFLOP

    3. Boa noite,

      Parece ser algum erro na instalação da biblioteca, verifique se ela foi devidamente carregada.

      Grato.

      Adilson – Equipe FILIPEFLOP

    4. Boa noite Victor,

      Alteramos o link da biblioteca, veja se resolve o problema, por favor. Faça o download à partir deste link:

      https://github.com/adafruit/Adafruit-BMP085-Library

      Abraço.

      Adilson – Equipe FILIPEFLOP

  11. Boas,
    não sei o que se passa, mas dá erro,
    ou seja a compilação mencionada acima não funciona, ou será so a mim que da erro.
    Deixo imagem…
    http://i.imgur.com/2h1nE4e.png
    Os erros são:
    Opções de compilação alteradas, compilando tudo
    METEO.ino:5:26: fatal error: Adafruit_GFX.h: No such file or directory
    compilation terminated.
    Erro ao compilar.

    1. Esta talvez possa ajudar… Você instalou a biblioteca Adafruit_GFX no diretório libraries do arduino? Se instalou, verifique para que no nome da pasta não tenha nenhum ifem. Renomeie se tiver, pode usar o undesrcore, ou deixe sem espaço algum. Por exemplo a pasta do GFX com o nome correto deve ser: Adafruit_GFX_LIbrary_master ou simplesmente Adafruit_GFX. Faça isto para todas as pastas dos arquivos das bibliotecas.

      1. Obrigado pela a ajuda, mas não sei o que se passa, ja mudei como informou mas nada feito… continuo com erros:
        meteo.ino:8:29: fatal error: Adafruit_BMP085.h: No such file or directory
        compilation terminated.
        Erro ao compilar.

        1. Vitor, faça o que indiquei com todas as bibliotecas. Não deixe ifens e renomeie a linha do include Adafruit_BMP085.h para Adafruit_BMP085_U.h.
          Abra a pasta de libraries do arduino e na pasta do BMP085 Vc deve encontrar o include do BMP085.
          Honestamente, eu ainda não consegui compilar este sketch, pois parece que ainda tem erros. Estou aguardando que o suporte do FF diga se conseguiu com estas blibliotecas.

          Em https://learn.sparkfun.com/tutorials/bmp180-barometric-pressure-sensor-hookup- tem bibliotecas e informações interessantes já para o BMP180….

        2. Boa noite Victor,

          Alteramos o link da biblioteca, veja se resolve o problema, por favor. Faça o download à partir deste link:

          https://github.com/adafruit/Adafruit-BMP085-Library

          Abraço.

          Adilson – Equipe FILIPEFLOP

    2. Boa noite Victor,

      Por favor verifique se a biblioteca Adafruit_GFX foi instalada corretamente.

      Grato.

      Adilson – Equipe FILIPEFLOP

  12. Parabéns! Obrigado por compartilhar o projeto!

  13. Boa Noite,

    Comprei o LCD e o BMP180 e chegou hoje da Filipeflop, porem fiz tudo e não aparece nada no isplay….outra coisa que percebi que demora muito para compilar e baixar para o arduino….. alguém poderia me ajudar ??????

    Obrigado

    Glauco

    1. Boa noite Glauco,

      Ele apresenta algum erro na compilação ou o programa é carregado normalmente no Arduino ?

      Grato.

      Adilson – Equipe FILIPEFLOP

  14. Gostaria de saber se o sensor de temperatura utilizado na estação pode ser utilizado no controle de temperatura de água. No caso, a água será aquecida e preciso controlar o aquecimento (ligando ou desligando o equipamento de aquecimento conforme a temperatura medida. Obrigado desde já.

    1. lembre-se que sensores como DHT11, DS18B20, DHT12 (digitais) são sensores para medição de temperaturas ambientes APENAS, nao ponha na água kk.
      Para temperatura da água, tera que usar sensores diferentes, normalmente analógicos, tais como transistores (ex.: BC548), circuitos integrados proprios (ex.: LM35), diodos semicondutores (ex.: 1N4148) ou termopares. e lembre-se que ainda sim voce deve acopla-los de alguma forma pra evitar contato direto com a agua (usei silicone no meu projeto).

    2. Boa tarde Cândido,

      Para utilização na água ou em ambientes úmidos, recomendamos o DS18B20: https://www.filipeflop.com/pd-1e7d0e-sensor-de-temperatura-ds18b20-a-prova-d-agua.html

      Abraço.

      Adilson – Equipe FILIPEFLOP

  15. Onde comprar essas caixas plasticas para os projetos?

  16. como faço para baixar o dht.h para o meu pc?
    preciso dele para fazer uma estação meteorológica

    1. Bom dia Eduardo,

      Você pode baixar a bibliotecas neste link: https://github.com/adafruit/DHT-sensor-library

      Após descompactar o arquivo, coloque a pasta dht dentro da pasta LIBRARIES da IDE do Arduino.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  17. Baixei as bibliotecas corretamente e coloquei elas no local certo, consegui fazer o programa compilar mas quando carrego pro arduino na protoboard já montada a tela do nokia 5110 fica azul e nao aparece nada.. gostaria de saber o que pode ser..

    1. Bom dia,

      O Nokia é um display bem sensível, veja se não existe algum mau contato ou solda fria nos conectores. Tente também testar somente o display separadamente.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  18. O projeto roda apenas no arduino Uno ou nano? Tentei montar o projeto no Mega mas sem sucesso. Conseguem me ajudar…

  19. Boa noite,

    Essa logica o programa roda apenas com o arduino uno ou Nano. Alguem consegue me ajudar a fazer com que rode também no mega.
    Desde ja agradeço.

  20. Olá,

    Qual foi o programa utilizado para desenhar o esquema do circuito?

    Obrigado.

    1. Bom dia Lucas,

      O circuito foi desenhado utilizando o Fritzing.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  21. Montei o circuito e ele funcionou perfeitamente ate eu tentar conectar mais um sensor, o de umidade do solo, usando um exemplo de porta analógica que vi na internet. Quando adiciono as linhas no programa que fazem a leitura, osensor de temperatura comeca a dar valores erraticos… Alguem ja viu isso ??
    Gratoe

  22. Teria como fazer ele enviar um sinal para uma buzina quando a temperatura chegar. Acima de 30 graus ?? Onde colocar essa buzina. E onde devo acresetar a linha de comando

    1. Boa tarde Italo,

      Você pode usar um IF simples para fazer isso. Exemplo:

      if (t > 30)
      {
      //Aciona buzzer pino 4
      digitalWrite(4);
      }

      Abraço

      Adilson – Equipe FILIPEFLOP

  23. Adilson,
    Excelente projeto. Seria possível acrescentar um módulo de relógio e gravar os dados (incluindo o horário) num módulo SD a cada, digamos, variação de um grau na temperatura, um por cento na umidade ou 0,1 hPa? Ou seja, introduzir mais dois módulos, cartão e relógio?
    Grato.

  24. Boa tarde. Eu segui todos os passos que você descreveu, contudo no meu projeto eu exclui o DHT e só deixei o BMP180, porque eu só queria temperatura e pressão. Baixei todas as bibliotecas, e quando mando compilar, o programa diz:
    “Esta__o_Met.ino:5:30: fatal error: Adafruit_PCD8544.h: No such file or directory
    compilation terminated.
    Erro compilando.”
    Sem o DHT, qual seria a programação? Vou usar a pressão em mmHg, é possível?
    Grato!

    1. Bom dia,

      O erro que você descreve está relacionado à biblioteca PCD8544. Verifique se ela foi instalada corretamente.

      Abraço

      Adilson – Equipe FILIPEFLOP

  25. Olá, parabéns pelo blog, aprendo muito com ele.
    Gostaria também de incluir no projeto o RTC 1307. Porém nos exemplos do Blog com o RTC utilizam as mesmas portas (A4 e A5). Como posso alterar as portas do BMP180 ou do RTC?

    1. Bom dia Eduardo,

      Os dois módulos utilizam a comunicação I2C, assim você pode usar os dois sensores nos mesmos pinos A4 e A5, desde que eles tenham endereços diferentes. Verifique o endereço I2C de cada módulo utilizando o I2C Scanner, como no exemplo deste link: http://www.arduinoecia.com.br/2014/09/sensor-gy-80-acelerometro-bussola-barometro.html

      Abraço

      Adilson – Equipe FILIPEFLOP

      1. Muito obrigado pela atenção. Segui as orientações e deu certo.

  26. Bacana este tópico viu…. Montei igualzinho, a única diferença é que usei o visor vermelho e para isto alterei a alimentação do pino 5v para o 3v3. E coloquei ele alternando a cada medição entre mostrar pressão e KPa e altitude em metros.
    Entretanto ele está marcando uma altitude/pressão menor, ou seja a altitude daqui onde estou é 789 m, e ele marca 721. Tem que fazer algum ajuste no sensor?
    Corrigi na gambiarra, somando um valor nas variáveis de pressão e altitude na linha do programa, mas acho que ele tinha que ter precisão.
    Outra coisa a alertar é que usei um Nano made China e o chip da porta USB é outro(CH340), portanto apanhei muito até descobrir que a biblioteca deveria ser outra para que ele reconhecesse a USB.

  27. opa otimo projeto mas gostaria de adicionar um enthernet shield e mais alguns sensores vc pode me ajudar

  28. Boa Noite a todos,
    Montei este projeto por sinal muito legal e parabéns, coloquei um relé e o mesmo liga e desliga com a atualização do DHT, não consigo fazer com que pare na temperatura pré determinada.. Não estou usando o sensor de pressão; Se alguém tiver alguma ideia agradeço.
    Um abraço a todos.

  29. Prezados,
    Montei todo o circuito conforme indicado, utilizando o Mega 2560 e o DHT11, entretanto os dados dos sensores não são capturados e apresentados no display, apenas traços nos retangulos! Poderiam de ajudar?
    Grato.

  30. O meu display é o vermelho, na de 3,3 não aparece nada e na de 5 fica tudo manchado a tela

    http://imgur.com/AvaeMpm

    Rodrigo Fonseca de Andrade Júnkior
  31. Olá! Teria como adicionar um sistema com chip de internet 3g, para envio dos dados via 3g, e acesso remoto (pergunto em 3g por indisponibilidade de wi-fi na área que estou pensando)?
    No mais, parabéns pelo blog e postagens, excelente!
    Abraço

    1. Boa tarde Fernando,

      Sim, você pode usar o GSM Shield para se conectar à internet: https://www.filipeflop.com/pd-77833-gsm-gprs-shield-para-arduino-efcom-sim900-antena.html

      Abraço.

      Adilson – Equipe FILIPEFLOP

  32. Olá…
    Neste projeto qual é consumo aproximado do sistema (com o backlight apagado)?
    Pergunto porque estou pensando em montar algo parecido, porém o consumo é determinante, pois pretendo utilizar bateria de 9V.

  33. Olá, sabe me informar onde posso conseguir o suporte para os componentes (a case branca onde o display esta acoplado)…
    Obrigada

    1. Bom dia Natalia,

      O suporte nós adaptamos de um modem queimado. 🙂

      Abraço!

      Adilson – Equipe FILIPEFLOP

  34. Olá, eu e meu grupo de estudos estamos tentando fazer este projeto, o problema é que o compilador do Arduino diz que falta a biblioteca ft2build. Será que tem como nos dar um auxilio?

    1. Boa tarde Gabriele,

      Pode confirmar o nome da biblioteca ? Não estou achando nenhuma biblioteca para Arduino com esse nome.

      Abraço!

      Adilson – Equipe FILIPEFLOP

  35. boa tarde, estou planejando um sistema controlador de umidade e gostaria de usar este display, carreguei a biblioteca, mas não consigo compilar, gostaria de saber quais alterações preciso fazer no sketch, já que não estou usando o sensor de pressão.

    jorge edinaldo alves da silva
    1. Boa tarde Jorge,

      Que erro aparece na hora da compilação ?

      Adilson – Equipe FILIPEFLOP

      1. então o erro que aparece é esse , será que pode me ajudar?

        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function Adafruit_PCD8544::drawPixel(int, int, unsigned int)':
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:127: multiple definition of
        Adafruit_PCD8544::drawPixel(int, int, unsigned int)’
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:127: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o:(.data.pcd8544_buffer+0x0): multiple definition of pcd8544_buffer'
        PCD8544Adafruit_PCD8544.cpp.o:(.data.pcd8544_buffer+0x0): first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544::getPixel(signed char, signed char)’:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:163: multiple definition of Adafruit_PCD8544::getPixel(signed char, signed char)'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:163: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544::isHardwareSPI()’:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:255: multiple definition of Adafruit_PCD8544::isHardwareSPI()'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:255: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544::clearDisplay()’:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:339: multiple definition of Adafruit_PCD8544::clearDisplay()'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:339: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544::data(unsigned char)’:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:268: multiple definition of Adafruit_PCD8544::data(unsigned char)'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:268: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544::command(unsigned char)’:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:259: multiple definition of Adafruit_PCD8544::command(unsigned char)'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:259: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544::setContrast(unsigned char)’:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:277: multiple definition of Adafruit_PCD8544::setContrast(unsigned char)'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:277: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544::display()’:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:289: multiple definition of Adafruit_PCD8544::display()'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:289: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544::begin(unsigned char, unsigned char)’:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:171: multiple definition of Adafruit_PCD8544::begin(unsigned char, unsigned char)'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:171: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544′:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:115: multiple definition of Adafruit_PCD8544::Adafruit_PCD8544(signed char, signed char, signed char)'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:115: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544′:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:115: multiple definition of Adafruit_PCD8544::Adafruit_PCD8544(signed char, signed char, signed char)'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:115: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544′:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:107: multiple definition of Adafruit_PCD8544::Adafruit_PCD8544(signed char, signed char, signed char, signed char)'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:107: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544′:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:107: multiple definition of Adafruit_PCD8544::Adafruit_PCD8544(signed char, signed char, signed char, signed char)'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:107: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544′:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:98: multiple definition of Adafruit_PCD8544::Adafruit_PCD8544(signed char, signed char, signed char, signed char, signed char)'
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:98: first defined here
        PCD8544Nokia5110Adafruit_PCD8544.cpp.o: In function
        Adafruit_PCD8544′:
        C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544Nokia5110/Adafruit_PCD8544.cpp:98: multiple definition of `Adafruit_PCD8544::Adafruit_PCD8544(signed char, signed char, signed char, signed char, signed char)’
        PCD8544Adafruit_PCD8544.cpp.o:C:UsersjorgeDesktoparduino-1.0.5-r2librariesPCD8544/Adafruit_PCD8544.cpp:98: first defined here

      2. estou tentando compilar com a biblioteca do sensor de pressão, mas precisava do código sem o sensor.

        1. Bom dia Jorge,

          Na verdade o seu programa está apresentando erro na biblioteca gráfica (PCD8544)… Você instalou a biblioteca do display corretamente ?

          Abraço.

          Adilson – Equipe FILIPEFLOP

          1. instalei como recomenda o projeto. você tem alguma dica que pode me dar?

            jorge edinaldo
          2. Boa tarde Jorge,

            Parece ser mesmo algo na biblioteca. Veja se ela está sendo carregada corretamente e se aparece na lista de bibliotecas disponíveis (menu arquivo -> exemplos). A biblioteca PCD8544 tem que aparecer nessa lista.

            Abraço!

            Adilson – Equipe FILIPEFLOP

            Adilson Thomsen
  36. Bom dia, gostaria de dizer esse Post me deixou mto empolgado em desenvolver uma mini estação meteorológica, já comprei todos os equipamentos que vc sugeriu. Gostaria de saber se consigo mandar esses dados para o computador ao invés de mostrar apenas no display? Trabalho com programação e banco de dados então gostaria de criar um tipo de bando de dados com essas informações gerando gráficos e disponibilizando na internet. Valeu e mais uma vez parabéns pelo POST.

    1. Boa tarde Wagner,

      Você pode tanto mandar os dados via serial e tratar esses dados no computador, como enviá-los via Wifi, aí vai depender do seu projeto. Uma boa alternativa é usar um módulo wifi ESP8266. Dê uma olhada aqui no blog que temos alguns posts sobre ele.

      Abraço e obrigado!

      Adilson – Equipe FILIPEFLOP

      1. Boa noite Adilson – Equipe FILIPEFLOP, vc poderia por gentileza fazer um tutorial utilizando o display lcd 128/64 e o DHT11,eu fiz um com o lcd 16/2 e DHT11 seguindo o seu tutorial e ficou muito bom,tenho esse lcd 128/64 e queria fazer testes com ele,,,seus tutoriais são ótimos,obrigado

  37. Gostaria de saber se 4 sensores dht22 podem ser utilizados sem problemas num arduino mega 2560?
    Qual tipo de cabo é melhor para fazer a conexão para um ambiente externo para uns 20 metros, e se a placa do arduino consegue fornecer energia suficiente para o sensor, ou tem que ser uma fonte externa.

    Gustavo Jean Menegazzo
  38. eu preciso deste aparelho montado voce poderia me informar onde posso comprar este medidor de pressao

  39. Olá, Adilson!

    Esta placa permite alimentação com 5 V, devido ao regulador de 3,3 V incorporado. Porém, se esta placa for ligada com outra interface,cuja lógica seja de 5 V, no mesmo barramento, será necessário usar um adaptador de nível.

    1. Boa tarde João,

      Você está falando do Nano, certo ? O nível de sinal dele é 5V.

      Abraço!

      Adilson – Equipe FILIPEFLOP

      1. Olá, Adilson!

        Me desculpe, realmente não especifiquei a placa.
        Refiro ao sensor de pressão BMP180.

        Obs: Excelente a organização dos dados no visor!

    1. Boa tarde Gustavo,

      Esse display usa muitos pinos do microcontrolador. Nesse caso, creio que deveria ser usado um Arduino Mega para encaixar o display e nas portas restantes ligar os sensores.

      Abraço!

      Adilson – Equipe FILIPEFLOP

  40. Olá, vocês tem esse case usado no projeto para venda?

  41. Estou pensando em fazer este projeto agregando uma wireless para envio do monitoramento para uma sistema de alarme que quanto chegar a determinados parametros alerta a possibilidade de chuvas.
    Não sei se funcionaria caso sim o que precisaria para desenvolver ? Um modulo wireless ?
    Para gravar as variações constantes de temperatura poderia agregar um modulo com cartao de memoria para gravar no local ou seria interessante enviar para uma base ?
    Qual o valor de todos os componentes ?
    Obrigado.

  42. Bom dia!

    Estou no meio de um projeto e ainda não consegui um case adequado para organizar de maneira adequada e que seja de fácil acesso aos componentes em caso de manutenção. Vi que este utilizado no tutorial, por exemplo, é excelente para o mesmo. Terias alguma dica de onde adquirir cases como estes?

    Att, Paulo

    1. Boa tarde Paulo,

      Esse case especificamente nós fizemos (re)utilizando uma carcaça de modem… 🙂

      Abraço!

      Adilson – Equipe FILIPEFLOP

      1. Mas ficou muito bacana, parece que foi feito sob medida para o projeto.

        Abraço!!!

  43. Verifiquei um artigo de Albert van Dalen sobre problemas com o Nokia 5110, problemas de mau contato na frágil borracha de contato entre a placa e a tela de LCD, no artigo ele fala do problema crônico e dá uma solução paliativa para minimizar o problema. O mau contato acaba por apagar informações ou sujar a tela, mesmo pressionando o frame para forçar o contato a sujeira ou o apagamento não desaparecem até que se desligue o circuito e o ligue novamente ou efetuando um reset, isto pode ficar cansativo e pode acreditar, bastante desanimador. A solução paliva concebida por ele foi limpar a tela em intervalos regulares utilizando o programa em curso. Adaptei o programa da Estação Metereológica passando as leituras para cima e as executando imediatamente à criação dos quadros, símbolos e unidades. Não afetou o funcionamento e acabou com um erro de persistência de pontos à direita do 2o. décimo da pressão que só desaparecia com um reset e estava me incomodando visualmente (perfeccionismos de minha parte). Espero que este post seja útil para outros que estejam presenciando este mesmo problema.
    Sugestão do Albert e minha, tentar passar este programa para um display TFT que já não estão tão proibitivos e poderia agregar informações e cores.
    Um abraço.
    Alberto

  44. Olá, Adilson!

    Alimento o sensor de pressão com 5 V, normalmente. O regulador de 3V3 fornece tensão adequada ao CI BMP180 instalado na placa. Para ligação com relógio RTC, uso um adaptador de nível, já que o RTC funciona com 5V e os pinos de dados do sensor se comunicam com nível de tensão de 3V3. O relógio pode registrar o instante em que ocorreram as temperaturas , umidades e pressões mínimas e máximas.
    Um abraço,

  45. Adilson,B.dia:
    Para esse projeto,eu poderia usar a placa Arduino ProMini?
    obrigado,um abraço.

    1. Boa tarde José,

      Pode sim. O projeto ficaria até mais compacto. 🙂

      Abraço!

      Adilson – Equipe FILIPEFLOP

  46. Boa tarde,
    estou iniciando com arduino.
    montei um DHT22 segundo este post.
    os valores de temperatura e umidade retornam NaN.
    como faço para saber se o meu problema é de programação, de montagem ou de equipamento danificado?
    obrigado

    1. José Eduardo, o valor que você esta encontrando significa que o DHT22 não esta sendo lido..
      Se o sensor que você esta usando é um daqueles que vem preso em uma plaquinha, é bem possível que esteja com curto nas pistas do circuito impresso. Se possível, dessosolde-o da plaquinha que deve funcionar.
      Tem lote da china que estas plaquinhas são defeituosas…

      1. bom dia
        os componentes foram todos comprados na FilipeFlop.
        estão em uma protoboard.
        vou tentar desmontar e montar novamente, para ver se muda o resultado.
        obrigado pela dica.

  47. Adilson,B.tarde
    Desculpe-me pertubar novamente,montei o projeto corretamente.
    Eu estava usando sensor DHT11,e no visor Nokia 5110 aparecia: TEMP nan “C”, UMID nan %, PRESSÂO 925,39 hPa.Troquei o sensor para o DHT22,e continua aparecendo os mesmo problema,com TEMP,e UMID.
    Tudo compolia certo,verifiquei em alguns comentários anteriores,vc fala se aparece biblioteca:Adafruit PCD8544 em exemplo,pois aparece normalmente.Poderia,me ajudar?
    Forte,abraço

    1. Boa tarde José,

      Realmente parece algum problema de conexão com o sensor de temperatura. Você consegue testá-los separadamente ou enviar os valores para o serial monitor, para ter certeza que estão funcionando normalmente ?

      Abraço!

      Adilson – Equipe FILIPEFLOP

      1. Ok Adilson,problema solucionado valeu a dica
        abraço

        1. Valeu José. Abraço! 🙂

  48. Boa noite!
    Parabens belo projeto, gostaria de saber como exibir o resultado da pressao em mmHg
    Tem Como fazer?
    Obrigado

    1. Loris, como 1 hPa vale 0,750062 mmHg, basta multiplicar o valor da linha float p=bmp180.readPressure()/100,0 por 0,750062 que terá o valor em mmHg.
      A linha fica assim: float p=bmp180.readPressure()/100)*0,750062 ou float p=bmp180.readPressure()*0,00750062.

  49. Boa tarde! Feliz Ano Novo!
    Estou quase ficando louco, na compilação do programa esta dando o erro abaixo e não consigo descobrir

    Stray ‘302’ in program
    stray ‘240’ in program

    Por favor ajuda!!
    Obrigado

    1. Bom Diana todos
      Consegui resolver
      Era apenas espacos de formatacao no codigo

  50. olá a todos
    Preciso medir a umidade de um fluxo de ar de 1m/s de velocidade, qual o melhor sensor para o arduino?

  51. Bom dia, compilei o codigo igual ao do blog e deu esse erro, podia dar uma ajuda ai, estou iniciando na area, mas gosto muito de eletronica.

    Arduino: 1.8.1 (Windows 8.1), Placa:”Arduino/Genuino Uno”

    In file included from C:UsersUsuárioDocumentsArduinolibrariesDHTDHT_U.cpp:22:0:

    C:UsersUsuárioDocumentsArduinolibrariesDHTDHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Erro compilando para a placa Arduino/Genuino Uno

    Este relatório teria mais informações com
    “Mostrar a saida detalhada durante a compilação”
    opção pode ser ativada em “Arquivo -> Preferências”

    Nicolas Felipe de Sousa
    1. Nicolas, ao que tudo indica, voce não tem a livraria (librarie) Adafruit_Sensor.h instalada na sua IDE. Verifique se instalou a biblioteca DHT indicada no tutorial sob titulo BIBLIOTECAS E PROGRAMAS.

  52. Boa noite meu display é azul mais o brilho “as letras dentro” ficam bem fraquinhos nem perto do ilustravel a cima. Qual a constante que devo mudar?

    Nicolas Felipe de Sousa
    1. Olá, Nicolas!

      Experimente aumentar o contraste:

      Linha 33: display.setContrast(48);
      (tente, por exemplo, 53 em vez de 48). Vá alterando até chegar no contraste mostrado na foto do projeto. Cada display requer um ajuste fino de contraste.
      Espero ter contribuído.
      Um abraço.

  53. Ola Adilson
    Muito bom o projeto, ..e possivel jogar estes dados do arduino no pc e criar um layout grafico

    Vc disponibiliza o kit

  54. Caro Adilson, bom dia.

    Estou montando a estação meteorológica seguindo rigorosamente a sua orientação conforme está no site da Felipeflop, baixei as bibliotecas conforme orientado e após a compilação do programa aparece o erro abaixo descrito.

    In file included from sketch_apr06a.ino:8:0:
    C:UsersUserDocumentsArduinolibrariesAdafruit-BMP085-Library-master/Adafruit_BMP085.h:26:18: fatal error: Wire.h: No such file or directory
    #include “Wire.h”
    ^
    compilation terminated.
    Erro compilando.

    Solicito seu auxílio e orientação.

  55. Caro Adilson, bom dia novamente.

    Fiz uma postagem antes e peço que desconsidere, estou achando o fio da meada e conseguindo resolver a situação, você já havia dado essa orientação sobre o problema que lhe levei.

    Muito agradecido.

  56. Caro Adilson, boa noite.

    Solicito orientação sobre o sensor BMP280 adquirido por mim por intermédio da Feipeflop.

    Fiquei interessado em montar a estação meteorológica mas estou tendo problemas ao utilizar o sensor acima mencionado pois sempre aparece a mensagem Sensor BMP280 nao encontrado !!

    Pesquisando bastante e acompanhando alguns fóruns, observei que o pessoal alertava muito sobre ligação errada, ou seja, ligar no pino de 5 V, tratei de tomar muito cuidado.

    Não deu certo com os dois sensores adquiridos, conforme mencionei acima.

    Segue abaixo o sketch utilizado, solicito orientação.

    //
    // Programa : Estacao Meteorologica com Arduino
    // Autor : FILIPEFLOP
    //
    // Carrega bibliotecas graficas e sensores
    //
    #include
    #include
    #include
    //#include
    #include
    #include
    #include
    #include

    // Pinagem ligacao display Nokia 5110
    // pin 8 – Serial clock out (SCLK)
    // pin 9 – Serial data out (DIN)
    // pin 10 – Data/Command select (D/C)
    // pin 11 – LCD chip select (CS/CE)
    // pin 12 – LCD reset (RST)

    // Inicializa o display nos pinos acima
    Adafruit_PCD8544 display = Adafruit_PCD8544(8, 9, 10, 11, 12);

    // Define pino e tipo do sensor DHT
    DHT dht(3, DHT22);
    //Adafruit_BMP085 bmp180 = Adafruit_BMP085();
    Adafruit_BME280 bmp180;
    //= Adafruit_BME280();
    //#define BME280_ADDRESS (0x76)
    void setup()
    {
    Serial.begin(9600);
    // Informacoes iniciais no display
    display.begin();
    // Ajusta o contraste do display
    display.setContrast(45);
    // Apaga o buffer e o display
    display.clearDisplay();
    // Define tamanho do texto e cor
    display.setTextSize(1);
    display.setTextColor(BLACK);

    // Retangulo temperatura
    display.drawRoundRect(0,0, 44,24, 3, 2);
    // Texto inicial temperatura
    display.setCursor(11,3); // Seta a posição do cursor
    display.println(“TEMP”);
    display.setCursor(5,14);
    display.println(“—-“);
    display.setCursor(29,14);
    display.drawCircle(31, 15, 1,1);
    display.println(” C”);

    // Retangulo umidade
    display.drawRoundRect(45,0, 39 ,24, 3, 2);
    // Texto inicial Umidade
    display.setCursor(52,3);
    display.println(“UMID”);
    display.setCursor(50,14);
    display.println(“—-“);
    display.setCursor(75,14);
    display.println(“%”);

    // Retangulo pressao
    display.drawRoundRect(0,25, 84 ,23, 3, 2);
    // Texto inicial Pressao
    display.setCursor(22,28);
    display.println(“PRESSAO”);
    display.setCursor(55,38);
    display.println(“hPa”);
    display.setCursor(11,38);
    display.println(“——“);
    display.display();

    delay(500);
    // Inicializa o sensor BMP280
    // Nessa condicional tem problemas se trocar o valor while(0) por while(1)
    if (!bmp180.begin()){
    Serial.println(“Sensor BMP280 nao encontrado !!”);
    while (0);
    //{}
    }
    // Inicializa o DHT22
    dht.begin();
    }
    //===============================================
    void loop()
    {
    // Leitura temperatura, umidade e pressao
    float h = dht.readHumidity();
    float t = dht.readTemperature();
    float p = bmp180.readPressure()/100.0;

    // Atualiza valor da temperatura
    display.fillRect(4,13, 25 , 10, 0);
    display.setCursor(4,14);
    display.println(t,1);

    // Atualiza valor da umidade
    display.fillRect(50,13, 23 , 10, 0);
    display.setCursor(50,14);
    display.println(h,1);

    // Atualiza valor da pressao
    display.fillRect(4, 37, 46 , 10, 0);
    display.setCursor(11,38);
    display.println(p,2);

    display.display();
    // Aguarda 5 segundos para efetuar nova leitura
    delay(5000);
    }

  57. Caro Adilson, boa noite novamente.

    Na rotina abaixo, se colocar valor 1, nada aparece no display e se colocar 0 como está abaixo, aparece a temperatura e umidade.
    // Inicializa o sensor BMP280
    if (!bmp180.begin()){
    Serial.println(“Sensor BMP280 nao encontrado !!”);
    while (0);
    //{}
    }

    Atenciosamente

  58. Caro Adilson, boa noite.

    Quero agradecer o retorno e apoio que recebi do Giovanni e da Felipeflop e aproveito para informar que consegui montar a estação acima proposta com o Arduino UNO sempre problemas, só estou encontrando dificuldades com o Arduino NANO.

    Informo também que o resultado está sendo satisfatório.

    Vou me esforçar mais para aprender.

    Um grande abraço para todos.

    1. Valeu. Abraço! 🙂

      Adilson – Equipe FILIPEFLOP

  59. Boa Noite! Amigo preciso um ( termostato ) controle de temperatura e umidade do ar, com uma plaquinha dessa que programando quando chegar a tal temperatura e também umidade do ar arme e desarme, sou leigo gostaria de saber se tem como , tem essas peças para que eu faça a montagem, obrigado

  60. Boa Noite! Amigo preciso um ( termostato ) controle de temperatura e umidade do ar, com uma plaquinha dessa que programando quando chegar a tal temperatura e também umidade do ar arme e desarme, sou leigo gostaria de saber se tem como , tem essas peças para que eu faça a montagem, obrigado.

  61. Boa tarde, gostei muito deste projeto e já o coloquei para funcionar. Estou trabalhando agora para alimenta-lo com uma placa de energia solar e ai gostaria de enviar os dados para meu not ou celular, voce pode me ajudar?
    Pensei em usar os módulos XBee, é viável, onde acho bibliotecas para aprender sobre o sensoriamento remoto
    Obrigado!
    Loris

  62. Boas, alguma ideia de como juntar um sensor que desse para medir a velocidade do vento?

    Cumprimentos

Trackbacks and Pingbacks

  1. […] Exemplo de projeto de uma estação meteorológica com Arduino e DHT-22 […]

Deixe uma resposta

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