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
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