Como verificar e calibrar um sensor de umidade
Sensores de umidade são comuns, relativamente baratos e vêm em muitas variedades diferentes. Muitas vezes, verificamos a folha de dados, usamos-a com uma interface e (contanto que os valores “pareçam razoáveis”) aceitamos os resultados.
Neste projeto, demonstramos como dar um passo adiante e verificar a precisão de um sensor de umidade. Também ilustramos um método geral para calibração do sensor e aplicamos o método para calibrar os resultados para melhorar a precisão das medições de umidade .
Configuração de teste usada no projeto (da esquerda para a direita, placa do microcontrolador Quark D2000, interface do sensor, sensor HIH5030 em um microambiente).
Fundamentos do projeto
Para verificar a precisão de um sensor, os valores obtidos são comparados a um padrão de referência. Para verificar a precisão de um sensor de umidade, usamos o método do “sal saturado” para produzir os padrões. Simplificando, certos sais (ou seja, compostos iônicos, como sal de cozinha ou cloreto de potássio), quando dissolvidos em uma solução aquosa, produzem uma atmosfera de umidade conhecida (ver PDF de referência).
Essas propriedades químicas são usadas para criar microambientes de porcentagens conhecidas de umidade relativa (UR) (ou seja, padrões de referência), e os sensores são lidos dentro do microambiente. Especificamente, faremos uma solução em uma jarra lacrada para preservar a atmosfera e, em seguida, colocaremos o sensor conectado na jarra lacrada. Posteriormente, o sensor é lido repetidamente e os valores registrados.
Ao repetir o procedimento usando vários sais diferentes, cada um produzindo uma umidade relativa diferente, podemos desenvolver um perfil para o sensor em teste. Como sabemos qual é a umidade relativa de cada microambiente, podemos avaliar os desvios das leituras do nosso sensor em relação aos valores conhecidos e, assim, avaliar a precisão do sensor.
Se os desvios são substanciais, mas não intransponíveis, podemos aplicar procedimentos de calibração matemática no software para aumentar a precisão das medições.
Uma palavra sobre segurança
Antes de prosseguir, é essencial que você manuseie os produtos químicos usados neste projeto de forma responsável.
- Leia a folha de dados de segurança (SDS, ou às vezes MSDS (folha de dados de segurança de material)) para cada um dos produtos químicos usados (links para a SDS para cada sal usado são fornecidos abaixo, e você também pode realizar pesquisas na literatura sobre cada sal e seus procedimentos de manuseio seguro).
- Não inale ou ingira os produtos químicos.
- Não deixe os produtos químicos entrarem em contato com sua pele ou olhos (use luvas e óculos de proteção).
- Não prepare as soluções na mesma área em que os alimentos são preparados.
- Armazene os produtos químicos de maneira adequada.
- Descarte adequadamente as soluções e todos os instrumentos usados para preparar as soluções para que as exposições não ocorram acidentalmente.
- Antes de começar, saiba o que fazer se ocorrer uma exposição acidental (consulte a folha de dados de segurança).
Sais usados
Em geral, quanto mais atmosferas RH você puder produzir para padrões de referência, melhor será a caracterização do sensor em teste. No entanto, sempre há um limite de recursos em um sentido prático. Neste projeto, quatro padrões de referência foram usados e os sais usados para produzir os padrões de referência foram escolhidos para cobrir uma gama de valores possíveis de UR, mas também levando em consideração a segurança, disponibilidade e custo.
Os sais abaixo foram escolhidos. No caso do cloreto de sódio (sal de cozinha), o sal kosher puro foi obtido a baixo custo em um armazém local. Se você seguir esse caminho, evite usar sal de cozinha com aditivos, como iodo ou agentes antiaglomerantes.
Sal | % UR (a 25 ° C) | Fonte | Folha de dados de segurança |
---|---|---|---|
Cloreto de Lítio | 11,30 | Ferramentas de ciências domésticas | SDS para LiCl |
Cloreto de Magnésio | 32,78 | Ferramentas de ciências domésticas | SDS para MgCl |
Cloreto de sódio | 75,29 | Vários (ver texto) | SDS para NaCl |
Cloreto de potássio | 84,34 | Ferramentas de ciências domésticas | SDS para KCl |
Criando um microambiente
Temos padrões para quase tudo e existe até um para criar uma UR estável a partir de uma solução aquosa (ver ASTM E104 - 02 (2012)). Embora minha bancada, e provavelmente a sua, não seja um laboratório de testes oficial, vale a pena seguir as especificações do padrão o máximo possível.
Observe também que os resultados apresentados neste projeto, embora coletados com cuidado, não devem ser interpretados como refletindo ou indicando uma declaração de qualidade geral da precisão de qualquer marca de sensor. Apenas um pequeno número de sensores foi testado e os usados tinham diferentes idades e diferentes históricos de uso.
Para cada sal, uma mistura lamacenta foi criada adicionando água destilada a uma consistência semelhante a areia muito úmida. Quatro ou cinco colheres de sopa de produto químico e uma colher de sopa de água destilada podem ser experimentadas, mas você pode ter que fazer algumas experiências.
A mistura foi feita em um pequeno frasco bem lacrado. Vidro ou mesmo plástico devem funcionar bem, desde que possam manter a atmosfera interna. Um pequeno orifício pode ser feito na parte superior do jarro para passar os fios de conexão à interface do sensor e, em seguida, a um microcontrolador. O sensor conectado é então posicionado aproximadamente 0,5-1,0 polegadas acima da mistura. Tome cuidado para que o sensor nunca entre em contato direto com a solução ou provavelmente será danificado. Para segurar a conexão no lugar e para selar o orifício na tampa, um pouco de massa de contato facilmente removível pode ser usada.
É importante que você reserve bastante tempo para se equilibrar antes de fazer a leitura final. Testei esse problema empiricamente, fazendo leituras a cada minuto por até seis horas em casos de teste selecionados. Na minha experiência, isso foi mais longo do que o necessário e eu estabeleci um tempo de equilíbrio de 90-120 minutos para cada sensor e sal. Em seguida, uma média das últimas cinco leituras foi usada para o valor final. Para todos os casos, os cinco valores mostraram muito pouca ou nenhuma diferença.
Além disso, todas as leituras foram feitas a cerca de 25 ° C (± 1 °) da temperatura ambiente, e o valor de UR usado para cada padrão foi o listado para 25 ° C (veja os valores neste PDF).
Sensor HIH5030 em uma placa transportadora dentro de um microambiente contendo cloreto de sódio.
Hardware
Microcontrolador
Neste projeto, fazemos a interface dos sensores usando um microcontrolador Quark D2000. O D2000 é uma placa 3V com I2C e interfaces analógico-digital.
Lembre-se, porém, de que quase todos os outros microcontroladores com as interfaces apropriadas podem ser usados.
Interfaces do sensor
Sensores testados no projeto; A) HIH8121, B) HIH5030, C) DHT-22 (AM2302), D) HIH6030 (em uma placa portadora).
Quatro tipos diferentes de sensores de umidade foram testados:DHT-22 (dois foram usados), HIH5030, HIH6030 e HIH8121. Os esquemas abaixo ilustram as interfaces simples usadas para cada tipo de sensor, e a consulta às folhas de dados vinculadas fornecerá informações básicas para os circuitos.
- O DHT-22 é um sensor de temperatura e umidade com uma saída serial proprietária
- O HIH5030 é um sensor de umidade com saída analógica (tensão). A interface para este sensor usa um amplificador operacional em uma configuração de ganho de unidade para correspondência de impedância.
- O HIH6030 e HIH8121 são sensores de temperatura e umidade que usam o protocolo I2C
Interface DHT-22 para D2000.
DHT-22 BOM:U1, sensor DHT-22; R1, resistor de 4,7 kΩ; C1, capacitor de 0,1 µF.
Interface HIH5030 para D2000.
HIH5030 BOM:U1, sensor HIH3050; U2, MCP601P op-amp; C1, capacitor de 1,0 µF; C2, capacitor de 0,1 µF.
Interface HIH6030 para D2000.
HIH6030 BOM:U1, sensor HIH6030; R1 e R2, resistor de 2,2 kΩ; C1, capacitor de 0,22 µF; C2, capacitor de 0,1 µF.
Interface HIH8121 para D2000.
HIH8121 BOM:U1, sensor HIH8121; R1 e R2, resistor de 2,2 kΩ; C1, capacitor de 0,22 µF.
Software de sensor
Todos os programas de coleta de dados do sensor são escritos na linguagem C e podem ser baixados clicando no botão “Código do Projeto do Sensor de Umidade”. Cada um é comentado e direto. Para cada sensor, o programa simplesmente lê o sensor a cada minuto e envia o valor para um monitor serial. Como tal, devem ser fáceis de adaptar à sua aplicação específica.
Capturas de tela da saída de DHT22.c (esquerda) e HIH5030.c (direita).
Procedimento de avaliação do sensor
A tabela abaixo contém os dados da avaliação dos sensores em cada um dos quatro microambientes.
DHT # 1 | DHT # 2 | HIH5030 | HIH6030 | HIH8121 | ||||||
---|---|---|---|---|---|---|---|---|---|---|
RH 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 |
Depois de coletar os dados do desempenho do sensor em ambientes estáveis de umidade relativa conhecida, você pode avaliar numericamente a precisão de um sensor.
Observe que, na tabela, calculamos o erro para cada sensor em cada padrão de RH. Não podemos, no entanto, simplesmente calcular a média desses valores para avaliar o sensor porque alguns valores são positivos e outros valores são negativos. Se simplesmente pegássemos uma média, o valor resultante minimizaria o erro médio, pois os valores positivos e negativos se cancelariam.
Em vez disso, calculamos um erro quadrático médio (RMSE) para caracterizar a precisão do sensor. A fórmula para RMSE está abaixo:
onde O é o valor observado do sensor e I é o valor ideal do sensor (ou seja, o padrão de referência). Para calcular o RMSE, elevamos ao quadrado cada erro (o desvio do padrão de referência), depois calculamos a média aritmética desses valores e, por fim, obtemos a raiz quadrada da média.
Depois de caracterizar a precisão do sensor, você pode usar o RMSE para decidir se é necessário calibrar o sensor. Em alguns casos, o RMSE é pequeno e completamente aceitável para sua aplicação e você pode decidir razoavelmente que nenhuma calibração é necessária.
Por exemplo, os resultados do HIH8121 são impressionantes. O RMSE é inferior a 1% e todos os pontos de amostra apresentam um erro inferior a 2%.
Por outro lado, em alguns casos, você pode descobrir que a resposta do sensor é tão ruim e irregular que você simplesmente decide que outro sensor é necessário para sua aplicação.
A decisão de calibrar deve sempre levar em consideração o 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 os sensores da tabela.
Procedimento de calibração do sensor
Para calibrar um sensor, precisamos primeiro determinar matematicamente a função que relaciona os valores ideais aos valores observados. Um 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 uma função linear. Em vez disso, o termo se refere a uma combinação linear de variáveis. A função resultante pode ser linear ou curvilínea. Todas as três funções polinomiais abaixo representam regressão linear (nota:estamos ignorando um caso de 0 grau que não é útil neste contexto).
- y =ax + b (primeiro grau, linear)
- y =ax 2 + bx + c (segundo grau, quadrático)
- y =ax 3 + bx 2 + cx + d (terceiro grau, cúbico)
No projeto atual, calculamos os valores do sensor usando quatro padrões de referência (ou seja, n =4). Assim, um polinômio de terceiro grau é o polinômio de grau mais alto que podemos calcular. É sempre o caso que o polinômio de maior grau possível é n - 1, e neste caso isso significa 3 (4 - 1).
Procedimentos de mínimos quadrados são normalmente usados para regressão linear. Neste procedimento, uma linha é ajustada de forma que a soma das distâncias de cada datum à linha seja a menor possível. Existem muitos programas disponíveis que usam procedimentos de mínimos quadrados para realizar a regressão linear. Você pode até usar o Excel (clique aqui para mais informações).
Deve-se notar também que não precisamos usar regressão linear. Podemos usar regressão não linear. Exemplos de regressão não linear resultam em uma função de potência ou uma função de Fourier. A regressão linear, no entanto, é adequada para os dados do nosso projeto e, além disso, a correção de software (calibração) é facilmente implementada. Na verdade, neste projeto, não acredito que você ganharia muito com o uso de regressão não linear.
Escolha do polinômio
Em teoria, queremos usar o polinômio que melhor se ajusta aos dados. Ou seja, o polinômio que produz o menor coeficiente de determinação, denotado r 2 (ou R 2 , pronunciado “R ao quadrado”). Quanto mais próximo r 2 é para 1, melhor será o ajuste. Com a estimativa de mínimos quadrados, é sempre o caso em que quanto maior o grau de polinômio usado, melhor será o ajuste.
No entanto, você não precisa usar automaticamente o polinômio de grau mais alto possível. Uma vez que a calibração ocorrerá no software, pode haver casos em que o uso de um polinômio de grau inferior representa uma vantagem de velocidade e / ou memória, especialmente se a precisão a ser obtida usando um polinômio de grau superior for muito pequena.
Abaixo, demonstramos os procedimentos de calibração para o sensor HIH6030 usando polinômios de diferentes graus e, ao fazer isso, ilustraremos o procedimento geral aplicável a qualquer grau de polinômio que você escolher usar.
Usando os dados da tabela anterior, primeiro realizamos o procedimento de regressão de mínimos quadrados para determinar os coeficientes para cada polinômio. Esses valores virão do pacote de software de regressão usado. Os resultados estão abaixo, incluindo r 2 valores.
- Linear:y =ax + b; a =1,0022287, b =-8,9105659, r 2 =0,9996498
- Quadrático:y =ax 2 + bx + c; a =-0,0012638, b =1,1484601, c =-12.0009745, r 2 =0,99999944
- Cúbico:y =ax 3 + bx 2 + cx + d; a =0,0000076, b =-2,4906103, c =1,2061971, d =-12,7681425, r 2 =0,9999999
Os valores observados agora podem ser modificados usando as funções calculadas. Ou seja, as leituras do sensor podem ser calibradas conforme ilustrado na tabela abaixo (observe que os valores OBS, corrigido e ERR são arredondados para duas casas decimais).
RAW | 1º grau | 2º grau | 3º grau | |||||
---|---|---|---|---|---|---|---|---|
Ref RH | 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 os três polinômios produziram uma diminuição significativa no RMSE, em comparação com as medidas observadas, e é por isso que você calibra. O gráfico abaixo ilustra a melhoria usando o polinômio de 1º grau. Observe como os pontos de dados calibrados (corrigidos) agora estão próximos da diagonal ideal.
Leia mais informações….
Como verificar e calibrar um sensor de umidade
Projeto / postagem atual também pode ser encontrado usando:
- como chec para calibração de umidade
Processo de manufatura
- Sensor de umidade funcionando e suas aplicações
- Sensor DHT11 e seu funcionamento
- IoT básica - RaspberryPI HDC2010 como
- Sensor de temperatura Python e Raspberry Pi
- Estação meteorológica Raspberry Pi
- Temperatura do Raspberry Pi e sensor de luz
- Sensor Raspberry Pi e controle do atuador
- Aeroponia com Raspberry Pi e sensor de umidade
- Windows 10 IoT Core e SHT15
- Como verificar um motor CC