#include <DHT.h> // Inclui a biblioteca DHT
#include <LiquidCrystal.h> // Inclui a biblioteca LCD
#define DHTPIN 7 // Define o pino de dados do sensor
#define DHTTYPE DHT22 // Define o tipo de sensor (DHT22 para o DHT22, DHT11 para o DHT11)
//Definindo as entradas do Buzzer e Led
int buzzer = 6;
int ledR = 13;
int ledB = 9;
DHT dht(DHTPIN, DHTTYPE); // Inicializa o sensor DHT
LiquidCrystal lcd(12,11,5,4,3,2); //Definindo as portas do LCD
void setup() {
Serial.begin(9600); // Inicializa a comunicação serial com o monitor serial
dht.begin(); // Inicializa o sensor DHT
digitalWrite(ledR, HIGH);
//Inicializando o LCD
lcd.begin(16,2);
lcd.setCursor(0,0);
//Definindo os pinMode
pinMode(ledR, OUTPUT);
pinMode(ledB, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
delay(2000); // Espera 2 segundos entre as leituras
// Lê a umidade relativa
float humidade = dht.readHumidity();
// Lê a temperatura em Celsius
float temperatura = dht.readTemperature();
// Verifica se a leitura foi bem sucedida
//A função isnan() é uma função da biblioteca do Arduino que verifica se um valor é "não um número" (NaN).
if (isnan(humidade) || isnan(temperatura)) {
Serial.println("Falha ao ler o sensor DHT!");
return;
}
// Imprime os valores lidos no monitor serial
Serial.print("Umidade: ");
Serial.print(humidade);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println(" °C");
// Imprime os valores lidos no LCD
// Verificando se a temperatura e humidade está ok
if (temperatura > 16 || temperatura < 10){
lcd.setCursor(0,0);
lcd.println("Temperatura RUIM");
lcd.setCursor(0,1);
lcd.println("Temp: " + String(temperatura) + " C");
digitalWrite(ledR, HIGH);
tone(buzzer, 1500, 300);
Serial.println("Temperatura RUIM!");
}else{
lcd.setCursor(0,0);
lcd.println("Temperatura OK");
lcd.setCursor(0,1);
lcd.println("Temp: " + String(temperatura) + " C");
digitalWrite(ledR, LOW);
}
delay(2000);
lcd.clear();
if (humidade > 81 || humidade < 59){
lcd.setCursor(0,0);
lcd.println("Humidade RUIM");
lcd.setCursor(0,1);
lcd.println("Humi: " + String(humidade) + " %");
digitalWrite(ledB, HIGH);
tone(buzzer, 1500, 300);
Serial.println("Humidade RUIM!");
}else{
digitalWrite(ledB, LOW);
lcd.setCursor(0,0);
lcd.println("Humidade OK");
lcd.setCursor(0,1);
lcd.println("Humi: " + String(humidade) + " %");
}
}