Categorías: Circuitos microcontroladores
Cantidad de vistas: 9996
Comentarios sobre el artículo: 0

Medición de temperatura y humedad en Arduino: una selección de formas

 

Para crear una estación meteorológica o un termómetro en el hogar, debe aprender a emparejar la placa Arduino y un dispositivo para medir la temperatura y la humedad. La medición de temperatura puede tratarse con un termistor o un sensor digital DS18B20, pero para medir la humedad use dispositivos más complejos: sensores DHT11 o DHT22. En este artículo, le mostraremos cómo medir la temperatura y la humedad utilizando el Arduino y estos sensores.

Medición de temperatura y humedad en Arduino: una selección de formas

Medición de termistor

La forma más fácil de determinar la temperatura es usar termistor. Este es un tipo de resistencia cuya resistencia depende de la temperatura ambiente. Hay termistores con un coeficiente de resistencia de temperatura positivo y negativo: PTC (también llamados posistores) y termistores NTC, respectivamente.

En el gráfico a continuación puede ver la dependencia de la resistencia a la temperatura. La línea discontinua muestra la dependencia de un termistor TCS negativo (NTC), y la línea continua para un termistor TCS positivo (PTC).

Dependencia de la temperatura de resistencia

¿Qué vemos aquí? Lo primero que llama la atención es que el cronograma para el termistor PTC está roto y será difícil o imposible medir una serie de valores de temperatura, pero el cronograma para el termistor NTC es más o menos uniforme, aunque es claramente no lineal. ¿Qué significa esto? Usar un termistor NTC es más fácil de medir la temperatura, porque es más fácil descubrir la función por la cual cambian sus valores.

Para convertir la temperatura en resistencia, puede tomar los valores manualmente, pero esto es difícil de hacer en casa y necesita un termómetro para determinar los valores reales de la temperatura del medio. En las hojas de datos de algunos componentes, se proporciona una tabla de este tipo, por ejemplo, para una serie de termistores NTC de Vishay.

Termistores Datashit Vishay TC

Luego puede organizar la traducción a través de las ramas utilizando la función if ... else o switchcase. Sin embargo, si no hay tales tablas en las hojas de datos, debe calcular la función mediante la cual la resistencia cambia con el aumento de la temperatura.

Para describir este cambio, existe la ecuación de Steinhart-Hart.

Ecuación de Steinhart-hart

donde A, B y C son las constantes del termistor determinadas midiendo tres temperaturas con una diferencia de al menos 10 grados centígrados. Al mismo tiempo, diferentes fuentes indican que para un termistor NTC de 10 kΩ típico son iguales a:

Constantes de termistor

B - coeficiente beta, se calcula en base a la medición de resistencia para dos temperaturas diferentes. Se indica en la hoja de datos (como se ilustra a continuación) o se calcula de forma independiente.

B - coeficiente beta de la hoja de datos

En este caso, B se indica en la forma:

relación beta

Esto significa que el coeficiente se calculó en función de los datos obtenidos al medir la resistencia a temperaturas de 25 y 100 grados centígrados, y esta es la opción más común. Luego se calcula mediante la fórmula:

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

A continuación se muestra un diagrama de conexión típico de un termistor a un microcontrolador.

Diagrama de conexión del termistor al microcontrolador

Aquí R1 es una resistencia constante, el termistor está conectado a la fuente de alimentación y los datos se toman del punto medio entre ellos, el diagrama indica condicionalmente que la señal se alimenta al terminal A0 - esto entrada analógica Arduino.

Diagrama de conexión del termistor al microcontrolador

Para calcular la resistencia de un termistor, puede usar la siguiente fórmula:

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

Para traducir a un lenguaje que sea comprensible para arduino, debe recordar que el arduino tiene un ADC de 10 bits, por lo que el valor digital máximo de la señal de entrada (voltaje 5V) será 1023. Luego, condicionalmente:

  • Dmáx = 1023;

  • D es el valor real de la señal.

Entonces:

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

