Está en la página 1de 5

EQUIPOS MICROINFORMTICOS Y TERMINALES DE COMUNICACIN.

ARDUINO

Prctica 8
Esta prctica 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 representarn con un servo.

Termistor NTC 103

Termistor 103 (thermistor)

divisor de tensin

Para leerlo habr que realizar un divisor de tensin. 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 analgico (de 0 a 1023) que permite ver VARIACIONES de temperatura, en ningn caso valores de C reales. Para ello tendramos que calibrar el sistema (con ayuda de un termmetro medianamente fiable establecer el valor que devuelve el termistor a los 0C, el que devuelve a los 10C por ejemplo, y extrapolar para los dems valores suponiendo comportamiento lineal del termistor, que al ser un componente barato slo ser as en cierto rango de temperatura).

Sensor de humedad DHT11

Sensor de humedad DTH 11 (humidity sensor)

Puede realizar medidas de temperatura y de humedad. Contiene un chip que transforma medidas analgicas a digitales. Requiere de una librera propia para funcionar.

Pgina 1

EQUIPOS MICROINFORMTICOS Y TERMINALES DE COMUNICACIN. ARDUINO

#include <dht11.h>

La librera la puedes descargar del github de Adafruit. Una vez descargada, descomprimela y ponla en la carpeta libraries de la carpeta Arduino. Reinicia el IDE.

En el cdigo debers 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 comprobacin del correcto funcionamiento del sensor.
int chk = DHT11.read();

Segn el valor de este nmero, 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; }

Pgina 2

EQUIPOS MICROINFORMTICOS Y TERMINALES DE COMUNICACIN. ARDUINO

Finalmente, mediante dos variables reales (temperatura y humedad) realizaremos las medidas:
temperatura= DHT11.temperature; humedad = DHT11.humidity;
Componentes necesarios para esta prctica

Arduino Uno

Bread board

Cables (jumpers)

Termistor 103 (thermistor)

Servo

Sensor de humedad DTH 11 (humidity sensor)

10K resistor

Los ejercicios a realizar en esta prctica son: 1. El ejercicio a consiste en construir un divisor de tensin para sacar la seal analgica del termistor 103. Su variacin 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 tambin con un servo.

ejercicio 8a

ejercicio 8b

Pgina 3

EQUIPOS MICROINFORMTICOS Y TERMINALES DE COMUNICACIN. ARDUINO


Cdigo ejercicio a

#include <Servo.h> long duration, distance,dec; Servo servo1; void setup() { Serial.begin (9600); servo1.attach(3); } void loop() { int sensorValue = analogRead(A0); Serial.println(sensorValue); dec= 2*(sensorValue - 150); servo1.write(dec); delay(100); }
Cdigo ejercicio b

#include <dht11.h> #include <Servo.h> Servo servo1; dht11 DHT11; float humedad,temperatura,aux; void setup(){ servo1.attach(3); DHT11.attach(2); Serial.begin(9600); } void loop(){ Serial.println("\n"); int chk = DHT11.read(); Serial.print("Read sensor: "); switch (chk) { case 0: Serial.println("OK"); break; case -1: Serial.println("Checksum error"); break; case -2: Serial.println("Time out error"); break;
Pgina 4

EQUIPOS MICROINFORMTICOS Y TERMINALES DE COMUNICACIN. ARDUINO

default: Serial.println("Unknown error"); break; } temperatura= DHT11.temperature; humedad = DHT11.humidity; Serial.print("Humedad (%): "); Serial.println(humedad, DEC); delay(200); // // Serial.print("Temperatura (C): "); Serial.println(temperatura, DEC); aux = 2*humedad-20; servo1.write(aux); delay(200); }

Comentario final y RETO El reto consiste en usar el DHT11 para obtener medidas de temperatura, en vez de humedad. Tambin representar con el servo. Segn lo vayis completando, mandad el cdigo, fotos o vdeos a la direccin de correo del mdulo. Enlaces relacionados
Pgina Arduino Playground (ENG): Thermistor Pgina 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

Pgina 5

También podría gustarte