#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <RTClib.h>
#define pin_triger 14
#define pin_echo 13
#define pin_dht 7
#define pin_ldr 4
#define rele 6
#define DHTTYPE DHT22
DHT dht(pin_dht, DHTTYPE);
RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(0x27,16,2);
long UltrasonicSensor(){
digitalWrite(pin_triger, 0);
delayMicroseconds(2);
digitalWrite(pin_triger, 1);
delayMicroseconds(10);
digitalWrite(pin_triger, 0);
return pulseIn(pin_echo, 1);
}
void setup(){
pinMode(rele, OUTPUT);
pinMode(pin_triger, OUTPUT);
pinMode(pin_echo, OUTPUT);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("S, Embarcados");
lcd.setCursor(2, 1);
lcd.print("Hugo");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Aluno:");
lcd.setCursor(0, 1);
lcd.print("Teresa");
}
void loop(){
int distancia = 0.01723 * UltrasonicSensor();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distancia");
lcd.setCursor(0, 1);
lcd.print("Distancia_cm:");
delay(2000);
int valor_ldr = analogRead(pin_ldr);
int luminosidade = map(valor_ldr, 0, 4095, 100, 0);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Lumnes:");
lcd.setCursor(0, 1);
lcd.print(luminosidade);
delay(2000);
float t = dht.readTemperature();
float h = dht.readHumidity();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp:");
lcd.setCursor(0,1);
lcd.print(t);
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("umidade:");
lcd.setCursor(0, 1);
lcd.print(h);
delay(2000);
if (luminosidade >=75 && (t >= 35 || h <= 80)){
digitalWrite(rele, HIGH);
} else{
digitalWrite(rele, LOW);
}
}