#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define pin_trig 14
#define pin_echo 13
#define pin_dht 7
#define pin_ldr 4
#define DHTTYPE DHT22
#define rele 6
DHT dht(pin_dht, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16,2);
void setup() {
pinMode(pin_trig, OUTPUT);
pinMode(pin_echo, INPUT);
pinMode(rele, OUTPUT);
Serial.begin(115200);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("IFAM");
lcd.setCursor(2, 1);
lcd.print("S. embarcados");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Aluno");
lcd.setCursor(0, 1);
lcd.print("Andrew");
delay(2000);
}
long UltrassonicSensor(){
//essa funcao armazena o tempo
digitalWrite(pin_trig, 0);
delayMicroseconds(2);
digitalWrite(pin_trig, 1);
delayMicroseconds(10);
digitalWrite(pin_trig, 0);
return pulseIn(pin_echo, 1);
}
void loop() {
int distancia_cm = 0.01723 * UltrassonicSensor();
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("Luminosidade:");
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("Temperatura:");
lcd.setCursor(0,1);
lcd.print(t);
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Humidade:");
lcd.setCursor(0,1);
lcd.print(h);
delay(2000);
if (luminosidade >= 70 && (t >= 30 || h <= 75)){
digitalWrite(rele, 1);
} else{
digitalWrite(rele, 0);
}
}