Vídeo
A continuación encontrara el vídeo en donde se explica el funcionamiento del circuito.
Acerca del proyecto
Uno de los sensores mas usados para aprender Arduino o para realizar proyectos sencillos son los de temperatura, estos sensores permiten obtener la condición climática del ambiente como la temperatura y humedad, si trae esta función incorporada. El sensor DHT11 es uno de los mas económicos y robustos con al cual podemos obtener estas condiciones mencionadas y en este artículo lo vamos a conectar al Arduino, veremos que pines se necesitan y trabajaremos con la librería de adafriut que ya incorpora todas las funcionalidades que necesitamos.
Conocimiento previo
Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los enlaces a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.
Proyecto | Descripción |
---|---|
Líbreria DHT | En este post encontrara a detalle las funciones de la librería, donde esta la descripción parámetros que necesita un ejemplo de como usarla. |
dht11 datasheet | Si necesita mas información del sensor con el post del datasheet podrá obtener detalle adicional como las especificaciones técnicas, pines y conexión del sensor. |
Materiales
Para este proyecto vamos a usar los siguientes componentes, que son los básicos con las que se enseñan la programación de arduino.
Material | Cantidad | Descripción |
---|---|---|
Arduino | 1 | Controlador del proyecto |
Sensor DHT11 | 1 | Sensor de temperatura y humedad |
Resistencia de 4.7kΩ | 1 | Se necesita para la comunicación del sensor y del arduino |
Conexión del DHT11
Para este proyecto estamos usando el modulo del dht11, el cual ya trae incorporada la resistencia, pero si no tiene el modulo y esta trabajando con el sensor debe realizar la conexión como se muestra en la siguiente imagen.
Arduino | Modulo |
---|---|
5v | Pin 1 (+) |
Pin 2 | Pin 2 (out) |
GND | Pin 3 (-) |
Estas son unas imágenes de los planos y una foto de como queda la conexión.
Código
A continuación tenemos el código con la funcionalidad.
//Paso 1
#include "DHT.h"
//Paso 2
#define DHTPIN 2
#define DHTTYPE DHT11
//Paso 3
DHT dht(DHTPIN, DHTTYPE);
void setup() {
//Paso 4
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
void loop() {
delay(2000);
//Paso 5
float h = dht.readHumidity();
//Paso 6
float t = dht.readTemperature();
//Paso 7
float f = dht.readTemperature(true);
//Paso 8
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
//Paso 9
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
//Paso 10
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");
}
Funcionamiento
A continuación explicamos los pasos del código anterior.
- Cargamos la librería del
DHT11
, esta tiene que estar guardada en el equipo. - Con la variables
DHTPIN
definimos el pin de datos que va a hacer el dos y la variableDHTTYPE
definimos el tipo de sensor a usar que es el DHT11. - Obtenemos la instancia del objeto de la clase DHT, donde le pasamos como parámetros la declaración del pin y del tipo de sensor a usar.
- Inicializamos el puerto serial y el modulo DHT con
begin
. - Con
readHumidity()
obtenemos la humedad y la almacenamos en una variable de tipo flotante. - Con
readTemperature()
obtenemos la temperatura en grados celsius y la almacenamos en una variable de tipo flotante. - Con
readTemperature(true)
obtenemos la temperatura en grados fahrenheit y la almacenamos en una variable de tipo flotante. - Validamos si obtubimos resultados en las lecturas anteriores, si da error o no tenemos datos mostramos un error por consola.
- Con
computeHeatIndex()
obtenemos la sensación térmica del ambiente, esta se calcula con la temperatura y humedad, nos puede devolver los valores en grados celsius o fahrenheit. - Por último imprimimos por la terminal serial todos los valores obtenidos para poder visualizar la temperatura y humedad.
Por ultimo en la siguiente imagen se muestra el resultado que se muestra por la consola.