Вы находитесь на странице: 1из 9

SENSOR DE HUMEDAD/TEMPERATURA

PARA ARDUINO

ROY ROYER SOLORZANO DURAN

SENSOR DE HUMEDAD/TEMPERATURA
PARA ARDUINO

El DHT11 es un sensor de humedad/temperatura de bajo costo y de media


precisin, muy til para los principiantes en el mundo de Arduino.

Ventajas Y Desventajas
Entre sus ventajas podemos mencionar el bajo coste

y el despliegue de datos digitales. Esto supone una


gran ventaja frente a los sensores del tipo anlogo,
como el LM335 por ejemplo, en los cuales las
fluctuaciones en el voltaje alteran la lectura de datos.
Entre las desventajas pues, el DHT11 solo lee
enteros, no podemos leer temperaturas con
decimales por lo que tenemos que pensarlo muy bien
a la hora de utilizar este sensor para trabajos en los
que se requieran lecturas precisas de temperatura
y/o humedad.

CODIFICACION
#include "DHT.h" //cargamos la librera DHT

Esta parte no creo que vaya en el

codigo
#define DHTPIN 2 //Seleccionamos el pin en el que se //conectar el sensor
#define DHTTYPE DHT11 //Se selecciona el DHT11 (hay //otros DHT)
DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que ser usada por Arduino para
comunicarse con el sensor
void setup() {
Serial.begin(9600); //Se inicia la comunicacin serial
dht.begin(); //Se inicia el sensor
}
void loop() {
float h = dht.readHumidity(); //Se lee la humedad
float t = dht.readTemperature(); //Se lee la temperatura
//Se imprimen las variables
Serial.println("Humedad: ");
Serial.println(h);
Serial.println("Temperatura: ");
Serial.println(t);
delay(2000); //Se espera 2 segundos para seguir leyendo //datos

Funcionamiento del DHT11


El DHT11 no utiliza una interfaz serial estndar

como I2C, SPI o 1Wire. En cambio requiere su


propio protocolo para comunicarse a travs de un
solo hilo. Afortunadamente el protocolo es simple y
puede implementarse tranquilamente usando
los pines de I/O en un PIC o cualquier otro
microcontrolador (un AVR vestido de azul y blanco
viene a nuestra mente).

comunicacin

El microcontrolador debe iniciar la comunicacin con


el DHT11 manteniendo la lnea de datos en estado bajo durante al menos 18
ms. Luego el DHT11 enva una respuesta con un pulso a nivel bajo de 80 uS y
luego deja flotar la lnea de datos por otros 80 uS. En la figura de arriba, el
pulso de inicio enviado por el microcontrolador esta coloreado en rojo,
mientras que la respuesta desde el sensor esta coloreada en azul.

Los datos binarios se codifican segn la longitud del pulso alto. Todos los bits
comienzan con un pulso bajo de 50 uS. En nuestra librera aprovechamos el pulso
bajo en cada bit para sincronizar con la seal del DHT11. Luego viene un pulso
alto que vara segn el estado lgico o el valor del bit que el DHT11 desea
transmitir. Se utilizan pulsos de 26-28 microsegundos para un 0 y pulsos de 70
microsegundos para un 1. Los pulsos se repiten hasta un total de 40 bits.

MEDIR DISTANCIAS CON EL SENSOR


HC-SR04 Y ARDUINO

El HC-SR04 es un sensor que mediante ultrasonidos nos

permite medir distancias. Lo que hace el sensor es enviar un


sonido, este rebota en un objeto y es recogido de nuevo por el
sensor, sabiendo cuanto tiempo ha tardado en volver la seal,
podemos calcular la distancia que hay desde el sensor hasta el
objeto. Con el HC-SR04 podemos obtener medidas desde 1 2
cm hasta los 5 metros.

Programa
long distancia;
long tiempo;
void setup(){
Serial.begin(9600);
pinMode(9, OUTPUT); /*activacin del pin 9 como salida: para el pulso ultrasnico*/
pinMode(8, INPUT); /*activacin del pin 8 como entrada: tiempo del rebote del ultrasonido*/
}
void loop(){
digitalWrite(9,LOW); /* Por cuestin de estabilizacin del sensor*/
delayMicroseconds(5);
digitalWrite(9, HIGH); /* envo del pulso ultrasnico*/
delayMicroseconds(10);
tiempo=pulseIn(8, HIGH); /* Funcin para medir la longitud del pulso entrante. Mide el tiempo que transcurrido entre el envo
del pulso ultrasnico y cuando el sensor recibe el rebote, es decir: desde que el pin 12 empieza a recibir el rebote, HIGH, hasta que
deja de hacerlo, LOW, la longitud del pulso entrante*/
distancia= int(0.017*tiempo); /*frmula para calcular la distancia obteniendo un valor entero*/
/*Monitorizacin en centmetros por el monitor serial*/
Serial.println("Distancia ");
Serial.println(distancia);
Serial.println(" cm");
delay(1000);
}

Вам также может понравиться