This is an old revision of the document!


RBL030000. Sensor de temperatura y humedad digitales DHT11

RBL030002 (LM35): sensor de temperatura analógico lineal

1. Introducción

DHT11 digital de temperatura y sensor de humedad es una señal digital que contiene un complejo temperatura de salida y el sensor de humedad calibrado. Se utiliza un módulos digitales y adquisición dedicada técnica de la temperatura y la tecnología de sensores de humedad para asegurar que los productos con una alta fiabilidad y una excelente estabilidad a largo plazo. Sensor comprende un elemento resistivo y un sentido de los dispositivos de medición de temperatura NTC húmedas, y con un alto rendimiento microcontrolador de 8 bits conectadas.

3P línea del sensor de Arduino a través de líneas digitales. interfaz en serie del cable sencillo, integración de sistemas se hace más simple y más rápido. Y con el código del controlador, se puede construir rápidamente los productos. -Ultra pequeño tamaño, bajo consumo de energía.

2. Características

  • Tamaño: 30 * 21mm
  • Peso: 4g
  • Los agujeros de montaje: 3 mm
  • Pitch: 15mm
  • Voltaje: 3.3V, 5V
  • Puerto: digitales de dos vías bus sola
  • Rango de temperatura: 0-50 ℃ ± 2 ℃
  • Rango de humedad: 20-90% HR ± 5% de humedad relativa
  • Plataforma: Arduino, MCU, ARM, pastel de frambuesa

3.Tutorial

3.1 Conexión con placa Arduino Uno.

-

3.1.1 Código Ejemplo en “C” para Arduino

#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("Current humdity = ");
  Serial.print(dht11_dat[0], DEC);
  Serial.print(".");
  Serial.print(dht11_dat[1], DEC);
  Serial.print("%  ");
  Serial.print("temperature = ");
  Serial.print(dht11_dat[2], DEC);
  Serial.print(".");
  Serial.print(dht11_dat[3], DEC);
  Serial.println("C  ");
  delay(2000);
}

3.2 Conexión con Shield Imagina TdR Steam

-

3.2.1 Código Ejemplo en “C” para Arduino TdR Steam

-

3.3 Conexión con placa Imagina Arduino

-

3.3.1 Código Ejemplo en SNAP4ARDUINO

-

3.4 Conexión con placa Imagina Scratch

-

3.4.1 Código Ejemplo en SCRATCH 2.0

-

3.4.2 Código Ejemplo para BLOCKLY

-

4. Recursos: Imágenes, Videos, Archivos, …

-

5. Donde Comprar

-

6. Proyectos Ejemplo

-

E