Verifique e Calibre Seu Sensor de Umidade para Medições Precisas
Quão preciso é seu sensor de umidade? Descubra com este projeto.
Sensores de umidade são comuns, relativamente baratos e vêm em muitas variedades. Frequentemente, checamos o datasheet, usamos com uma interface, e (desde que os valores "pareçam razoáveis") aceitamos os resultados.
Neste projeto, demonstramos como ir além e verificar a precisão de um sensor de umidade. Também ilustramos um método geral para calibração de sensores e aplicamos o método para calibrar resultados e melhorar a precisão das medições de umidade.
Configuração de teste usada no projeto (da esquerda para direita: placa microcontrolador Quark D2000, interface do sensor, sensor HIH5030 em microambiente).
Fundamentos do Projeto
Para verificar a precisão de um sensor, valores obtidos são comparados a um padrão de referência. Para verificar precisão de sensor de umidade, usamos o método de "sal saturado" para produzir os padrões. Simplificando, certos sais (compostos iônicos como sal de cozinha ou cloreto de potássio), quando dissolvidos em solução aquosa, produzem atmosfera de umidade conhecida (veja PDF de referência).
Essas propriedades químicas criam microambientes de porcentagens conhecidas de umidade relativa (UR) (padrões de referência), e os sensores são lidos dentro do microambiente. Especificamente, faremos uma solução em pote vedado para preservar a atmosfera e colocaremos o sensor conectado no pote vedado. Subsequentemente, o sensor é lido repetidamente e valores registrados.
Repetindo o procedimento com vários sais diferentes, cada um produzindo UR diferente, podemos desenvolver um perfil para o sensor sob teste. Como sabemos qual a UR para cada microambiente, podemos avaliar desvios das leituras do sensor desses valores conhecidos, e assim avaliar a precisão do sensor.
Se desvios são substanciais, mas não intransponíveis, podemos aplicar procedimentos matemáticos de calibração em software para aumentar a precisão das medições.
Uma Palavra sobre Segurança
Antes de prosseguir, é essencial que você manuseie os químicos usados neste projeto responsavelmente.
- Leia a ficha de dados de segurança (SDS, ou às vezes MSDS) para cada químico usado (links para SDS de cada sal usado abaixo, e você pode buscar literatura sobre cada sal e procedimentos de manuseio seguro).
- Não inale ou ingira os químicos.
- Não deixe químicos contactar pele ou olhos (use luvas e óculos).
- Não prepare soluções na mesma área onde comida é preparada.
- Armazene os químicos adequadamente.
- Descarte adequadamente as soluções e todos instrumentos usados para preparar as soluções para que exposições não ocorram acidentalmente.
- Antes de começar, saiba o que fazer se exposição acidental ocorrer (veja ficha de segurança).
Sais Usados
Em geral, quanto mais atmosferas de UR você puder produzir para padrões de referência, melhor a caracterização do sensor testado. Há, porém, sempre limite de recursos no sentido prático. Neste projeto, quatro padrões de referência foram usados e os sais escolhidos para produzir os padrões cobrem uma faixa de valores de UR possíveis, mas também considerando segurança, disponibilidade e custo.
Os sais abaixo foram escolhidos. No caso de cloreto de sódio (sal de cozinha), sal kosher puro foi obtido barato em mercearia local. Se seguir essa rota, evite sal de mesa com aditivos como iodo ou anti-aglomerantes.
| Sal | % UR (a 25°C) | Fonte | Ficha de Segurança |
|---|---|---|---|
| Cloreto de Lítio | 11,30 | Home Science Tools | SDS para LiCl |
| Cloreto de Magnésio | 32,78 | Home Science Tools | SDS para MgCl |
| Cloreto de Sódio | 75,29 | Vários (ver texto) | SDS para NaCl |
| Cloreto de Potássio | 84,34 | Home Science Tools | SDS para KCl |
Criando Microambiente
Temos padrões para quase tudo e há até um para criar UR estável a partir de solução aquosa (veja ASTM E104 – 02(2012)). Minha bancada, e provavelmente a sua, não é laboratório oficial de testes, mas vale seguir especificações do padrão o mais próximo possível.
Note também que resultados apresentados neste projeto, embora coletados com cuidado, não devem ser interpretados como refletindo ou indicando declaração geral de qualidade da precisão de qualquer marca de sensor. Apenas pequeno número de sensores foi testado e estes tinham idades e históricos de uso diferentes.
Para cada sal, uma mistura pastosa foi criada adicionando água destilada a consistência similar a areia bem molhada. Quatro ou cinco colheres de sopa de químico e uma colher de sopa de água destilada podem ser tentadas, mas você pode ter que experimentar um pouco.
A mistura foi feita em pote pequeno com vedação apertada. Vidro ou plástico funcionam bem, desde que mantenham atmosfera interna. Pequeno furo pode ser feito na tampa para passar fios de conexão à interface do sensor e ao microcontrolador. O sensor conectado é então posicionado aproximadamente 1,3–2,5 cm acima da mistura. Cuidado para que sensor nunca contacte diretamente a solução ou provavelmente será danificado. Para manter conexão no lugar e vedar furo na tampa, massa de contato facilmente removível pode ser usada.
É importante permitir bastante tempo para equilibração antes de tomar leitura final. Testei empiricamente, tomando leituras a cada minuto por até seis horas em casos selecionados. Na minha experiência, isso foi mais que necessário e estabeleci 90–120 minutos de equilibração para cada sensor e sal. Então média das últimas cinco leituras foi usada para valor final. Em todos casos, os cinco valores mostraram pouca ou nenhuma diferença.
Adicionalmente, todas leituras foram tomadas a cerca de 25°C (± 1°) temperatura ambiente, e valor de UR usado para cada padrão foi o listado para 25°C (veja este PDF para valores).
Sensor HIH5030 em placa carrier dentro de microambiente contendo cloreto de sódio.
Hardware
Microcontrolador
Neste projeto, interfaciamos os sensores usando microcontrolador Quark D2000. O D2000 é placa 3V com interfaces I2C e analógico-digital.
Lembre-se, porém, que a maioria dos outros microcontroladores com interfaces apropriadas pode ser usado.
Interfaces dos Sensores
Sensores testados no projeto; A) HIH8121, B) HIH5030, C) DHT-22 (AM2302), D) HIH6030 (em placa carrier).
Quatro tipos diferentes de sensores de umidade foram testados: DHT-22 (dois usados), HIH5030, HIH6030 e HIH8121. Os esquemáticos abaixo ilustram as interfaces simples usadas para cada tipo de sensor, e consulta aos datasheets linkados dará informação de fundo para os circuitos.
- O DHT-22 é sensor de temperatura e umidade com saída serial proprietária
- O HIH5030 é sensor de umidade com saída analógica (tensão). A interface usa um op-amp em configuração ganho unitário para casamento de impedância.
- O HIH6030 e HIH8121 são sensores de temperatura e umidade que usam protocolo I2C
Interface DHT-22 para D2000.
BOM DHT-22: U1, sensor DHT-22; R1, resistor 4,7kΩ; C1, capacitor 0,1 µF.
Interface HIH5030 para D2000.
BOM HIH5030: U1, sensor HIH3050; U2, op-amp MCP601P; C1, capacitor 1,0 µF; C2, capacitor 0,1 µF.
Interface HIH6030 para D2000.
BOM HIH6030: U1, sensor HIH6030; R1 e R2, resistor 2,2 kΩ; C1, capacitor 0,22 µF; C2, capacitor 0,1 µF.
Interface HIH8121 para D2000.
BOM HIH8121: U1, sensor HIH8121; R1 e R2, resistor 2,2 kΩ; C1, capacitor 0,22 µF.
Software dos Sensores
Todos programas para coleta de dados dos sensores são escritos em linguagem C e podem ser baixados clicando no botão "Humidity Sensor Project Code". Cada um é comentado e direto. Para cada sensor, o programa simplesmente lê o sensor a cada minuto e envia valor a um monitor serial. Como tal, devem ser fáceis de adaptar à sua aplicação particular.
Capturas de saída de DHT22.c (esquerda) e HIH5030.c (direita).
Procedimento de Avaliação dos Sensores
A tabela abaixo contém dados da avaliação dos sensores em cada um dos quatro microambientes.
| DHT #1 | DHT #2 | HIH5030 | HIH6030 | HIH8121 | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| UR de Referência | OBS | ERR | OBS | ERR | OBS | ERR | OBS | ERR | OBS | ERR |
| 11,30 (LiCl) | 12,56 | 1,26 | 16,29 | 4,99 | 13,02 | 1,72 | 20,79 | 9,49 | 12,31 | 1,01 |
| 32,78 (MgCl) | 32,36 | -0,42 | 33,79 | 1,01 | 33,46 | 0,68 | 40,77 | 7,99 | 32,43 | -0,35 |
| 75,29 (NaCl) | 73,04 | -2,25 | 74,50 | -0,79 | 77,74 | 2,45 | 83,83 | 8,54 | 76,63 | 1,34 |
| 84,34 (KCl) | 82,30 | -2,04 | 82,15 | -2,19 | 85,84 | 1,50 | 93,43 | 9,09 | 85,01 | 0,67 |
| RMSE | 1,657 | 2,799 | 1,708 | 8,796 | 0,920 | |||||
Uma vez coletados dados do desempenho do sensor em ambientes estáveis de UR conhecida, você pode avaliar numericamente a precisão do sensor.
Note que na tabela calculamos erro para cada sensor em cada padrão de UR. Não podemos, porém, simplesmente fazer média desses valores para avaliar o sensor porque alguns valores são positivos e outros negativos. Se simplesmente fizéssemos média, o valor resultante minimizaria o erro médio já que valores positivos e negativos se cancelariam.
Em vez disso, calculamos erro quadrático médio (RMSE) para caracterizar a precisão do sensor. A fórmula do RMSE está abaixo:
onde O é o valor observado do sensor e I é o valor ideal do sensor (padrão de referência). Para calcular RMSE, elevamos ao quadrado cada erro (desvio do padrão de referência), calculamos média aritmética desses valores, e finalmente tiramos raiz quadrada da média.
Uma vez caracterizada a precisão do sensor, você pode usar RMSE para decidir se calibração é necessária. Em alguns casos, RMSE é pequeno e completamente aceitável para sua aplicação e você pode razoavelmente decidir que nenhuma calibração é necessária.
Por exemplo, resultados para HIH8121 são impressionantes. RMSE é menor que 1% e todos pontos de amostra têm erro menor que 2%.
Por outro lado, em alguns casos, você pode achar que resposta do sensor é tão pobre e irregular que simplesmente decide que outro sensor é necessário para sua aplicação.
A decisão de calibrar deve sempre considerar grau de precisão necessário para a tarefa. No entanto, podemos melhorar a precisão das leituras do sensor por calibração, para todos sensores na tabela.
Procedimento de Calibração do Sensor
Para calibrar um sensor, precisamos primeiro determinar matematicamente a função que relaciona valores ideais aos observados. Procedimento de regressão linear pode ser usado para determinar essa função.
A palavra "linear" no nome do procedimento de regressão não significa função linear. Em vez disso, refere-se a combinação linear de variáveis. A função resultante pode ser linear ou curvilínea. Todas três funções polinomiais abaixo representam regressão linear (nota: ignoramos caso grau 0 que não é útil neste contexto).
- y = ax + b (primeiro grau, linear)
- y = ax2 + bx + c (segundo grau, quadrática)
- y = ax3 + bx2 + cx + d (terceiro grau, cúbica)
No projeto atual, calculamos valores do sensor usando quatro padrões de referência (n = 4). Assim, polinômio de terceiro grau é o de maior grau que podemos calcular. É sempre o caso que o polinômio de maior grau possível é n – 1, e neste caso significa 3 (4 – 1).
Procedimentos de mínimos quadrados são ordinariamente usados para regressão linear. Neste procedimento, uma linha é ajustada de forma que a soma das distâncias de cada dado à linha seja mínima. Há muitos programas disponíveis que usam mínimos quadrados para regressão linear. Você pode até usar Excel (clique aqui para mais informação).
Também deve ser notado que não precisamos usar regressão linear. Poderíamos usar regressão não-linear. Exemplos resultam em função de potência ou Fourier. Regressão linear, porém, é bem adequada aos dados do nosso projeto e, além disso, correção de software (calibração) é facilmente implementada. Na verdade, neste projeto, não acredito que você ganharia muito usando regressão não-linear.
Escolhendo o Polinômio
Em teoria, queremos usar o polinômio que melhor se ajusta aos dados. Ou seja, o polinômio que produz menor coeficiente de determinação, denotado r2 (ou R2, pronunciado "R ao quadrado"). Quanto mais próximo r2 de 1, melhor o ajuste. Com estimação por mínimos quadrados, é sempre o caso que quanto maior o grau do polinômio usado, melhor o ajuste.
Você não tem, porém, que usar automaticamente o polinômio de maior grau possível. Como calibração ocorrerá em software, pode haver casos onde uso de polinômio de menor grau representa vantagem de velocidade e/ou memória, especialmente se a precisão a ser ganha usando polinômio de maior grau for muito pequena.
Abaixo, demonstramos procedimentos de calibração para sensor HIH6030 usando polinômios de diferentes graus, ilustrando o procedimento geral aplicável a qualquer grau de polinômio que você escolher.
Usando dados da tabela anterior, primeiro realizamos procedimento de regressão de mínimos quadrados para determinar coeficientes para cada polinômio. Esses valores virão do pacote de software de regressão usado. Resultados abaixo, incluindo valores de r2.
- Linear: y = ax + b; a = 1,0022287, b = -8,9105659, r2 = 0,9996498
- Quadrática: y = ax2 + bx + c; a = -0,0012638, b = 1,1484601, c = -12,0009745, r2 = 0,9999944
- Cúbica: y = ax3 + bx2 + cx + d; a = 0,0000076, b = -2,4906103, c = 1,2061971, d = -12,7681425, r2 = 0,9999999
Os valores observados agora podem ser modificados usando as funções calculadas. Ou seja, leituras do sensor podem ser calibradas como ilustrado na tabela abaixo (nota: valores OBS, Corrigido e ERR arredondados a duas casas decimais).
| BRUTO | 1º Grau | 2º Grau | 3º Grau | |||||
|---|---|---|---|---|---|---|---|---|
| Ref UR | OBS | ERR | Corrigido | ERR | Corrigido | ERR | Corrigido | ERR |
| 11,30 | 20,79 | 9,49 | 11,93 | 0,63 | 11,36 | 0,06 | 11,30 | 0,00 |
| 32,78 | 40,77 | 7,99 | 31,95 | -0,83 | 32,83 | 0,05 | 32,78 | 0,00 |
| 75,29 | 83,83 | 8,54 | 75,11 | -0,18 | 75,85 | 0,55 | 75,29 | 0,00 |
| 84,34 | 93,43 | 9,09 | 84,73 | 0,39 | 84,83 | 0,49 | 84,34 | 0,00 |
| RMSE | 8,795736 | 0,562146 | 0,371478 | 0,00212 |
Pode-se ver que todos três polinômios produziram diminuição significativa no RMSE, comparado às medidas observadas, e é por isso que você calibra. O gráfico abaixo ilustra a melhoria usando polinômio de 1º grau. Note como pontos de dados calibrados (corrigidos) agora ficam perto da diagonal ideal.
Leia Mais Informações….
Como Verificar e Calibrar um Sensor de Umidade
Projeto/Post Atual também pode ser encontrado usando:
- how t chec for humidity calibratiod
Processo de manufatura
- Sensores de Umidade: Como Funcionam e Principais Aplicações
- Sensor DHT11: Como Funciona e Principais Aplicações
- Raspberry Pi e HDC2010: Guia Completo de Configuração I2C para Sensor de Temperatura e Umidade
- Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
- Construa Estação Meteorológica Raspberry Pi que Envia Dados Diários por Email
- Construa um Sistema de Monitoramento de Temperatura e Luz Multi-Sensor com Raspberry Pi e DS18B20
- Dominando Controle de Sensores e Atuadores no Raspberry Pi: Acelerômetro, Servo e Streaming de Dados
- Construa um Sistema Aeropônico Automatizado com Raspberry Pi e Sensor de Umidade
- Monitoramento Preciso de Temperatura e Umidade com SHT15 no Windows 10 IoT Core
- Guia Passo a Passo para Inspecionar e Diagnosticar Problemas em Motores DC