//Homer Mejia
//0321200600555
#include <LiquidCrystal.h>
#include <DHT.h>
#include <Servo.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define DHTPIN 8
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
Servo miServo;
const int trigPin = 9;
const int echoPin = 10;
int led = 13;
int buzzer = 6;
void setup() {
lcd.begin(16, 2);
dht.begin();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led, OUTPUT);
pinMode(buzzer, OUTPUT);
miServo.attach(7);
miServo.write(0);
}
void loop() {
float temperatura = dht.readTemperature();
float humedad = dht.readHumidity();
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duracion = pulseIn(echoPin, HIGH);
float distancia = duracion * 0.034 / 2;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp:");
lcd.print(temperatura, 1);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Hum:");
lcd.print(humedad, 1);
lcd.print("%");
delay(1000);
if (temperatura > 35 || humedad < 35) {
digitalWrite(led, HIGH);
tone(buzzer, 1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ALERTA");
lcd.setCursor(0, 1);
lcd.print("AMBIENTAL");
delay(2000);
noTone(buzzer);
digitalWrite(led, LOW);
}
if (distancia < 10) {
miServo.write(90);
String mensaje = "Acceso Autorizado HOMER MEJIA ";
for (int i = 0; i < mensaje.length() - 15; i++) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(mensaje.substring(i, i + 16));
delay(300);
}
delay(3000);
miServo.write(0);
}
}