Sensor DHT22

Version 1 (Marina de Freitas, 06/10/2021 11:59)

1 1
h1. Sensor DHT22
2 1
3 1
{{toc}}
4 1
5 1
h2. Especificações do fabricante
6 1
7 1
O DHT é um sensor digital que realiza medidas de temperatura e umidade relativa do ar. Por ser digital, a resposta enviada por ele já vem com as respectivas unidades. Quando o sensor não está devidamente conectado a resposta será "NA", de "not a number", que significa, do inglês, "não é um número". Para usar o DHT é necessário usar bibliotecas, como as encontradas no "repositório da adafruit":https://github.com/adafruit/DHT-sensor-library . Neste repositório também é encontrado _firmwares_ de teste que ajudam a compreender o funcionamento do DHT.
8 1
9 1
O "datasheet":https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf disponibilizado pela SparkFun, também disponível "aqui":http://cta.if.ufrgs.br/attachments/4533/DHT22.pdf , descreve as seguintes especificações:
10 1
11 1
||Umidade Relativa do Ar| Temperatura|
12 1
|Faixa de operação|0-100%|-40~80°C|
13 1
|Exatidão/Accuracy |+-2%(Max +-5%)| <+-0.5Celsius|
14 1
|Resolução ou sensividade|0.1%| 0.1°C|
15 1
|Repetibilidade| +-1%|+-0.2°C|
16 1
|Histerese da umidade|+-0.3%|
17 1
|Estabildiade a longo termo|+-0.5%/Ano|
18 1
19 1
20 1
O DHT também é nomeado AM2302. Segundo o _datasheet_, cada sensor deste modelo tem uma compensação e calibração de temperatura feita numa câmera de precisão. O coeficiente de calibração é salvo em uma programa na memória OTP, logo, não necessita de componentes extras.. Quando o sensor está em funcionamento, irá citar o coeficiente da memória. Ele mede umidade relativa e temperatura, por um sinal digital. O sensor de humidade é capacitivo.
21 1
Pode ser usado para transmissões de longa distância (20m) e possui um baixo consumo de potência, além de ser estável a longo termo.
22 1
Seus elementos sensitivos estão conectados com um chip de 8 bits, sua saída é um sinal digital single-bus.
23 1
O período de cada medição é, em média, 2 segundos. Após a tensão ser aplicado, é sugerir esperar 1 segundo para realizar a medição. É também sugerido colocar um capacitor de 100nF entre o VDD e o GND para filtrar. É sugerido não soldar o sensor em temperaturas maiores do que 260 celsius, o que provavelmente significa que a solda usada deve ser bem fina.
24 1
25 1
26 1
27 1
h2. Caracterização do sensor
28 1
29 1
Será que a exatidão e precisão informadas pelo fabricante refletem  comportamento do DHT22? Motivadas por isso, foi feita uma caracterização do DHT analisando os dados de 10 dias de medida de 7 DHTs em equilíbrio térmico. O valor de referência, de comparação, usado como o valor "real" foi a média dos valores medidos pelo sensor. 
30 1
Começamos olhando o comportamento dos sensores, segue a média por dia dos valores de temperatura e umidade relativa do ar.
31 1
32 1
!http://cta.if.ufrgs.br/attachments/5481/temp-med-dia-linha.jpeg!
33 1
34 1
!http://cta.if.ufrgs.br/attachments/5476/umirelar-med-dia-linha.jpeg!
35 1
36 1
Então surge o questionamento, qual a diferença entre o valor medida por cada sensor e o valor de referência?
37 1
38 1
!http://cta.if.ufrgs.br/attachments/5477/temp-dif-dia-linha.jpeg!
39 1
40 1
!http://cta.if.ufrgs.br/attachments/5476/umirelar-med-dia-linha.jpeg!
41 1
42 1
Esses gráficos apenas nos ajudam a entender o comportamento dos sensores. Para a caracterização, será analisado o comportamento destes sensores conjuntamente, sem distingui-los. Os histogramas abaixo mostram a frequência de cada valor de diferença entre quantidade medida e a quantidade real do mesmo instante.
43 1
44 1
!http://cta.if.ufrgs.br/attachments/5499/temp_hist_min_todos.jpeg!
45 1
46 1
!http://cta.if.ufrgs.br/attachments/5498/umirelar_hist_min_todos.jpeg!
47 1
48 1
Como essas distribuições não são gaussianas, o valor de desvio padrão mostrado na imagem não faz sentido, não é aplicável. É possível então comparar este comportamento com esperado.
49 1
50 1
h3. Exatidão
51 1
52 1
Exatidão, ou _accuracy_, é a capacidade medir uma quantidade próxima ao valor real, uma característica chamada de _"trueness"_. Efeitos estatísticos e aleatórios também influenciam na exatidão. 
53 1
Para temperatura, a exatidão/accuracy esperada é de +-0.5°C. Isso significa que espera-se que os valores medidos se distanciem apenas 0.5°C do valor "real". No histograma é possível ver que todas as medidas se concentram na faixa de -0.5°C e 0.5°C. Isso indica que a exatidão especificada está sendo reproduzida pelos DHTs analisados. 
54 1
No caso da umidade relativa do ar, a exatidão esperada é de +-2%, com um alcance máximo de +-5%. Pelo histograma é possível concluir que este comportamento não foi reproduzido pelos sensores analisados. Um parte significativa dos dados se concentram entre -2% e 2%, mas outra parte significativa se concentram entre -6% e -2% e outra entre -4% e -8%. Este comportamento indica que os sensores analisados não seguem o comportamento especificado pelo fabricante.
55 1
56 1
h3. Repetibilidade
57 1
58 1
Precisão, ou repetibilidade, é capacidade de medir o mesmo valor em várias medidas. Está associada com efeitos aleatórios, estatísticos. Está mais associada a reprodutibilidade de uma medida. É o quanto medidas repetidas sobre as mesas condições resultam no mesmo valor. A precisão de uma média é igual ao desvio padrão dividido pela raiz quadrada do número de observações.
59 1
É esperado que as medidas feitas sob as mesmas condições fiquem numa mesma faixa, de +-0.2°C para temperatura, e +-1% para umidade relativa do ar. É fácil concluir que esta condição não é satisfeita para o conjunto de sensores. Porém, se analisarmos o comportamento de cada sensor separadamente, a conclusão será diferente.
60 1
Como a distribuição de diferenças de cada sensor segue uma distribuição aproximadamente gaussiana, a medida do desvio padrão pode ser usada. Considerando que os valores de cada sensor caem, com 95% de confiança, dentro de um intervalo de +- 2 desvios padrões, espera-se que este valor seja próximo a repetibilidade especificada.
61 1
62 1
63 1
Para temperatura:
64 1
65 1
|-|A|B|C|D|E|F|G|
66 1
|Média (°C)| -0.03 |0.05|0.13 |-0.36 |0.30 | -0.25| 0.16|
67 1
|Desvio Padrão (°C)| 0.03 | 0.03 | 0.03 | 0.03 | 0.04 | 0.03 |0.03 |
68 1
|2*DP (°C)| 0.06 | 0.06 | 0.06 | 0.06 | 0.08 | 0.06 |0.06 |
69 1
70 1
!http://cta.if.ufrgs.br/attachments/5494/temp_hist_dif_min_transparencia.jpeg!
71 1
72 1
Para a umidade relativa d ar:
73 1
74 1
|-|A|B|C|D|E|F|G|
75 1
|Média (%)|   -4.08  |   0.17 |    1.18  |   0.32 |    6.23   | -3.51   | -0.31 |
76 1
|Desvio Padrão -+(%)| 0.26  |0.23  |0.18  |0.28 | 0.32 | 0.42 | 0.30 |
77 1
|2*DP (%)| 0.52  |0.46  |0.36  |0.56 | 0.64 | 0.84 | 0.60 |
78 1
 
