Medindo a Temperatura e umidade com o DHT11

, ,

Primeiramente estaremos falando sobre a importância de saber a umidade do ar de um determinado loca. É importante saber a umidade, pois a umidade de um local interfere diretamente com a qualidade de vida dos habitantes daquela região. Baixas umidades podem gerar problemas respiratórios, sangramentos nasais, desidratação, entre outros… Porém altos níveis de umidade podem provocar tonturas e proliferação de fungos. Neste projeto estaremos utilizando o sensor de temperatura e umidade DHT11. Para realizar a medição da umidade do ar levando em consideração a classificação da OMS que classifica a umidade em 5 níveis.

Emergência (umidade abaixo de 12%)
Alerta (umidade entre 12 e 20%)
Atenção (umidade entre 20 e 30%)
Observação (umidade entre 30 e 40%)
Adequado (umidade acima de 40%)

Para a montagem do projeto iremos utilizar

01 DHT11
01 Arduino Uno
05 Leds
05 Resistores

Este itens e muitos outros componentes podem ser adquiridos na WJ componentes.

Diagrama de Montagem

Projeto DHT11

Código de Programação do DHT11

#include "DHT.h"
#define DHTTYPE DHT11 // Definição do modelo do dht
 
#define DHTPIN A0 // pino de dados do DHT11
DHT dht(DHTPIN, DHTTYPE);
// Declaração das saídas conforme a classificação do nível de umidade do ar

#define Emergencia 13
#define Alerta 12
#define Atencao 11
#define Observacao 10
#define Adequado 9

void setup() {
  Serial.begin(9600);
  dht.begin();
  pinMode(Emergencia, OUTPUT);
  pinMode(Alerta, OUTPUT);
  pinMode(Atencao, OUTPUT);
  pinMode(Observacao, OUTPUT);
  pinMode(Adequado, OUTPUT);
}

void loop() {
  // Leitura dos dados
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
  // verifica se foi retornado algum valor para umidade e temperatura
  
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  }
  
  else {
    Serial.print("Umidade: ");
    Serial.print(h);
    Serial.print(" % ");
    Serial.print("Temperatura: ");
    Serial.print(t);
    Serial.println(" *C");
    
    if ( h < 12) {
      digitalWrite(Emergencia, HIGH);
      digitalWrite(Alerta, LOW);
    }
    else if ( h >= 12 && h <= 20) {
      digitalWrite(Alerta, HIGH);
      digitalWrite(Emergencia, LOW);
      digitalWrite(Atencao, LOW);
    }
    else if ( h > 20 && h <= 30) {
      digitalWrite(Atencao, HIGH);
      digitalWrite(Alerta, LOW);
      digitalWrite(Observacao, LOW);
    }
    else if ( h > 30 && h <= 40) {
      digitalWrite(Observacao, HIGH);
      digitalWrite(Adequado, LOW);
      digitalWrite(Atencao, LOW);
    }
    else if ( h > 40) {
      digitalWrite(Adequado, HIGH);
      digitalWrite(Observacao, LOW);
    }
  }
  delay(1000);
}

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *