Monitorando Temperatura e Umidade com o sensor DHT11 89

Em um país tropical como o nosso o clima em boa parte do Brasil é quente e úmido. Logo creio que este projeto irá te ajudar a monitorar com apenas 1 sensor a temperatura e umidade de seu clima local com este Sensor DHT11.

Sensor DHT11 Umidade e Temperatura

Especificações DHT11:

– Modelo: DHT11 (Datasheet)
– Alimentação: 3,0 a 5,0 VDC (5,5 Vdc máximo)
– Corrente: 200uA a 500mA, em stand by de 100uA a 150 uA
– Faixa de medição de umidade: 20 a 90% UR
– Faixa de medição de temperatura: 0º a 50ºC
– Precisão de umidade de medição: ± 5,0% UR
– Precisão de medição de temperatura: ± 2.0 ºC
– Tempo de resposta: < 5s
– Dimensões: 23mm x 12mm x 5mm (incluindo terminais)

Este sensor inclui um componente medidor de umidade e um componente NTC para temperatura, ambos conectados a um controlador de 8-bits. O interessante neste componente é o protocolo usado para transferir dados entre o MCDU e DHT11, pois as leituras do sensor são enviadas usando apena um único fio de barramento.

Formato dos dados: 8bit integral RH data + 8bit decimal RH data + 8bit integral T data + 8bit decimal T data + 8bit check sum = 40 bits.

Pinagem DHT11
Pinagem DHT11

Componentes necessários:

01 – Arduino Uno
01 – DHT11
01 – Resistor 10k
01 – Protoboard 400 pontos
01 – Kit Jumpers Macho-Macho

Conectando DHT11 ao Arduino:

O DHT11 possui 4 terminais sendo que somente 3 são usados: GND, VCC e Dados. Se desejar, pode-se adicionar um resistor pull up de 10K entre o VCC e o pino de dados.

Fonte: Arduino&Cia

Conecte o pino de dados do DHT11 ao pino 2 do seu Arduino Uno como mostra o código exemplo abaixo, mas você poderá alterar por outro se desejar.

Comunicação Arduino com DHT11:

Para facilitar o seu trabalho já existe uma bilioteca que pode ser baixada neste link. Após o download descompacte o arquivo .zip e mova-o para a pasta arduinosketchfolder/libraries/ e reinicie a IDE do Arduino. Não retire o arquivo dht.cpp.  e não esqueça de renomear a pasta para “DHT”. Talvez será necessário criar uma sub-pasta da biblioteca caso não exista.

Agora acesse Examples->DHT->DHTtester em sua IDE Arduino.

DHT11 Serial Monitor

Se você quiser mostrar estas informações em um display, veja como é fácil seguindo este post com sensor DHT11 e mostrando as informações em um Display LCD 16×2 com Arduino.

Até a próxima!

Posts Relacionados

Deixe uma resposta

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

