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.

no necesita alimentación externa ya que se puede alimentar del propio cable USB de conexión al ordenador

Referencias