meta data de esta página
1. Temperatura y Humedad con Sensor DHT 11
Materiales
- Sensor DHT11
- Resistencia de 10K
- Protoboard
- Cables de conexión para protoboard
- Cable usb para conexión con Arduino
- Arduino. En mi caso he usado un arduino nano
Conexiones
- Se conecta el arduino nano en el centro de la protoboard.
- Sensor DHT11
- Pin 1: +5V en Arduino
- Pin 2: Digital 2 en Arduino
- Pin 3: No se utiliza
- Pin 4: Gnd en Arduino
- Se utiliza una resistencia pull up de 10K entre el Pin 2 del sensor y +5V de Arduino.
Programación
Antes que nada debemos cargar la siguiente librería creada por Adafruit para el sensor de temperatura (https://github.com/adafruit/DHT-sensor-library).
Nos descargamos el fichero zip de la librería y ejecutamos el programa Arduino IDE. Vamos al menú Sketch → Importar Libreria → Add Library y seleccionamos el fichero con la extensión zip que nos hemos descargado.
Copiamos el siguiente programa creado en la página Internet de las Cosas
// Internet de las Cosas
// www.internetdelascosas.cl
// Sketch de prueba para sensores DHT humedad / temperatura
// Escrito por @joniuz basado en el sketch de Ladyada
// Libreria para Sensores DHT
#include "DHT.h"
#define DHTPIN 2 // Pin del Arduino al cual esta conectado el pin 2 del sensor
// Descomentar segun el tipo de sensor DHT usado
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Diagrama
// Pin 1 Sensor a +5V de Arduino
// Pin 2 Sensor a HDTPIN (en este sketch es el pin 2)
// Pin 4 Sensor a GROUND de Arduino
// Resistencia de 10K desde Pin 2 de sensor a Pin 1 de Sensor o +5V
// Inicializa el sensor
DHT dht(DHTPIN, DHTTYPE);
// Configura Arduino
void setup() {
Serial.begin(9600);
Serial.println("InternetdelasCosas.cl\n\nPrueba de sensor DHTxx!");
dht.begin();
}
void loop() {
// Espera dos segundos para realizar la primera medición.
delay(2000);
// Lee los datos entregados por el sensor, cada lectura demora 250 milisegundos
// El sensor muestrea la temperatura cada 2 segundos}
// Obtiene la Humedad
float h = dht.readHumidity();
// Obtiene la Temperatura en Celsius
float t = dht.readTemperature();
// Control de errores, valida que se obtuvieron valores para los datos medidos
if (isnan(h) || isnan(t)) {
Serial.println("Falla al leer el sensor DHT!");
return;
}
Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println(" *C ");
}
Una vez verificado y cargado en nuestro arduino podemos ver en la salida como van apareciendo cada dos segundos los valores de temperatura y humedad.