89 Comentários

  1. Minhas ligações estão corretas, mas continua mostrando 0 nas leituras… o que pode ser ?

    1. Olá. O problema ainda continua? Recomendo testar com outro sensor se tiver para verificar se o problema é no hardware.
      Abraço!

  2. Eu gostaria de fazer esse projetinho só que quero mandar os dados via WiFi você pode me ajudar, o que vou precisar para mandar os dados via WiFi na rede e no caso gostaria de fazer a medição de duas salas?

    Se possível me de uma ajuda.

    1. Boa noite,

      Recomendamos a leitura do post utilizando módulo RF para transmissão e recepção de dados :

      http://blog.filipeflop.com/wireless/modulo-rf-transmissor-receptor-433mhz-am.html

      Grato.

      Adilson – Equipe FILIPEFLOP

  3. Na figura mostra os valores com decimais, todos q eu fiz aqui ( com diversos programas) sempre aparece .00. Tem algo diferente para aparecer os numeros decimais?

    1. Olá Renan. Você testou o código acima e não apareceu decimais diferentes de .00?
      Abraço!

      1. Isso. Não sei se talvez a biblioteca que eu tenha esteja errada e não está pegando esta… porque o nome é o mesmo, mas consegui inserir esta biblioteca na pasta do arduino, a outra tinha inserido pelo proprio programa e nao acho onde excluir agora. Obrigado pela atençao 😀

      2. Consegui apagar as outras bibliotecas e coloquei somente esta mas nao funcionou, meu sensor veio com o módulo e portanto ja vem com o resistor… será que pode ser esse o problema?

        1. Confira este link: http://www.arduinoecia.com.br/2013/05/sensor-de-umidade-e-temperatura-dht11.html
          É um blog parceiro nosso e talvez possa ajudar, contudo nas imagens aparece apenas casas decimais em ,00. Logo creio que deva ser algo da biblioteca.
          Abraço!

  4. Eu tinha feito por este site, agora quando vi no seu mostrando valores em decimais resolvi tentar… mas achei estranho nao conseguir casas decimais, utilizei outro sensor com o resistor e aconteceu a mesma coisa. Por acaso voce fez alguma alteraçao na biblioteca?

  5. Eu tinha feito por este site, agora quando vi no seu mostrando valores em decimais resolvi tentar… mas achei estranho nao conseguir casas decimais, utilizei outro sensor com o resistor e aconteceu a mesma coisa. Por acaso voce fez alguma alteraçao na biblioteca?

  6. existem alguns dispositivos que estao deixando a desejar pois as ligações estao certas mas quando seguimos tudo que é passado em relação a biblioteca passo a passo mesmo assim nao funciona ou seja parece que compro algo mas nao tenho como testar se realmente esta bom pois os outros produtos que comprei funcionou normal e segui tudo certo

    1. Olá Maxwell. Este post foi testado na época e o sensor usado é o mesmo. Como a Arduino atuliza sua IDE e algumas bibliotecas podem ser modificadas com o tempo, este tipo de problema pode acontecer mas em si nao compromete a funcionalidade do componente.
      Caso tenha outro produto que montou e nao funcionou por favor entre em contato, ficaremos felizes em ajudar.
      Grato!

  7. existem alguns dispositivos que estao deixando a desejar pois as ligações estao certas mas quando seguimos tudo que é passado em relação a biblioteca passo a passo mesmo assim nao funciona ou seja parece que compro algo mas nao tenho como testar se realmente esta bom pois os outros produtos que comprei funcionou normal e segui tudo certo

    1. Olá Maxwell. Este post foi testado na época e o sensor usado é o mesmo. Como a Arduino atuliza sua IDE e algumas bibliotecas podem ser modificadas com o tempo, este tipo de problema pode acontecer mas em si nao compromete a funcionalidade do componente.
      Caso tenha outro produto que montou e nao funcionou por favor entre em contato, ficaremos felizes em ajudar.
      Grato!

  8. Outra coisa é que para mim a umidade relativa que o leitor mostra possui um erro um tanto grande em relação ao psicrômetro , quando vendem os sensores todos dizem q tem uma precisao boa, mesmo tendo +/-5% de erro. Quando está cerca d 60 a UR do ar eu consigo medir cerca d 40

  9. Outra coisa é que para mim a umidade relativa que o leitor mostra possui um erro um tanto grande em relação ao psicrômetro , quando vendem os sensores todos dizem q tem uma precisao boa, mesmo tendo +/-5% de erro. Quando está cerca d 60 a UR do ar eu consigo medir cerca d 40

  10. ajudar como se nao foi nem sanado meu problema amigo pois descompactei o o arquivo baixado e enviei pra biblioteca arduino e junto com o codigo que ja existe no blog do sensor de temperatura e umidade mesmo assim nao foi possivel rodar pois o mesmo agora esta dando um erro ao ser verificado se há algum erro no codigo ( o erro é “DHT” does not name a type.) Issso acontece quando mando verificar se tem algum errro é como se tivesse pedindo pra definir algum nome pra o sensor acho que é algo assim. Voce tem como me dar uma sugestao ?

    1. Olá Maxwell. Iremos ver novamente, contudo você chegou a testar o projeto neste link: http://www.arduinoecia.com.br/2013/05/sensor-de-umidade-e-temperatura-dht11.html ?
      Abraço!

  11. ajudar como se nao foi nem sanado meu problema amigo pois descompactei o o arquivo baixado e enviei pra biblioteca arduino e junto com o codigo que ja existe no blog do sensor de temperatura e umidade mesmo assim nao foi possivel rodar pois o mesmo agora esta dando um erro ao ser verificado se há algum erro no codigo ( o erro é “DHT” does not name a type.) Issso acontece quando mando verificar se tem algum errro é como se tivesse pedindo pra definir algum nome pra o sensor acho que é algo assim. Voce tem como me dar uma sugestao ?

    1. Olá Maxwell. Iremos ver novamente, contudo você chegou a testar o projeto neste link: http://www.arduinoecia.com.br/2013/05/sensor-de-umidade-e-temperatura-dht11.html ?
      Abraço!

  12. meu arduino é o mega 2560 e as ligações estao corretas e baixei e atualizei o software de novo v.1.05 arduino

  13. meu arduino é o mega 2560 e as ligações estao corretas e baixei e atualizei o software de novo v.1.05 arduino

  14. Ola Felipe Tudo Susa!!!!

    Cara fiz esse projeto só que não compila da erro!!!

    segue o erro

    essa linha fica selecionada

    DHT dht(DHTPIN, DHTTYPE);

    Arduino: 1.5.5 (Windows 7), Placa:”Arduino Uno”

    Temperatura.ino:1:17: error: DHT.h: No such file or directory
    Temperatura:11: error: ‘DHT’ does not name a type
    Temperatura.ino: In function ‘void setup()’:
    Temperatura:17: error: ‘dht’ was not declared in this scope
    Temperatura.ino: In function ‘void loop()’:
    Temperatura:23: error: ‘dht’ was not declared in this scope

    Este relatório deveria ter mais informações
    “Mostrar saída verbosa durante a compilação”
    habilitado em Arquivo > Preferências.

    Voce pode dar uma ajuda meu compilador e o 1.5.5

    tanto no mac como no pc da esse erro

    1. Isso parece ser problema da biblioteca. Pode ter esquecido de definir o sensor DHTTYPE DHT11. Só copiou o codigo e colou?

    2. Boa noite. Eu testei usando a IDE 1.0.5 e deu o mesmo problema. Eu resolvi baixando esta biblioteca direto da Adafruit :

      https://github.com/adafruit/DHT-sensor-library

      Não esqueça de renomear a pasta para “DHT”

      Depois nos informe se funcionou para você, por favor.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  15. Ola Felipe Tudo Susa!!!!

    Cara fiz esse projeto só que não compila da erro!!!

    segue o erro

    essa linha fica selecionada

    DHT dht(DHTPIN, DHTTYPE);

    Arduino: 1.5.5 (Windows 7), Placa:”Arduino Uno”

    Temperatura.ino:1:17: error: DHT.h: No such file or directory
    Temperatura:11: error: ‘DHT’ does not name a type
    Temperatura.ino: In function ‘void setup()’:
    Temperatura:17: error: ‘dht’ was not declared in this scope
    Temperatura.ino: In function ‘void loop()’:
    Temperatura:23: error: ‘dht’ was not declared in this scope

    Este relatório deveria ter mais informações
    “Mostrar saída verbosa durante a compilação”
    habilitado em Arquivo > Preferências.

    Voce pode dar uma ajuda meu compilador e o 1.5.5

    tanto no mac como no pc da esse erro

    1. Isso parece ser problema da biblioteca. Pode ter esquecido de definir o sensor DHTTYPE DHT11. Só copiou o codigo e colou?

    2. Boa noite. Eu testei usando a IDE 1.0.5 e deu o mesmo problema. Eu resolvi baixando esta biblioteca direto da Adafruit :

      https://github.com/adafruit/DHT-sensor-library

      Não esqueça de renomear a pasta para “DHT”

      Depois nos informe se funcionou para você, por favor.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  16. Funciona no raspberry pi ?

    1. Boa tarde Adriano,

      Funciona sim.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  17. Olá
    Como eu posso usar esse sensor em um PIC?
    Usando linguagem C e PIC 18F
    Ele passa o sinal em valor digital?
    Teria que ser usado o PWM?

    1. Boa tarde Kenny,

      No momento não temos exemplo de programação desse sensor com o PIC. Com relação à porta, utilize portas analógicas.

      Adilson – Equipe FILIPEFLOP

  18. Estou utilizando o mesmo código e o mesmo sensor, porém o meu não mostra o valor em ponto flutuante, apenas a parte inteira da temperatura e da umidade.

    Será que tem a ver com a resolução do sensor ?

    1. Boa tarde,

      Pode ser uma característica do sensor que você tem em mãos.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  19. Amigos, boa noite !
    Poderia me explicar o por que do resistor.
    Fiz o teste sem o mesmo e funcionou.
    Mas quero aprender mais sobre o assunto.
    Obrigado

    1. Boa noite Pedro,

      Realmente o resistor não é obrigatório, mas em alguns circuitos mais complexos, ou dependendo da qualidade do sensor, podem ocorrer alguns problemas de leitura/precisão. Eu particularmente não tive problemas em usar esse sensor sem o resistor.

      Abraço

      Adilson – Equipe FILIPEFLOP

  20. Ola, sou novato no assunto e gostaria de saber o que quer dizer esta msg:

    Binary sketch size: 5.854 bytes (of a 32.256 byte maximum)

    ATT.

    Hércules

    1. Boa tarde Hércules,

      Essa mensagem informa o tamanho do programa (5.854 bytes), e o total de memória disponível no Arduino que você está usando (32.256 bytes).

      Abraço.

      Adilson – Equipe FILIPEFLOP

  21. Olá, fiz o projeto conforme exemplo e com sensor DHT11 que adquiri recentemente porém os valores mostrados estão fora da realidade, acredito que seja problema no sensor.

    DHTxx test!
    Humidity: 1536.00 % Temperature: 640.00 *C
    Humidity: 1536.00 % Temperature: 640.00 *C
    Humidity: 1536.00 % Temperature: 640.00 *C

    Alguma ideia?

    1. Então eu fiz alguns teste com esse sensor e obtive esses mesmo valores, o meu erro estava na definição do tipo do sensor que eu estava utilizando. Para isso na parte que ele colocou no código de:
      #define DHTTYPE DHT11 // DHT 11
      Verfique se invés de ser essa linha do código é alguma destas duas, pois o seu DHT pode ser do tipo 22 ou 21:

      #define DHTTYPE DHT22 // DHT 22 (AM2302)
      #define DHTTYPE DHT21 // DHT 21 (AM2301)

      Abraços !

      Gustavo Henrique Cirulo
  22. Galera, meu DHT11 não ta registrando valores quebrados.. E estou utilizando float na programação, algm pode dar um help?

    1. O meu também. Mas lendo o datasheet, o sensor DHT11 tem resolução de um grau, então ele não registra diferença menor que isso. Creio que seja esse o problema. Provavelmente com o DHT22 funcionaria com precisão melhor.

  23. Estou usando o mesmo codigo, mas ele diz que dht não foi declarada dentro da void loop, como proceder?

  24. Bom dia, posso ligar o sensor dht11 sem resistor, diretamente na placa sem protoboard?

    att

    1. Boa tarde Pedro,

      Pode ligar, mas eventualmente ele pode produzir algumas leituras estranhas.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  25. Prezado, boa tarde, gostaria de saber se existe o MIB deste sensor.

  26. Estou querendo utilizar o DHT11 para medição de umidade, apenas, porém o sistema estará em 70º C. Isso chega a danificar ou comprometer a precisão do aparelho, ou impede apenas a medida da temperatura?

    1. Bom dia Carlos,

      O DHT11 lê a umidade na faixa de 20 à 90%, assim deve funcionar sem problemas no seu projeto.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  27. Boa noite,

    estou tentando ler 2 sensores onewire e 1 sensor dht, comprado no filipeflop. Mesmo com resistor de 10k está dando leituras estranhas o dht.

    Pode me ajudar ?

  28. Ola. Gostaria de saber qual é a área de cobertura desse sensor.

  29. Olá, tenho um projeto e nele tenho que controlar a temperatura e umidade, porém eu tenho dois sensores separados, um para cada função, queria saber se da para usar o mesmo código, obrigado.

    LEANDRO VITOR DO NASCIMENTO
    1. Não, os sinis desse sensor dão enviados juntos pela A1, se os dois são separados cada um tem um sibal, porém o código pode ser adaptado se quiser. Ok?
      Att. Marcio Reyes

  30. Olá, alguém pode me dizer como faz para aparecer aquele ‘display’ do java onde aparece a umidade e a temperatura?

    1. Control Shift M

      Ana Carolina Menezes
  31. Olá, gostaria de saber se é possível utilizar esse sensor no PIC 18F4550 e se necessita de alguma biblioteca adicional.
    Obrigado!

  32. Olá agradeço ajuda
    pegando no seu projecto, como fica o código para anexar dois relé um que será para ligar e desligar a 35ºc e outro para ligar e desligar a humidade a 45%.
    Pode indicar código.

  33. Pessoal espero que ainda estejam respondendo as duvidas.

    Bem vamos la:

    Tudo certinho ate aqui, estou lendo a umidade e temperatura atualizada no monitor serial; o que preciso agora é saber se posso setar uma temperatura (por exemplo) 35°C e quando ler essa temperatura de 35°C, ativar uma porta digital qualquer.
    Posso fazer isso via IDE do arduino?

    1. Boa tarde Jonas,

      Pode sim, você pode testar o valor da variável t (temperatura), e de acordo com o valor, acionar a porta que você precisa. É relativamente simples de fazer.

      Abraço!

      Adilson – Equipe FILIPEFLOP

  34. Gostaria de saber como faço para implementar os valores obtidos, em painel digital.

  35. Olá! é possível usar a comunicação IC2 junto com este sensor dht11?

  36. Olá! Gostaria de saber se tenho como usar o sensor dht11 de forma que quando a umidade estivesse em 60% ou mais ligasse uma lâmpada, e que essa mesma lâmpada se apagasse quando a umidade estivesse em 30% ou menos. Queria algo bem simples mesmo, os valores de 60% e 30 % nem precisam ser muito exatos, e se tiver sugestão de uso de outros sensores/materiais agradeceria muito pela ajuda.

  37. olá bom dia
    tem como ligar 2 ou 3 sensores de temp e umidade a uma mesma placa arduino e pegar as medidas de diferentes lugares?

  38. Olá, boa tarde.

    Fiz um teste com o DHT11 e o BMP180 no mesmo circuito, e o BMP é muito mais preciso na temperatura. Até aí, tudo bem. Porém, existem algumas variáveis que tem margens de erro muito grande… Como faço para corrigir isso? Eu posso até identificar um padrão na margem de erro, mas, como faço para que a leitura seja manipulada por uma operação matemática…?
    Pode me ajudar com isso? Sou cliente de vocês e parabenizo vosso trabalho! 😀

  39. quando eu ligo o sensor sozinho fica tudo beleza, agora quando eu uso ele junto com qualquer outra implementação , tipo joga resultado no lcd, ele mostra temperatura acima de 700 graus.

    MARCELO NEGREIROS DE SOUZA
  40. Olá a todos,
    Montei conforme explicação, porém as indicações ficam em formato inteiro, sem a casa decimal. Exemplo 27.00°C , 28.00;°C. Eu gostaria de apresentar a informação com a casa decimal, Exemplo 27.30° 28.10°C.

    1. Somente com o DHT22 da para fazer isso

      1. porque?
        tem diferença entre ligar o dht11 no pino analogico e digital?
        utilizei a porta digital 2 e neste exemplo o Adilson conectou no pino A2.

        na imagem de exemplo de output do Adilson vemos variações na primeira casa decimal.

  41. Olá! Quando vou carregar o programa deste projeto para a placa aparece a seguinte mensagem:

    collect2.exe: error: ld returned 5 exit status

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

    As bibiliotecas estão o.k.
    Já rodei a net em busca de uma solução, porém sem sucesso.
    Alguém tem alguma dica?

    Grato.

  42. amigo copiei o seu programa pra fazer uns testes mas o mesmo não compilou deu esse erro na biblioteca.
    DHT dht(DHTPIN, DHTTYPEd);

  43. Boa noite, estou com um problema o sensor na umidade só registra 1.00%, não muda, o que posso fazer para verificar o que esta acontecendo. Ja a temperatura esta correta comparando com outro termometro diferença menor de 0.5 graus.
    Obrigado

  44. Boa tarde, gostaria de saber se o sensor aguentaria em uma estufa, preciso fazer o monitoramento de uma estufa que possui valores como Umidade 92% ;40°C no inicio e 60°C; 40% no final, ou qual seriam os sensores recomendados.

    Jorge Luiz Pasquali Rippel
    1. Olá, neste caso o recomendado para você é o DHT22, ele é mais preciso e tem melhor resolução.
      Breve resumo:
      DHT11 vs DHT22
      umidade: 20-80% vs 0,1-99,9%
      temperatura: 0-50ºC vs (-40) até 80ºC
      Datasheet do DHT22: http://img.filipeflop.com/files/download/Datasheet_DHT22_AM2302.pdf
      Espero ter ajudado!

  45. Bom dia, a biblioteca esta com problemas, a variável de leitura da umidade não esta funcionando e da problema ao copilar, aconteceu com mais alguém? Alguém sabe onde conseguir um biblioteca completa ou editar esta?

  46. Opa meu amigo, primeiramente boa tarde!

    Comecei agora neste mundo, e tenho algumas dúvidas, que podem ser muito simples.

    Fiz o que pediu, o zip foi extraído e a pasta renomeada para DHT.

    Na minha pasta de documentos, uso Mac Osx, possui a pasta Arduino, dentro dela Libraries.

    Coloquei a pasta renomeada DHT, dentro de Librarie, e reiniciei a IDE. ( /Users/PHMC/Documents/Arduino/libraries/DHT)

    Abrindo o programa, no menu exemples, não tem nada, somente na parte Sketchbook, enfim.

    Ao compilar, tenho esse erro de retorno:

    DHTtester.ino:4:17: error: DHT.h: No such file or directory
    DHTtester:24: error: ‘DHT’ does not name a type
    DHTtester.ino: In function ‘void setup()’:
    DHTtester:30: error: ‘dht’ was not declared in this scope
    DHTtester.ino: In function ‘void loop()’:
    DHTtester:39: error: ‘dht’ was not declared in this scope

    Poderia me ajudar?

  47. Olá,

    tenho uma duvida, como que faço para essas informacoes dos sensores ser postada no twitter?

  48. Boa noite.
    Estou tentando montar esse projeto com o Dht11.
    Existe alguma diferença muito significativa entre os sensores, a biblioteca não responde quando tento usar o dht11.
    Alguma sugestão ou projeto semelhante a esse??

    https://www.youtube.com/watch?v=FjzbC6k5LL0

    Atenciosamente.

    Felipe Andrews

    Felipe Andrews Francisco
  49. só gostaria de dizer que tenho aprendido muito com o blog, este é muito legal e os projetos que tem aqui funciona mesmo.

  50. In file included from C:Program Files (x86)ArduinolibrariesDHTDHT_U.cpp:22:0:

    C:Program Files (x86)ArduinolibrariesDHTDHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory

    #include

    ^

    compilation terminated.

    Gostaria de saber como posso resolver este erro,
    obrigado.

    1. Va na pasta C:Usersklaha(essa parte é o nome do seu usuário)OneDriveDocumentsArduinolibraries
      renomeie a pasta DHT-sensor-library-master para DHT. Depois dentro dessa pasta apague os arquivos DHT_U.cpp e DHT_U.h.

  51. Com esse sensor DHT11 pode ser colocado no solo para saber a umidade do solo?

  52. Bom dia, estou tentado seguir o exemplo acima, porém aparece o seguinte erro:
    libraries\DHT-sensor-library-master/DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory

    #include

    Teria alguma indicação para solucionar este erro?