Para medir temperaturas existen un gran número de sensores en el mercado, la mayoría de ellos son sensores resistivos (termistores), los cuales varían su resistencia en función de la temperatura, estos sensores pueden ser de dos tipos, PTC (Positive Temperature Coefficient) que aumentan su resistencia al aumentar su temperatura ó NTC (Negative Temperature Coefficient) que disminuyen su resistencia al aumentar la temperatura. Otro tipo de sensores son los llamados "termopares", que son sensores formados por dos metales distintos que producen una diferencia de potencial al someterse dichos metales a temperaturas diferentes.

Descripción del sensor DHT

Dentro de la amplia gama de sensores que existen, uno de los más utilizados en conjunto con Arduino, son los de la serie DHT. Estos son sensores digitales que se usan para la medida de temperatura y humedad en el ambiente y están formados por un sensor de humedad resistivo y una resistencia NTC para la medida de la temperatura, todo ello conectado a un microcontrolador de 8bit y encapsulado en un mismo dispositivo.

Dentro de la serie de sensores DHT, podemos encontrar 2 tipos, el DHT-11 y el DHT-22, estos sensores funcionan de igual forma, la única diferencia es la resolución que podemos obtener y los rangos de temperatura máximo y mínimo de cada uno.

sensores

tabla

Como podéis ver en la tabla superior, la diferencia entre ambos sensores es notable, haciendo que el uso del sensor DHT-11 este relegado a aplicaciones educacionales o a usos en los que no se necesiten resoluciones elevadas. La diferencia de precio entre ambos también es importante, siendo el sensor DHT-22 3 o 4 veces más caro que el DHT-11.

Tened en cuenta las características de ambos sensores antes de adquirir uno u otro, dependiendo de donde queráis aplicarlo puede que necesitéis una resolución u otra.

 

Uso del Sensor

Tanto el sensor DHT-11 como el DHT22 funcionan de la misma manera, ambos cuentan con 4 pines de los que tan solo 3 son utilizados. El pin 1 se conectará a alimentación (3-5v) el pin 2 se utilizará para la transmisión de datos entre el sensor y Arduino y el pin 4 irá conectado a masa.

patillaje

Para el uso del sensor con Arduino es necesario instalar la librería correspondiente, esta librería se puede descargar aquí

 

Ejemplo para medir temperatura y humedad.

En este pequeño ejemplo vamos a leer tanto la temperatura como la humedad del sensor DHT-11 y la vamos a mostrar en el monitor serie.

Para este montaje vais a necesitar:

Una placa Arduino

El sensor de Temperatura y humedad DHT-11 ó DHT-22

Una placa de prototipado (BreadBoard)

Cables de conexión

 

El montaje que vamos a realizar es muy sencillo, tan solo hay que conectar el sensor en la placa de prototipado alimentándolo por el pin 1 (5 voltios) y conectando a masa el pin 4. Para la transmisión de datos usaré la E/S digital 2 de Arduino que conectaré al pin 2 del sensor.

Aquí tenéis el esquema del montaje:

sensor temperatura bb

Una vez tengáis el montaje completo, tan solo debéis de cargar el código de programa.

Código de programa

El programa que vamos a utilizar es muy básico, tan solo vamos a leer información del sensor y la vamos a mostrar por pantalla usando para ello el monitor del puerto serie.

Lo primero que vais a ver en el código de programa es un #include que hace referencia a la librería que usa Arduino para trabajar tanto con el sensor DHT-11 como con el DHT-22, antes de cargar el código, debeis de aseguraros de tener la librería incluida dentro de la carpeta "libraries" que encontraréis dentro de la carpeta de Arduino.

#include <dht.h>  //Añade la librería necesaria para usar el sensor
#define dht_dpin 2 //define el pin donde va conectado el sensor
dht DHT;

void setup()
{
  Serial.begin(9600);  //inicializa el puerto serie
}

void loop()
{
  DHT.read11(dht_dpin);
  Serial.print("Humedad = ");  //muestra en pantalla "Humedad = "
  Serial.print(DHT.humidity);  //muestra el valor de humedad
  Serial.print("% ");
  Serial.print("Temperatura = "); //muestra en pantalla "Temperatura = "
  Serial.print(DHT.temperature);  //muestra el valor de temperatura
  Serial.println("C ");
  delay(1000);
}

 

Como podéis ver, el código es muy sencillo, tan solo hay que habilitar el puerto serie para mostrar los datos y en el bloque de programa principal hacer una lectura de los datos del sensor con la instrucción DHT.read11(dht_dpin);

Para mostrar los datos simplemente abrir el puerto serie con vuestra placa conectada y empezareis a ver los datos del sensor.

monitor serie

Deja tus comentarios

Enviar un comentario como invitado

0
terminos y condiciones.

Gente en la conversación

  • Invitado - Alvaro B

    Soy principiante, felicitaciones por sus excelentes explicaciones, altamente agradecido

  • Gracias! ;) Si tienes alguna duda cuando estés haciendo algún proyecto con Arduino dímelo y te ayudo en lo que pueda

  • Invitado - Anónimo

    Buenas Raúl, gracias por la aportación. Yo soy principiante y tengo una duda, ¿una vez tengo los valores cómo puedo pasarlos a un formato adecuado para realizar un tratamiento de datos con ellos? Por ejemplo a una hoja de cálculo.

  • Buenos días, pues para pasar los datos a un ordenador básicamente hay dos formas, capturar los datos en una tarjeta SD, si no quieres tener el ordenador continuamente conectado a tu arduino o usar PLX_DAX que puede capturar los datos en un excel directamente.
    Para que veas lo que te digo que pongo un vídeo que aunque esté en portugués y no se entienda mucho seguro que te ayuda.
    https://www.youtube.com/watch?v=bVOwB2NQ9ok