79 1
80 1
!http://cta.if.ufrgs.br/attachments/5495/umirelar_hist_dif_min_transparencia.jpeg!
81 1
82 1
Nos dois casos, todos os valores de 2 desvios padrões eram menores do que a repetibilidade especificada (+-0.2°C para temperatura, e +-1% para umidade relativa do ar). *Isso indica que os sensores DHT não apresentam a repetibilidade especificada entre si, mas que cada um apresenta a repetibilidade especificada.*
83 1
84 1
Importante atentar que o valor de referência usado é a médias dos valores desses DHTs, e que uma caracterização mais completa usaria um sensor padrão, de maior confiança, como referência.
85 1
86 1
h2. Calibração
87 1
88 1
Pode ser desejado que a exatidão do DHT seja melhorada, para isso, é necessário fazer uma calibração. No caso, será descrito a adição de um _offset_,  um valor que vai deslocar os valores medidos para mais próximo do valor "real". Em 2018 a colaboradora Marina realizou diversas pesquisas sobre abrigos meteorológicos usando o DHT22, mais detalhes desta pesquisa podem ser encontrados na página sobre "Abrigos Meteorlógicos":http://cta.if.ufrgs.br/projects/estacao-meteorologica-modular/wiki/Abrigo_Meteorol%C3%B3gico   . Durante esta pesquisa, realizou a calibração desse sensor. o caderno de laboratório desta pesquisa pode ser encontra nesta "tarefa":http://cta.if.ufrgs.br/issues/527 . 
89 1
90 1
Alguém pode se perguntar: "Por que calibrar, se o DHT já vem calibrado?" Bom, veja os seguintes histogramas:
91 1
92 1
!http://cta.if.ufrgs.br/attachments/5499/temp_hist_min_todos.jpeg!
93 1
94 1
Ou, quem sabe, esse aqui:
95 1
96 1
!http://cta.if.ufrgs.br/attachments/5498/umirelar_hist_min_todos.jpeg!
97 1
98 1
Esses são histogramas das diferenças entre a medida realizada em cada minuto por um DHT e a medida de referência. Essas medidas foram realizadas num período de 10 dias, com 7 DHTs em equilíbrios térmico. Idealmente, o histograma deveria se concentrar em torno do zero, indicando que a diferença entre a medida de referencia, a medida "real", e a medida de cada sensor é próxima a zero. Ao invés, é possível notar que existem vários picos de medidas, existem "ilhas" de concentração  - o desvio padrão mostrado na figura não faz sentido, já que os histogramas não seguem uma distribuição normal. Isso indica que existe uma diferença sistemática entre a medida de referência e a medida feita pelo sensor.
99 1
Nesta outra figura, é possível ver as mesmas medidas de temperatura, mas discriminadas por sensor e por hora (são a média por hora de todos os 10 dias). 
100 1
101 1
!http://cta.if.ufrgs.br/attachments/5482/temp-med-hora-linha.jpeg!
102 1
103 1
Nesta é possível notar que os sensores apresentam o mesmo comportamento, mas estão deslocados uns dos outros de algumas dezenas de grau. Por isso, adicionar um _offset_ para cada sensor é importante para aproximar a medida da medida real. 
104 1
105 1
Bom, mas qual é o _offset_ que deve ser aplicado? Nada mais é do que a média dessas diferenças. As tabelas abaixo mostram as médias de cada sensor, nomeados de A, B, C, D, E, F e G, e em seguida o histograma dessas diferenças, discriminando as diferenças entre a referência e as mediadas de cada sensor..  
106 1
107 1
Para temperatura:
108 1
109 1
|-|A|B|C|D|E|F|G|
110 1
|Média (°C)| -0.03 |0.05|0.13 |-0.36 |0.30 | -0.25| 0.16|
111 1
|Desvio Padrão (°C)| 0.03 | 0.03 | 0.03 | 0.03 | 0.04 | 0.03 |0.03 |
112 1
|2*DP (°C)| 0.06 | 0.06 | 0.06 | 0.06 | 0.08 | 0.06 |0.06 |
113 1
114 1
!http://cta.if.ufrgs.br/attachments/5494/temp_hist_dif_min_transparencia.jpeg!
115 1
116 1
117 1
Para a umidade relativa do ar:
118 1
119 1
|-|A|B|C|D|E|F|G|
120 1
|Média (%)|   -4.08  |   0.17 |    1.18  |   0.32 |    6.23   | -3.51   | -0.31 |
121 1
|Desvio Padrão -+(%)| 0.26  |0.23  |0.18  |0.28 | 0.32 | 0.42 | 0.30 |
122 1
|2*DP (%)| 0.52  |0.46  |0.36  |0.56 | 0.64 | 0.84 | 0.60 |
123 1
124 1
125 1
!http://cta.if.ufrgs.br/attachments/5495/umirelar_hist_dif_min_transparencia.jpeg!
126 1
127 1
O _offset_ aplicado, as médias das diferenças, foi subtraído de todos as medidas de cada sensor. O resultado foi o esperado, histogramas centralizados em 0.
128 1
129 1
Temperatura:
130 1
131 1
132 1
|  |Offset| Novas Médias |Novos DP|
133 1
|A  |-0.03|      -0.0032     |0.03|
134 1
|B   |0.05 |     -0.0015     |0.03|
135 1
|C   |0.13  |     0.0029    | 0.03|
136 1
|D  |-0.36   |    0.0007   |  0.03|
137 1
|E  | 0.30    |   0.0041  |   0.04|
138 1
|F | -0.25     | -0.0033 |    0.03|
139 1
|G|   0.16      | 0.0004|     0.03|
140 1
141 1
!http://cta.if.ufrgs.br/attachments/5509/temp_offset_hist_dif_min.jpeg!
142 1
143 1
Todas as médias e desvio padrão estão bem abaixo da resolução do sensor, e também da repetibilidade, o que é o esperado.  Inclusive, é bem tranquilo afirmar que essas médias são iguais a zero, já que estão muito atrás do último algoritmo significativo - a resolução do sensor é de 0.1°C e 0.1%.
144 1
Esses novo conjunto de dados está calibradíssimo. 
145 1
146 1
Umidade Relativa do Ar:
147 1
148 1
| | Offset| Novas Médias| Novos DP|
149 1
|A|  -4.08      |-0.0010|     0.26|
150 1
|B |  0.17     | -0.0043 |    0.23|
151 1
|C  | 1.18    |   0.0007  |   0.18|
152 1
|D   |0.32   |    0.0021   |  0.28|
153 1
|E|   6.23  |     0.0026    | 0.32|
154 1
|F | -3.51 |      0.0032     |0.42|
155 1
|G  |-0.31|      -0.0034    | 0.30|
156 1
157 1
!http://cta.if.ufrgs.br/attachments/5510/umirelar_offset_hist_dif_min.jpeg!
158 1
159 1
O mesmo já não pode ser afirmado sobre o a umidade relativa do ar. Um desvio padrão já é maior do que a resolução, dois então. . . Isso já era esperado, dado que a calibração, a adição de um _offset_, deveria melhorar a _accuracy_, não a precisão/repetibildade.
160 1
161 1
162 1
Note que esta calibração serve para os sensores testados, os valores de _offset_ usados não podem ser aplicados para qualquer DHT. É sugerido repetir este mesmo processo no caso de novos DHTs. Os códigos R usados para a calibração descrita se encontram no "repositório git":https://git.cta.if.ufrgs.br/mfreitas/AbrigoMeteorologico/tree/master/Aquisicao%20de%20dados/Calibra%C3%A7%C3%A3o
163 1
164 1
h2. Experiências e comentários de uso
165 1
166 1
Como descrito no _datasheet_, o DHT é sensível a temperaturas muito altas, por isso o solda deve ser feita com cuidado. Uma sugestão é soldar o fio a algum barramento, e encaixar o DHT no barramento. O DHT pode ser firmado ao barramento com fita isolante ou termoretrátil. 
167 1
Durante o desenvolvimento da germinadora/incubadora/estufa, a colaboradora Marina notou que a resposta do DHT a mudanças de temperatura é bem len