#include <Servo.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
Servo puerta;
LiquidCrystal_I2C lcd(0x27,16,2);
DHT sensor(7, DHT22);
byte patio1=4, patio2=5;
byte trig=8, echo=9;
byte buz_pasivo=6;
float t=0, h=0, ic=0;
long distancia=0, duracion=0;
byte lectura=0, luminosidad, sw=0, porcentajeGas=0;
int lecturaluz=0, lecturaGas=0;//0-1023
byte gas=A0, sensorluz=A1;
void setup()
{
//puerta.attach(3, 650, 2550);//fisico
puerta.attach(3);//wokwi, mg90, s3003, mg995 y mg996
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(buz_pasivo, OUTPUT);
pinMode(patio1, OUTPUT);
pinMode(patio2, OUTPUT);
Serial.begin(9600);
puerta.write(90);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("SISTEMA DE");
lcd.setCursor(3, 1);
lcd.print("TEMPERATURA");
delay(3000);
lcd.clear();
}
void loop() {
SistemaDeTemperatura();
SistemaAutomatico();
SistemaIluminacion();
SistemaDeGas();
}
void SistemaDeTemperatura(){
t=sensor.readTemperature();
h=sensor.readHumidity();
ic=sensor.computeHeatIndex(t, h, false);
lcd.setCursor(0,0);
lcd.print("T: "+String(t)+"*C");
lcd.setCursor(0, 1);
lcd.print("H: "+String(h)+"% HR");
delay(1000);
lcd.clear();
}
void SistemaAutomatico(){
digitalWrite(trig, 0);
delayMicroseconds(2);
digitalWrite(trig, 1);
delayMicroseconds(10);
digitalWrite(trig, 0);
duracion=pulseIn(echo,1);//83333
distancia=duracion/58;
if (distancia<15){
puerta.write(180);
}
else{
puerta.write(90);
}
}
void SistemaIluminacion(){
lecturaluz = analogRead(sensorluz);//0-1023
luminosidad = map(lecturaluz, 0, 1023, 100, 0);//ldr en modulo
//luminosidad = map(lecturaluz, 0, 1023, 0, 100);//ldr suelto
if(luminosidad <40){
digitalWrite(patio1, 1);
digitalWrite(patio2, 1);
}
else{
digitalWrite(patio1, 0);
digitalWrite(patio2, 0);
}
}
void SistemaDeGas(){
lecturaGas = analogRead(gas);
porcentajeGas = map (lecturaGas, 0, 1023, 0, 100);
if(porcentajeGas <35){
noTone(buz_pasivo);
}
else if (porcentajeGas >=35 and porcentajeGas<70){
tone(buz_pasivo, 262);//Do4
tone(buz_pasivo, 330);//Fa4
delay(250);
}
else{
tone(buz_pasivo, 440);//Si4
}
}