Práctica 8

Esta práctica trata sobre dos sensores, el termistor 103 (que aumenta el valor de su resistencia con la temperatura) y el DHT11, que mide la humedad y temperatura del ambiente.  Las mediciones de ambos sensores se representarán con un servo.

Termistor NTC 103

thermistor

 

Para leerlo habrá que realizar un divisor de tensión. Para medir el valor de la resistencia se usa AnalogRead. Para variar este valor hay que calentarlo (o enfriarlo). Bastará con tocarlo con los dedos unos segundos.

Tener en cuenta que devolverá un valor analógico (de 0 a 1023) que permite ver VARIACIONES de temperatura, en ningún caso valores de ºC reales. Para ello tendríamos que calibrar el sistema (con ayuda de un termómetro medianamente fiable establecer el valor que devuelve el termistor a los 0ºC, el que devuelve a los 10ºC por ejemplo, y extrapolar para los demás valores suponiendo comportamiento lineal del termistor, que al ser un componente barato sólo será así en cierto rango de temperatura).

Sensor de humedad DHT11

Sensor de humedad DTH 11 (humidity sensor)

Sensor de humedad DTH 11 (humidity sensor)

Puede realizar medidas de temperatura y de humedad. Contiene un chip que transforma medidas analógicas a digitales. Requiere de una librería propia para funcionar.

  #include <dht11.h>

La librería la puedes descargar aquí. La hemos sacado del github de Adafruit. Una vez descargada, descomprimela y ponla en la carpeta “libraries” de la carpeta “Arduino”. Reinicia el IDE.

librariedht

En el código deberás poner un nombre a tu sensor DHT11, en este caso se ha usado el mismo nombre:

  dht11 DHT11;

En el void setup habrá que definir a qué pin esta conectado el sensor:

  DHT11.attach(2);

Mediante un variable entera “chk” se hará una comprobación del correcto funcionamiento del sensor.

  int chk = DHT11.read();

Según el valor de este número, tendremos funcionamiento normal, un “0″, o bien otros tipos de errores “-1″, “-2″ o desconocido. Mediante un switch case verificamos:

switch (chk) {
  case 0: Serial.println("OK"); break;
  case -1: Serial.println("Checksum error"); break;
  case -2: Serial.println("Time out error"); break;
  default: Serial.println("Unknown error"); break;
}

Finalmente, mediante dos variables reales (“temperatura” y “humedad”) realizaremos las medidas:

temperatura = DHT11.temperature;
humedad = DHT11.humidity;

Componentes necesarios para esta práctica

Los ejercicios a realizar en esta práctica son:

  1. El ejercicio a consiste en construir un divisor de tensión para sacar la señal analógica del termistor 103. Su variación la sacaremos visualmente mediante un servo
  2. El ejercicio b consiste en sacar el valor de la humedad ambiente mediante el DHT11, representando su valor también con un servo.

Código ejercicio a

Código ejercicio b

Archivos .ino

Descarga el ejercicio a haciendo click aquí
Descarga el ejercicio b haciendo click aquí

Comentario final y RETO SEMANAL

El reto de este semana es usar el DHT11 para obtener medidas de temperatura, en vez de humedad. También representar con el servo.

Según lo vayáis completando, mandad el código (y si queréis, fotos o vídeos) a la siguiente dirección: practicas@thinkbit.org

Enlaces relacionados

Página Arduino Playground (ENG): Thermistor
Página Arduino Playground(ENG): DHT11
Arduteka: Sensor de temperatura NTC
Adafruit: DHT sensors
Panamahitek: DHT11 sensor de humedad y temperatura
Taller de arduino: Sensor DHT11 con arduino
Opiron: Todo sobre los sensores DHT11 y DHT22
Three House Projects: Internet Based Temperature Sensing System
Instructables(ENG): The super simple Arduino weather web server
Instructables (ENG): DHT11 LCD Weather Station DIY
Instructables(ENG): Arduino portable weather monitor
Share Button

3 reflexiones sobre “Práctica 8

  1. Pingback: Práctica 8. Sensores de temperatura y hu...

  2. jael

    ayuda no puedo declarar el sensor que podria hacer?
    solo aparece #include sin subrayarce en amarillo entoncesno existe en mi libreria

Comentarios cerrados.