Ahora usamos esto para calcular la resistencia y luego calcular la temperatura del termistor usando la ecuación beta en un lenguaje de programación para Arduino. El boceto será así:

Bosquejo

DS18B20

Aún más popular para medir la temperatura con.Arduino encontró un sensor digital DS18B20. Se comunica con el microcontrolador a través de la interfaz de 1 cable, puede conectar varios sensores (hasta 127) a un cable, y para acceder a ellos necesitará encontrar la identificación de cada uno de los sensores.

Nota: debe conocer la ID incluso si usa solo 1 sensor.

Sensor digital DS18B20

El diagrama de conexión del sensor ds18b20 a Arduino se ve así:

Diagrama de conexión del sensor ds18b20 a Arduino
Diagrama de conexión del sensor ds18b20 a Arduino

También hay un modo de potencia parasitaria: su diagrama de conexión se ve así (necesita dos cables en lugar de tres):

Diagrama de conexión del sensor Arduino

En este modo, no se garantiza el funcionamiento correcto cuando se miden temperaturas superiores a 100 grados centígrados.

El sensor de temperatura digital DS18B20 consta de un conjunto completo de nodos, como cualquier otro SIMS. Puedes ver su dispositivo interno a continuación:

Sensor de temperatura digital DS18B20

Para trabajar con él, debe descargar la biblioteca Onewire para Arduino, y para el sensor en sí se recomienda usar la biblioteca DallasTemperature.

Bosquejo

Este ejemplo de código demuestra los conceptos básicos de trabajar con 1 sensor de temperatura, el resultado en grados Celsius se emite a través del puerto serie después de cada lectura.


DHT11 y DHT22 - sensores de humedad y temperatura

DHT11 y DHT22 - sensores de humedad y temperatura

Estos sensores son populares y a menudo se usan para medir la humedad y la temperatura ambiente. En la tabla a continuación indicamos sus principales diferencias.

 
DHT11
DHT22
Determinación de humedad en el rango
20-80%
0-100%
Precisión de medición
5%
2-5%
Determinación de la temperatura
0 ° C a + 50 ° C
-40 ° C a + 125 ° C
Precisión de medición
2,5%
más o menos 0.5 grados centígrados
Frecuencia de sondeo
1 vez por segundo
1 vez en 2 segundos
Diagrama de conexión del sensor de humedad a arduino

El diagrama de conexión es bastante simple:

  • 1 conclusión - nutrición;

  • 2 conclusión - datos;

  • 3 conclusión - no utilizado;

  • 4 conclusión - el cable general.

Si su sensor está hecho en forma de módulo, tendrá tres salidas, pero no se necesita resistencia, ya está soldado a la placa.

Diagrama de conexión del sensor de humedad en forma de módulo a arduino

Para funcionar, necesitamos la biblioteca dht.h, no está en el conjunto estándar, por lo que debe descargarse e instalarse en la carpeta de bibliotecas en la carpeta con el IDE de arduino. Es compatible con todos los sensores de esta familia:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321).

Ejemplo de uso de la biblioteca:

Ejemplo de uso de la biblioteca

Conclusión

Hoy en día, crear su propia estación para medir temperatura y humedad es muy simple gracias a la plataforma Arduino. El costo de tales proyectos es de 3-4 cientos de rublos. Para la vida útil de la batería, y no para salida a una computadora, se puede usar visualización de personajes (los describimos en un artículo reciente), luego puede construir un dispositivo portátil para usar tanto en casa como en el automóvil. ¡Escriba en los comentarios qué más le gustaría aprender sobre artesanías caseras simples en arduino!

Ver también sobre este tema:Sensores populares para Arduino - conexión, diagramas, bocetos

Ver también en bgv.electricianexp.com:

  • Sensores más populares para Arduino
  • Conexión de sensores analógicos a Arduino, lectura de sensores
  • El uso del puente Wheatstone para medir cantidades no eléctricas.
  • Sensores de temperatura. Segunda parte Termistores
  • Sensores de humedad: cómo están dispuestos y funcionan

  •