Pages Menu
TwitterFacebook



BANNER2_ALT

Posted by on May 15, 2014 in Sensores digitales | 0 comments

Sensor de Temperatura y Humedad

Sensor de Temperatura y Humedad

SENSOR DTHN11 CON ARDUINO.

Especificación  sensor DTH11.

Este sensor se caracteriza por tener la señal digital calibrada por lo que asegura una alta calidad y una fiabilidad a lo largo del tiempo, ya que contiene un micro controlador de 8 bits integrado. Está constituido por dos sensores resistivos (NTC y humedad). Tiene una excelente calidad y una respuesta rápida en las medidas .Puede medir la humedad entre el rango 20% – aprox. 95% y la temperatura entre el rango 0ºC – 50ºC. (Figura 1.0)

sensor de temperatura y humedad

sensor de temperatura y humedad

 (Figura 1.0)

  • Pin 1 = VCC
  • Pin2 = Data
  • Pin 3 = GND

Sus principales características son:

  • Tensión de funcionamiento: 3v – 5.5v.
  • Rango de valores del 20% al 90% de Humedad Relativa.
  • Rango de valores de 0ºC a 50ºC de Temperatura.
  • Resolución de lectura: 1, es decir, nos proporciona tan sólo valores enteros tanto de humedad relativa como de temperatura.
  • Precisión de la humedad relativa: ±5%.
  • Precisión de la temperatura: ±2ºC.

 Conexión de sensor de temperatura y humedad con Arduino UNO.

Para realizar la conexión del sensor de temperatura y humedad con el Arduino UNO, en primer lugar insertaremos el conector hembra del cable al zócalo a tal efecto del sensor, como mostramos en la siguiente imagen (3.0)

sensor de temperatura y humedad

sensor de temperatura y humedad

 En la parte del sensor de temperatura, para conectarlo al Arduino, en nuestro caso hemos usado un cable que contiene tres hilos: uno verde que va al SIG (datos), otro amarillo que va al VCC (alimentación) y otro azul  que va al GND (masa). El conector NC no se usa por lo que no necesita cable. Es importante tener bien identificado cada hilo para conectarlo en su pin correspondiente del Arduino.

 En la parte del Arduino UNO conectaremos el cable blanco  (señal) al pin A0 analógico, como se muestra en la figura 3.2

El siguiente paso se conecta el cable negro (GND) al pin GND, posteriormente se conecta el cable gris (VCC) al pin de 5v

sensor de temperatura y humedad

sensor de temperatura y humedad

.

 (Figura 3.2)

El sensor de temperatura y humedad conectado al Arduino UNO quedará como se muestra en la figura 3.3

sensor de temperatura y humedad

sensor de temperatura y humedad

Programa en C++  para obtener temperatura y humedad a Arduino UNO.

Una vez conectado el sensor de temperatura y humedad a Arduino UNO, el siguiente paso será realizar un programa que obtenga los valores de temperatura y humedad y los muestre por el puerto serie, de esta forma podremos verificar que el hardware (sensor y Arduino) funcionan correctamente.

Instalaremos los drivers necesarios, instalaremos el IDE de desarrollo de Arduino y conectaremos Arduino al PC por el puerto USB.

A continuación escribiremos el siguiente programa:

#define DHT11_PIN 0      // ADC0
byte read_dht11_dat()
{
byte i = 0;
byte result=0;
for(i=0; i< 8; i++)
{
while(!(PINC & _BV(DHT11_PIN)));  // wait for 50us
delayMicroseconds(30);
if(PINC & _BV(DHT11_PIN))
result |=(1<<(7-i));
while((PINC & _BV(DHT11_PIN)));  // wait '1' finish
}
return result;
}
void setup()
{
DDRC |= _BV(DHT11_PIN);
PORTC |= _BV(DHT11_PIN);
Serial.begin(9600);
Serial.println("Ready");
}
void loop()
{
byte dht11_dat[5];
byte dht11_in;
byte i; // start condition
// 1. pull-down i/o pin from 18ms
PORTC &= ~_BV(DHT11_PIN);
delay(18);
PORTC |= _BV(DHT11_PIN);
delayMicroseconds(40);
DDRC &= ~_BV(DHT11_PIN);
delayMicroseconds(40);
dht11_in = PINC & _BV(DHT11_PIN);
if(dht11_in)
{
Serial.println("dht11 start condition 1 not met");
return;
}
delayMicroseconds(80);
dht11_in = PINC & _BV(DHT11_PIN);
if(!dht11_in)
{
Serial.println("dht11 start condition 2 not met");
return;
}
delayMicroseconds(80);
// now ready for data reception
for (i=0; i<5; i++)
dht11_dat[i] = read_dht11_dat();
DDRC |= _BV(DHT11_PIN);
PORTC |= _BV(DHT11_PIN);
byte dht11_check_sum = dht11_dat[0]+dht11_dat[1]+dht11_dat[2]+dht11_dat[3];
// check check_sum
if(dht11_dat[4]!= dht11_check_sum)
{
Serial.println("DHT11 checksum error");
}
Serial.print("Humedad = ");
Serial.print(dht11_dat[0], DEC);
Serial.print(".");
Serial.print(dht11_dat[1], DEC);
Serial.print("%  ");
Serial.print("Temperatura = ");
Serial.print(dht11_dat[2], DEC);
Serial.print(".");
Serial.print(dht11_dat[3], DEC);
Serial.println("C  ");
delay(2000);
}

Lo compilaremos para verificar que la sintaxis del código C++ es correcta, para ello pulsaremos el botón “Verify. (verificar)”. Si el código es correcto devolverá “Done compiling”, si hay algún error en el código lo indicará:

Una vez verificado el código pulsaremos en el botón “Upload” para enviar el programa a Arduino UNO. Si Arduino está correctamente conectado al PC por el puerto USB, el programa será subido y el IDE de Arduino mostrará “Done uploading”

Para verificar el programa que hemos enviado a Arduino, abriremos la ventana de Serial Monitor del IDE de Arduino, pulsando en el botón “Serial Monitor”(imagen lupa).

sensor de temperatura y humedad

sensor de temperatura y humedad

Si tenemos correctamente conectado el sensor de temperatura y humedad a Arduino y si el programa enviado es correcto, nos devolverá la humedad y temperatura actuales a la ventana de puerto serie.

sensor de temperatura y humedad

sensor de temperatura y humedad

Post a Reply

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *