Sensor de temperatura e humidade DHT11

Descrición:

Os sensores da familia DHT proporcionan de forma dixital a temperatura e a humidade relativa no ambiente, con diferente precisión segundo o modelo.

Aínda que o conectemos a un pin dixital, trátase dun dispositivo analóxico. Cos sensores obtense un sinal analóxico, a través dun chip de 8 bits que hai dentro do dispositivo faise a conversión entre analóxico e dixital  e ese sinal envíase ao controlador a través dun pin dixital.

Montaxe:

Nós imos utilizar o modelo DHT 11. Fíxate na serigrafía, só tes tres pins, VCC, GND e o pin de datos que debes conectar a un pin dixital. Neste exemplo usaremos o pin D2 da placa arduino.

Programa:

Antes de nada debes descargar unha librería: DHT sensor library (pódela buscar no xestor de librarías de arduino ou descaragar este zip)

En ocasións a librería DHT.h demanda outra librería: Adafruit_Sensor.h. Pódese incluír tamén para evitar problemas derivados de versións.

// Librarías:
#include <DHT.h>
#include <DHT_U.h>

// Declaración de variables:

DHT dht(2, DHT11);  // Iniciamos o sensor (pin2,tipo DHT11)     

// Configuración:

void setup() {
  
  Serial.begin(9600); // Iniciamos comunicación serie
  
  dht.begin();        // Iniciamos o sensor DHT
  delay(2000);       // tempo necesario para arrancar o sensor
  Serial.println("DHT11 test!");  // Imprimimos na consola
  
}

// Programa:

void loop() {
  
  float h = dht.readHumidity();  // Lectura da humidade relativa
  float t = dht.readTemperature();  // Lemos a temperatura en graos centígrados

  // A seguinte instrución é para chequear o sensor DHT e avisar se hai fallos nas medicións
  
  if (isnan(h) || isnan(t) ) {
    Serial.println("Fallo na medición do sensor DHT");
    return;
  }

  // Agora imprimimos os datos na consola

  Serial.print("humidade relativa= ");
  Serial.print(h); 
  Serial.print(" %");
  Serial.print("   -   "); 
  Serial.print("Temperatura= ");
  Serial.print(t);  
  Serial.println(" ºC");
   
  delay(5000); // tempo de agarda entre medidas
  
}

Propostas:

Unha aplicación deste sensor sería un invernadoiro automatizado. Poderiamos programar o seguinte utilizando un relé para enviar os sinais aos actuantes.

  1. Se a temperatura supera os 25ºC acéndese un ventilador e/ou ábrese unha ventá no invernadoiro.
  2. Se a temperatura baixa de 20ºC acéndese unha placa calefactora.
  3. Se a humidade supera o 70% abrir unha ventá do invernadoiro.
  4. Se a humidade baixa do 20% activar un pulverizador de auga.