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.

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).

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.

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.

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:


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.

Nesse caso, B é indicado na forma:

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.

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.

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:

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.

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


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

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:

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.

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

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

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.

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:

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 electro-pt.tomathouse.com
: