Categorias: Circuitos de microcontrolador
Número de visualizações: 9996
Comentários sobre o artigo: 0

Medindo temperatura e umidade no Arduino - uma seleção de métodos

 

Para criar uma estação meteorológica ou termômetro doméstico, você precisa aprender como emparelhar a placa Arduino e um dispositivo para medir temperatura e umidade. A medição da temperatura pode ser feita usando um termistor ou um sensor digital DS18B20, mas para medir a umidade use dispositivos mais complexos - sensores DHT11 ou DHT22. Neste artigo, mostraremos como medir a temperatura e a umidade usando o Arduino e esses sensores.

Medindo temperatura e umidade no Arduino - uma seleção de métodos

Medição de termistor

A maneira mais fácil de determinar a temperatura é usar termistor. Este é um tipo de resistor cuja resistência depende da temperatura ambiente. Existem termistores com um coeficiente de temperatura positivo e negativo de resistência - PTC (também chamado de posistores) e termistores NTC, respectivamente.

No gráfico abaixo, você vê a dependência da temperatura da resistência. A linha tracejada mostra a dependência de um termistor TCS negativo (NTC) e a linha sólida para um termistor TCS positivo (PTC).

Dependência de temperatura da resistência

O que vemos aqui? A primeira coisa que chama a sua atenção é que o cronograma do termistor PTC está quebrado e será difícil ou impossível medir vários valores de temperatura, mas o cronograma do termistor NTC é mais ou menos uniforme, embora seja claramente não linear. O que isso significa? O uso de um termistor NTC é mais fácil de medir a temperatura, porque é mais fácil descobrir a função pela qual seus valores mudam.

Para converter a temperatura em resistência, você pode obter manualmente os valores, mas isso é difícil de fazer em casa e é necessário um termômetro para determinar os valores reais da temperatura do meio. Nas planilhas de dados de alguns componentes, uma tabela é fornecida, por exemplo, para uma série de termistores NTC da Vishay.

Termistores Datashit Vishay TC

Em seguida, você pode organizar a tradução pelas ramificações usando a função if ... else ou switchcase. No entanto, se não houver tais tabelas nas folhas de dados, é necessário calcular a função pela qual a resistência muda com o aumento da temperatura.

Para descrever essa mudança, existe a equação de Steinhart-Hart.

Equação de Steinhart-hart

onde A, B e C são as constantes do termistor determinadas pela medição de três temperaturas com uma diferença de pelo menos 10 graus Celsius. Ao mesmo tempo, fontes diferentes indicam que, para um termistor NTC típico de 10 kΩ, eles são iguais a:

Constantes do termistor

Coeficiente B - beta, é calculado com base na medição de resistência para duas temperaturas diferentes. É indicado na folha de dados (como ilustrado abaixo) ou calculado independentemente.

B - coeficiente beta da folha de dados

Nesse caso, B é indicado na forma:

proporção beta

Isso significa que o coeficiente foi calculado com base nos dados obtidos ao medir a resistência em temperaturas de 25 e 100 graus Celsius, e essa é a opção mais comum. Então é calculado pela fórmula:

B = (ln (R1) - ln (R2)) / (1 / T1 - 1 / T2)

Um diagrama de conexão típico de um termistor a um microcontrolador é mostrado abaixo.

Diagrama de conexão do termistor ao microcontrolador

Aqui R1 é um resistor constante, o termistor é conectado à fonte de energia e os dados são obtidos do ponto médio entre eles, o diagrama indica condicionalmente que o sinal é fornecido ao pino A0 - este entrada analógica Arduino.

Diagrama de conexão do termistor ao microcontrolador

Para calcular a resistência de um termistor, você pode usar a seguinte fórmula:

R do termistor = R1⋅ ((Vcc / Voutput) −1)

Para traduzir para um idioma compreensível para o arduino, lembre-se de que o arduino possui um ADC de 10 bits; portanto, o valor digital máximo do sinal de entrada (tensão 5V) será 1023. Em seguida, condicionalmente:

  • Dmax = 1023;

  • D é o valor real do sinal.

