/*Actividad 1:Manejo de sensores y actuadores en IoT*/
//VARIABLES:
int LED_Humedad = 14; //PIN 14 LED ROSADO
int LED_Temperatura = 15; //PIN 15 LED CELESTE
#define Boton_1 27 //PIN 27 Boton 1
#define Boton_2 26 //PIN 26 Boton 2
const int dht22_sensor = 21; //PIN 21 sensor DHT22
float Temp; //Variable lectura de Temperatura sensor DHT22
float Hum; //Variable lectura de Huemedad sensor DHT22
int Limite_Temp = 45; //umbral maximo de grados de temperatura
int Limite_Inf_Hum = 25; //umbral inferior % de Humedad
int Limite_Sup_Hum = 60; //umbral superiro % de Humedad
int estado_boton = HIGH; // boton 1 estado High
int estado_boton2 = HIGH; // boton 2 estado High
//INICIAR SENSOR DHT
#include "DHTesp.h" //Incluir libreria para sensor DHT
DHTesp dhtSensor;
void setup() {
Serial.begin(115200);
Serial.println("Actividad 1: Manejo de sensores y actuadores en IoT");
dhtSensor.setup(dht22_sensor, DHTesp::DHT22); //Inicia sensor DHT
//DEFINICIÓN PINES
pinMode(LED_Humedad, OUTPUT);
pinMode(LED_Temperatura, OUTPUT);
pinMode(dht22_sensor, INPUT);
pinMode(Boton_1, INPUT_PULLUP);
pinMode(Boton_2, INPUT_PULLUP);
}
void loop() {
TempAndHumidity valor_sensor = dhtSensor.getTempAndHumidity(); //Se llama a la libreria para lectura de temperatura y humedad
Temp = valor_sensor.temperature; //Lectura Temperatura
Hum = valor_sensor.humidity; //Lectura Humedad
Serial.println("Temperatura: " + String(Temp, 2) + "°C"); //Se imprime valor temperatura
Serial.println("Humedad: " + String(Hum, 1) + "%"); //Se imprime valor Humedad
delay(1000); //Lectura cada segundo
//Lectura de botones
int value = digitalRead((Boton_1));
int value2 = digitalRead((Boton_2));
//Comparador alerta TEMPERATURA
if (Temp > Limite_Temp){ //Condicion si la lectura del sensor supera el limite de Temperatura
digitalWrite(LED_Temperatura, HIGH); //LED celeste encendido
if (estado_boton != value ) { //Comprueba estado de boton1
Serial.println(estado_boton);
if (value == HIGH) {}
if (value == LOW) { //Condicion para apagar leds
digitalWrite(LED_Temperatura, LOW);
digitalWrite(LED_Humedad, LOW);
delay(1000); //tiempo de apagado
}
estado_boton = value; //Guarda el valor de estado_boton
}
if (estado_boton2 != value2 ) { //Comprueba estado de boton1
if (value2 == HIGH) {}
if (value2 == LOW) { //Condicion para apagar leds
digitalWrite(LED_Temperatura, LOW);
digitalWrite(LED_Humedad, LOW);
delay(1000); //tiempo de apagado
}
estado_boton2 = value2; //Guarda el valor de estado_boton
}
}
else{
digitalWrite(LED_Temperatura, LOW); //LED celeste apagado
}
//Comparador alerta HUMEDAD
if (Hum >= Limite_Sup_Hum || Hum <= Limite_Inf_Hum){ //Condicion si la lectura del sensor esta fuera del rango del % de humedad admitido
digitalWrite(LED_Humedad, HIGH); //LED ROSADO encendido
if (estado_boton != value ) { //Comprueba estado de boton1
Serial.println(estado_boton);
if (value == HIGH) {}
if (value == LOW) { //Condicion para apagar leds
digitalWrite(LED_Humedad, LOW);
digitalWrite(LED_Temperatura, LOW);
delay(1000); //tiempo de apagado
}
estado_boton = value; //Guarda el valor de estado_boton
}
if (estado_boton2 != value2 ) { //Comprueba estado de boton2
if (value2 == HIGH) {}
if (value2 == LOW) { //Condicion para apagar leds
digitalWrite(LED_Humedad, LOW);
digitalWrite(LED_Temperatura, LOW);
delay(1000); //tiempo de apagado
}
estado_boton2 = value2; //Guarda el valor de estado_boton
}
}
else{
digitalWrite(LED_Humedad, LOW); //LED celeste apagado
}
}
/*Elaborado po: Portilla Arteaga Liceth Geovana*/