// Arduino - Sensor DHT - Umidade e Temperatura
// https://blog.eletrogate.com/
// Adafruit Unified Sensor Library: https://github.com/adafruit/Adafruit_Sensor
#include // Biblioteca DHT Sensor Adafruit
#include
#include
#include
#include
#define col 16
#define lin 2
#define ende MUDE ISSO AQUI
LiquidCrystal_12C lcd(ende,col,lin);
// selecione um sensor, retirando o comentário - duas barras
#define DHTTYPE DHT11 // Sensor DHT11
//#define DHTTYPE DHT22 // Sensor DHT22 ou AM2302
#define DHTPIN 2 // Pino do Arduino conectado no Sensor(Data)
DHT_Unified dht(DHTPIN, DHTTYPE); // configurando o Sensor DHT - pino e tipo
uint32_t delayMS; // variável para atraso no tempo
void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(7,OUTPUT);
Serial.begin(9600); // monitor serial 9600 bps
dht.begin(); // inicializa a função
Serial.println("Usando o Sensor DHT");
sensor_t sensor;
dht.temperature().getSensor(&sensor); // imprime os detalhes do Sensor de Temperatura
Serial.println("------------------------------------");
Serial.println("Temperatura");
Serial.print ("Sensor: "); Serial.println(sensor.name);
Serial.print ("Valor max: "); Serial.print(sensor.max_value); Serial.println(" *C");
Serial.print ("Valor min: "); Serial.print(sensor.min_value); Serial.println(" *C");
Serial.print ("Resolucao: "); Serial.print(sensor.resolution); Serial.println(" *C");
Serial.println("------------------------------------");
dht.humidity().getSensor(&sensor); // imprime os detalhes do Sensor de Umidade
Serial.println("------------------------------------");
Serial.println("Umidade");
Serial.print ("Sensor: "); Serial.println(sensor.name);
Serial.print ("Valor max: "); Serial.print(sensor.max_value); Serial.println("%");
Serial.print ("Valor min: "); Serial.print(sensor.min_value); Serial.println("%");
Serial.print ("Resolucao: "); Serial.print(sensor.resolution); Serial.println("%");
Serial.println("------------------------------------");
delayMS = sensor.min_delay / 1000; // define o atraso entre as leituras
lcd.ini();
lcd.backlight();
lcd.clear()
}
void loop()
{
delay(delayMS); // atraso entre as medições
sensors_event_t event; // inicializa o evento da Temperatura
dht.temperature().getEvent(&event); // faz a leitura da Temperatura
if (isnan(event.temperature)) // se algum erro na leitura
{
Serial.println("Erro na leitura da Temperatura!");
}
else // senão
{
Serial.print("Temperatura: "); // imprime a Temperatura
Serial.print(event.temperature);
Serial.println(" *C");
lcd.setCursor(1,0);
lcd.print("Temperatura:");
lcd.print(event.temperature);
lcd.print(" *C");
}
dht.humidity().getEvent(&event); // faz a leitura de umidade
if (isnan(event.relative_humidity)) // se algum erro na leitura
{
Serial.println("Erro na leitura da Umidade!");
}
else // senão
{
Serial.print("Umidade: "); // imprime a Umidade
Serial.print(event.relative_humidity);
Serial.println("%");
lcd.print(" Humidade:");
lcd.print(event.relative_humidity);
lcd.print("%");
}
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
if(event.relative_humidity>=40 && event.relative_humidity<=60)
{
digitalWrite(3,HIGH);
digitalWrite(7,LOW);
}
if((event.relative_humidity>=20 && event.relative_humidity<40) || (event.relative_humidity>60 && event.relative_humidity<80))
{
digitalWrite(4,HIGH);
digitalWrite(7,HIGH);
}
if(event.relative_humidity <20 || event.relative_humidity>80)
{
digitalWrite(5,HIGH);
digitalWrite(7,HIGH);
}
delay(3000);
lcd.clear();
}