You are on page 1of 3

#include <LiquidCrystal.

h>
#include "DHT.h"

#define DHTPIN 52 // Establecemos la entrada digital en la que tenemos


// conectada la salida data del sensor.
#define DHTTYPE DHT11 // Definimos el sensor que vamos a usar DHT 11

DHT dht(DHTPIN, DHTTYPE); // Configuramos la entrada y el sensor

float tmax=0, tmin=50, hmax=0, hmin=95; // Creamos las variables para los

float valorT=0;
int ledcalefaccion= 22;
int lednormal = 24;
int ledventilacion = 26;
int ventilador =44;
int alarmaincendio=40;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


void setup() {
Serial.begin(9600); // Configuramos la conexion serie
Serial.println("Comenzando la transmision"); //Mandamos el primer mensaje
dht.begin();
pinMode(ledcalefaccion, OUTPUT);
pinMode(lednormal, OUTPUT);
pinMode(ledventilacion, OUTPUT);
pinMode(ventilador, OUTPUT);
pinMode(alarmaincendio, OUTPUT);
pinMode(luz1,OUTPUT);
pinMode(luz2,OUTPUT);
pinMode(luz3,OUTPUT);
pinMode(luz4,OUTPUT);
pinMode(luz5,OUTPUT);

lcd.begin(16, 2);

void loop() {
// La lectura de la temperatura y la humedad dura mas o menos de 250ms
float h = dht.readHumidity();
float t = dht.readTemperature();

// Comprobamos que los datos obtenidos son validos,


// si no son un numero, existe un fallo.
if (isnan(t) || isnan(h)) {
Serial.println("Fallo en la lectura del sensor");
} else {
// Imprimimos los datos actuales.
lcd.setCursor(0, 0);
Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println(" *C");
lcd.print("Humedad: ");
lcd.print(h);
lcd.print("%");
lcd.setCursor(0, 2);
lcd.print("Temp.: ");
lcd.print(t);
lcd.print("C");
}

delay(1000);
// Comprobamos si el valor es un maximo o un minimo y lo guardamos.
if(t>=tmax){tmax=t;}
if(t<=tmin){tmin=t;}
if(h>=hmax){hmax=h;}
if(h<=hmin){hmin=h;}
// Imprimimos los maximos y minimos
Serial.print("Temp Max: ");
Serial.print(tmax);
Serial.print(" *C\t");
Serial.print("Temp Min: ");
Serial.print(tmin);
Serial.println(" *C");
Serial.print("Hum Max: ");
Serial.print(hmax);
Serial.print(" %\t");
Serial.print("Hum Min: ");
Serial.print(hmin);
Serial.println(" %");
Serial.println();
// Tiempo de espera de 2s hasta la siguiente lectura y transmision
valorT=t;

if(valorT >=25.00)
{
digitalWrite(ledcalefaccion, LOW);
digitalWrite(lednormal, LOW);
digitalWrite(ledventilacion, HIGH);
digitalWrite(ventilador,HIGH);
}
if (valorT<25.00 & valorT>=20.00)
{
digitalWrite(lednormal, HIGH);
digitalWrite(ledcalefaccion, LOW);
digitalWrite(ledventilacion, LOW);
}
if (valorT <20.00)
{
digitalWrite(ledventilacion, LOW);
digitalWrite(lednormal, LOW);
digitalWrite(ledcalefaccion, HIGH);
}
delay(2000);

// SENSOR DE FLAMA

int sensorValue = analogRead(A0);

if(sensorValue >=40){
Serial.print("SENSOR DE FLAMA DESACTIVADA ");
Serial.print(sensorValue);
Serial.print("\n");
digitalWrite(alarmaincendio, LOW);
lcd.setCursor(0, 0);
lcd.clear();
lcd.print("Nivel Bajo");
lcd.print(sensorValue);

}
else{
Serial.print("SENSOR DE FLAMA ACTIVADA ");
Serial.print(sensorValue);
Serial.print("\n");
digitalWrite(alarmaincendio, HIGH);
}
delay(2000);
}

You might also like