CCCPaste

75af6ff2fe2a9

// 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();
}