Então:

R do termistor = R1⋅ ((Dmax / D) −1)

Agora usamos isso para calcular a resistência e depois calcular a temperatura do termistor usando a equação beta em uma linguagem de programação para o Arduino. O esboço será assim:

Esboço

DS18B20

Ainda mais popular para medir temperatura com.Arduino encontrou um sensor digital DS18B20. Ele se comunica com o microcontrolador por meio da interface de 1 fio, você pode conectar vários sensores (até 127) a um fio e, para acessá-los, precisará descobrir o ID de cada um dos sensores.

Nota: você deve saber o ID, mesmo que use apenas 1 sensor.

DS18B20 Sensor Digital

O diagrama de conexão do sensor ds18b20 ao Arduino é semelhante a este:

Diagrama de conexão do sensor ds18b20 ao Arduino
Diagrama de conexão do sensor ds18b20 ao Arduino

Há também um modo de energia parasita - seu diagrama de conexão é assim (você precisa de dois fios em vez de três):

Diagrama de conexão do sensor Arduino

Nesse modo, a operação correta não é garantida ao medir temperaturas acima de 100 graus Celsius.

O sensor de temperatura digital DS18B20 consiste em um conjunto inteiro de nós, como qualquer outro SIMS. Você pode assistir ao seu dispositivo interno abaixo:

Sensor de temperatura digital DS18B20

Para trabalhar com ele, é necessário fazer o download da biblioteca Onewire para Arduino e, para o próprio sensor, é recomendável usar a biblioteca DallasTemperature.

Esboço

Este exemplo de código demonstra os conceitos básicos de trabalhar com 1 sensor de temperatura; o resultado em graus Celsius é emitido pela porta serial após cada leitura.


DHT11 e DHT22 - sensores de umidade e temperatura

DHT11 e DHT22 - sensores de umidade e temperatura

Esses sensores são populares e frequentemente usados ​​para medir a umidade e a temperatura ambiente. Na tabela abaixo, indicamos suas principais diferenças.

 
DHT11
DHT22
Determinação de umidade na faixa
20-80%
0-100%
Precisão de medição
5%
2-5%
Determinação da temperatura
0 ° C a + 50 ° C
-40 ° C a + 125 ° C
Precisão de medição
2,5%
mais ou menos 0,5 graus Celsius
Frequência de polling
1 vez por segundo
1 vez em 2 segundos
Diagrama de conexão do sensor de umidade ao arduino

O diagrama de conexão é bastante simples:

  • 1 conclusão - nutrição;

  • 2 conclusão - dados;

  • 3 conclusão - não utilizado;

  • 4 conclusão - o fio geral.

Se você tiver um sensor na forma de módulo, ele terá três saídas, mas você não precisará de um resistor - ele já está soldado na placa.

Diagrama de conexão do sensor de umidade em forma de módulo ao arduino

Para o trabalho, precisamos da biblioteca dht.h, que não está no conjunto padrão, portanto, precisa ser baixada e instalada na pasta de bibliotecas da pasta com o IDE do arduino. Ele suporta todos os sensores desta família:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321).

Exemplo de uso da biblioteca:

Exemplo de uso da biblioteca

Conclusão

Atualmente, criar sua própria estação para medir temperatura e umidade é muito simples, graças à plataforma Arduino. O custo de tais projetos é de 3-4.000 rublos. Para a duração da bateria e não para o computador, pode ser usado exibição de caracteres (como os descrevemos em um artigo recente), você poderá criar um dispositivo portátil para uso em casa e no carro. Escreva nos comentários o que mais você gostaria de aprender sobre artesanato simples no arduino!

Veja também sobre este tópico:Sensores populares para Arduino - conexão, diagramas, esboços

Veja também em bgv.electricianexp.com:

  • Sensores mais populares para Arduino
  • Conectando sensores analógicos ao Arduino, sensores de leitura
  • O uso da ponte Wheatstone para medir quantidades não elétricas
  • Sensores de temperatura. Parte Dois Termistores
  • Sensores de umidade - como eles são organizados e funcionam

  •