Testador de sensores DHT11 e DHT22 - DHT11 and DHT22 sensor tester

Testador de sensores DHT11 e DHT22 - DHT11 and DHT22 sensor tester

 

Têm aparecido recentemente vários projectos de medição de humidade com os sensores DHT11 e DHT22.

Estes sensores são sensores extremamente baratos ( á venda na ebay também ) e além de medição de humidade medem também temperatura.

As caracteristicas descritas nos datasheets para o sensor DHT11 e para o DHT22 são bastante distintas.

Na ebay ou outras lojas o nome do sensor pode ser diferente dependendo do fornecedor, por exempo, o DHT22 pode ser conhecido também por RHT03.

 

Estou neste momento a desenvolver um projecto de um mini medidor de humidade e temperatura e decidi experimentar estes sensores.

Uma vez que a maior parte dos projectos deste genero que se encontram na internet usam o arduino e aproveitam librarias preparadas para comunicar com estes sensores, eu, como é habitual, vou construir utilizando um microcontrolador 16F88 da microchip e fazer o código de raiz.

 

This will be a project that will read the measurements from DHT11 and DHT22 sensors.

available soon.

 

 

O sensor DHT22 ( ou RHT03 ) possui melhor resolução que o DHT11 mas é mais lento a fornecer valores pois só consegue fornecer valores de 2 em 2 segundos enquanto que o DHT11 fornece valores a cada segundo.

Internamente, estes sensores estão constantemente a efectuar medições e depois de várias medidas efectuadas fazem a média para dar um valor final. É este valor final que é disponibilizado de segundo a segundo ( no caso do DHT11 ).

 

 photo Image9.jpg

 

 photo dht22_specs1.jpg

 

O sensor DHT11 é mais pequeno mas consome um pouco mais de corrente, tanto durante as medições como em standby. Para aplicações alimentadas por pilhas este sensor seria a segunda opção.

 

 photo Image10.jpg

 

 photo dht11_specs1.jpg

 

A imagem seguinte mostra o gráfico com os impulsos gerados pelo microcontrolador ( a vermelho ) para iniciar a comunicação com o sensor e a resposta do sensor ( a azul ).

 

 photo Image16.jpg

 

O circuito foi inicialmente montado, como habitualmente, numa placa experimental.

 

 photo Image1.jpg

 

Na imagem seguinte está o esquema do circuito.

 

 photo Image15.jpg

Inicialmente pensei que ambos os sensores funcionavam da mesma forma e que o mesmo código funcionaria para ambos os sensores mas depois de terminado e testado o código, reparei que não era totalmente verdade.

O método de comunicação ( timmings e sequencia de dados ) é igual em ambos, ou seja, o microcontrolador precisa de gerar uns impulsos iniciais ao que o sensor identificará como sendo o pedido para obter valores e então dá inicio a um conjunto de pulsos onde os primeiros indicam o inicio da transmissão de dados.

 photo Image3.jpg

 

A resposta dos sensores é composta por 40 bits. Os primeiros 16 bits indicam a humidade relativa. Os bits 17 ao 32 indicam a temperatura e os restantes 8 bits são referentes ao checksum. O primeiro bit da temperatura ( bit 17 ) indica se a temperatura é positiva ou negativa.

 

 photo Image20.jpg

 

A diferença na descodificação da humidade entre os sensores DHT11 e DHT22 pode ser vista na tabela seguinte.

Enquanto que o sensor DHT11 divide os 16 bits em duas partes o sensor DHT22 usa os 16 bits por inteiro.

O DHT11 usa a primeira parte dos 16 bits para os valores antes da virgula e a segunda parte dos 16 bits para os valores depois da virgula.

O DHT22 usa a totalidade dos 16 bits para formar o valor final da humidade relativa.

 

 photo Image22.jpg

 

Depois de descodificados os bits recebidos, os valores de humidade e temperatura podem ser mostrados no display.

 

 photo Image2.jpg

 

Uma vez que o interface com o sensor é digital e depende de uma comunicação bilateral podemos programar pedaços de código que nos permite verificar se essa comunicação está a ser efectuada correctamente.

Além da verificação do checksum, é possivel perceber, por exemplo, se o sensor responde dentro de um intervalo de tempo ou se tem qualquer outro problema, mas também é possivel distinguir os sinais entre os dois diferentes sensores e adaptar-se automaticamente consoante o sensor usado.

 

 photo ensr.jpg

 

No exemplo da imagem seguinte, o sensor foi desligado e o display indica de imediato que o sensor deixou de responder.

 

 photo Image5.jpg

 

Em relação á fiabilidade do sensor DHT22, reparei que logo de inicio a temperatura apresentava 2 graus de diferença com o medidor de temperatura que tenho e que usa o LM35 como sensor.

Depois de vários minutos depois a temperatura começou lentamente a aproximar-se do valor real e dentro da tolerancia indicada no datasheet.

Uma vez que tenho acesso a um medidor de humidade calibrado consegui testar a humidade relativa em vários ambientes diferentes.

Depois de analisar os dados reparei que para valores de humidade relativa abaixo de 12% o sensor é bastante fiavel, no entanto, acima dos 12%, quanto maior for a humidade relativa, maior é o desvio e este pode atingir os 8%.

 

 

 

 

 

 

 

.