// Codigo de conexion de senosres dht22 para invernadero
// JEAL, IRG, JARO
// Asesores: DHL, RRR
// GRUPO: 9MIR1
// --------------------------------------------------------------------------------
// Inclusion de liberias
#include "DHT.h" // Libreria de deteccion de sensor de temperatura
// ---------------------------------------------------------------------------------
// Definicion de Pines de sensores
#define DHTPIN1 23 // Sensor 1
#define DHTPIN2 22 // Sensor 2
#define DHTPIN3 21 // Sensor 3
#define DHTPIN4 19 // Sensor 4
#define DHTPIN5 18 // Sensor 5
#define DHTTYPE1 DHT22
#define DHTTYPE2 DHT22
#define DHTTYPE3 DHT22
#define DHTTYPE4 DHT22
#define DHTTYPE5 DHT22
// Definicion de pines para hidrobombas
int bomba1= 5;
int bomba2= 17;
int bomba3= 16;
int bomba4= 4;
int bomba5= 0;
int bomba6= 25;
int bomba7= 26;
int bomba8= 27;
int bomba9= 14;
int bomba10= 12;
// Variables Locales de los sensores
DHT dht1(DHTPIN1, DHTTYPE1);
DHT dht2(DHTPIN2, DHTTYPE2);
DHT dht3(DHTPIN3, DHTTYPE3);
DHT dht4(DHTPIN4, DHTTYPE4);
DHT dht5(DHTPIN5, DHTTYPE5);
// --------------------------------------------------------------------------------------
// INICIO DE FUNCIONAMIENTO
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
dht1.begin();
dht2.begin();
dht3.begin();
dht4.begin();
dht5.begin();
pinMode(bomba1, OUTPUT);
pinMode(bomba2, OUTPUT);
pinMode(bomba3, OUTPUT);
pinMode(bomba4, OUTPUT);
pinMode(bomba5, OUTPUT);
pinMode(bomba6, OUTPUT);
pinMode(bomba7, OUTPUT);
pinMode(bomba8, OUTPUT);
pinMode(bomba9, OUTPUT);
pinMode(bomba10, OUTPUT);
}
// --------------------------------------------------------------------------------------
// FUNCIONAMIENTO DEL SISTEMA
void loop() {
// Espera unos segundos entre mediciones.
delay(2000);
// Leer la humedad y temperatura
float h1 = dht1.readHumidity();
float t1 = dht1.readTemperature();
float h2 = dht2.readHumidity();
float t2 = dht2.readTemperature();
float h3 = dht3.readHumidity();
float t3 = dht3.readTemperature();
float h4 = dht4.readHumidity();
float t4 = dht4.readTemperature();
float h5 = dht5.readHumidity();
float t5 = dht5.readTemperature();
// Comprobar si la lectura falló y salir temprano (para intentar de nuevo).
if (isnan(h1) || isnan(t1)) {
Serial.println(F("¡Fallo al leer del sensor DHT1!"));
return;
}
if (isnan(h2) || isnan(t2)) {
Serial.println(F("¡Fallo al leer del sensor DHT2!"));
return;
}
if (isnan(h3) || isnan(t3)) {
Serial.println(F("¡Fallo al leer del sensor DHT3!"));
return;
}
if (isnan(h4) || isnan(t4)) {
Serial.println(F("¡Fallo al leer del sensor DHT4!"));
return;
}
if (isnan(h5) || isnan(t5)) {
Serial.println(F("¡Fallo al leer del sensor DHT5!"));
return;
}
//Impresion de Datos de 1° DHT22 en el Serial Port
Serial.print(F("Humedad1: "));
Serial.print(h1);
Serial.print(F("% Temp 1: "));
Serial.print(t1);
Serial.println(F("°C"));
//Impresion de Datos de 2° DHT22 en el Serial Port
Serial.print(F("Humedad2: "));
Serial.print(h2);
Serial.print(F("% Temp 2: "));
Serial.print(t2);
Serial.println(F("°C"));
//Impresion de Datos de 3° DHT22 en el Serial Port
Serial.print(F("Humedad3: "));
Serial.print(h3);
Serial.print(F("% Temp 3: "));
Serial.print(t3);
Serial.println(F("°C"));
//Impresion de Datos de 4° DHT22 en el Serial Port
Serial.print(F("Humedad4: "));
Serial.print(h4);
Serial.print(F("% Temp 4: "));
Serial.print(t4);
Serial.println(F("°C"));
//Impresion de Datos de 5° DHT22 en el Serial Port
Serial.print(F("Humedad5: "));
Serial.print(h5);
Serial.print(F("% Temp 5: "));
Serial.print(t5);
Serial.println(F("°C"));
// Enciende los LEDs según la temperatura del Sensor 1
if ((t1) < 22) {
digitalWrite(bomba1, LOW);
digitalWrite(bomba2, LOW);
digitalWrite(bomba3, LOW);
digitalWrite(bomba4, LOW);
digitalWrite(bomba5, LOW);
digitalWrite(bomba6, LOW);
digitalWrite(bomba7, LOW);
digitalWrite(bomba8, LOW);
digitalWrite(bomba9, LOW);
digitalWrite(bomba10, LOW);
} else if ((t1) >= 22 && (t1) <= 30) {
digitalWrite(bomba1, LOW);
digitalWrite(bomba2, LOW);
digitalWrite(bomba3, LOW);
digitalWrite(bomba4, LOW);
digitalWrite(bomba5, LOW);
digitalWrite(bomba6, LOW);
digitalWrite(bomba7, LOW);
digitalWrite(bomba8, LOW);
digitalWrite(bomba9, LOW);
digitalWrite(bomba10, LOW);
} else {
digitalWrite(bomba1, HIGH);
digitalWrite(bomba2, HIGH);
digitalWrite(bomba3, HIGH);
digitalWrite(bomba4, HIGH);
digitalWrite(bomba5, HIGH);
digitalWrite(bomba6, HIGH);
digitalWrite(bomba7, HIGH);
digitalWrite(bomba8, HIGH);
digitalWrite(bomba9, HIGH);
digitalWrite(bomba10, HIGH);
delay (5000);
}
// Enciende los LEDs según la temperatura del Sensor 2
if ((t2) < 22) {
digitalWrite(bomba1, LOW);
digitalWrite(bomba2, LOW);
digitalWrite(bomba3, LOW);
digitalWrite(bomba4, LOW);
digitalWrite(bomba5, LOW);
digitalWrite(bomba6, LOW);
digitalWrite(bomba7, LOW);
digitalWrite(bomba8, LOW);
digitalWrite(bomba9, LOW);
digitalWrite(bomba10, LOW);
} else if ((t2) >= 22 && (t2) <= 30) {
digitalWrite(bomba1, LOW);
digitalWrite(bomba2, LOW);
digitalWrite(bomba3, LOW);
digitalWrite(bomba4, LOW);
digitalWrite(bomba5, LOW);
digitalWrite(bomba6, LOW);
digitalWrite(bomba7, LOW);
digitalWrite(bomba8, LOW);
digitalWrite(bomba9, LOW);
digitalWrite(bomba10, LOW);
} else {
digitalWrite(bomba1, HIGH);
digitalWrite(bomba2, HIGH);
digitalWrite(bomba3, HIGH);
digitalWrite(bomba4, HIGH);
digitalWrite(bomba5, HIGH);
digitalWrite(bomba6, HIGH);
digitalWrite(bomba7, HIGH);
digitalWrite(bomba8, HIGH);
digitalWrite(bomba9, HIGH);
digitalWrite(bomba10, HIGH);
delay (5000);
}
// Enciende los LEDs según la temperatura del Sensor 3
if ((t3) < 22) {
digitalWrite(bomba1, LOW);
digitalWrite(bomba2, LOW);
digitalWrite(bomba3, LOW);
digitalWrite(bomba4, LOW);
digitalWrite(bomba5, LOW);
digitalWrite(bomba6, LOW);
digitalWrite(bomba7, LOW);
digitalWrite(bomba8, LOW);
digitalWrite(bomba9, LOW);
digitalWrite(bomba10, LOW);
} else if ((t3) >= 22 && (t3) <= 30) {
digitalWrite(bomba1, LOW);
digitalWrite(bomba2, LOW);
digitalWrite(bomba3, LOW);
digitalWrite(bomba4, LOW);
digitalWrite(bomba5, LOW);
digitalWrite(bomba6, LOW);
digitalWrite(bomba7, LOW);
digitalWrite(bomba8, LOW);
digitalWrite(bomba9, LOW);
digitalWrite(bomba10, LOW);
} else {
digitalWrite(bomba1, HIGH);
digitalWrite(bomba2, HIGH);
digitalWrite(bomba3, HIGH);
digitalWrite(bomba4, HIGH);
digitalWrite(bomba5, HIGH);
digitalWrite(bomba6, HIGH);
digitalWrite(bomba7, HIGH);
digitalWrite(bomba8, HIGH);
digitalWrite(bomba9, HIGH);
digitalWrite(bomba10, HIGH);
delay (5000);
}
// Enciende los LEDs según la temperatura del Sensor 4
if ((t4) < 22) {
digitalWrite(bomba1, LOW);
digitalWrite(bomba2, LOW);
digitalWrite(bomba3, LOW);
digitalWrite(bomba4, LOW);
digitalWrite(bomba5, LOW);
digitalWrite(bomba6, LOW);
digitalWrite(bomba7, LOW);
digitalWrite(bomba8, LOW);
digitalWrite(bomba9, LOW);
digitalWrite(bomba10, LOW);
} else if ((t4) >= 22 && (t4) <= 30) {
digitalWrite(bomba1, LOW);
digitalWrite(bomba2, LOW);
digitalWrite(bomba3, LOW);
digitalWrite(bomba4, LOW);
digitalWrite(bomba5, LOW);
digitalWrite(bomba6, LOW);
digitalWrite(bomba7, LOW);
digitalWrite(bomba8, LOW);
digitalWrite(bomba9, LOW);
digitalWrite(bomba10, LOW);
} else {
digitalWrite(bomba1, HIGH);
digitalWrite(bomba2, HIGH);
digitalWrite(bomba3, HIGH);
digitalWrite(bomba4, HIGH);
digitalWrite(bomba5, HIGH);
digitalWrite(bomba6, HIGH);
digitalWrite(bomba7, HIGH);
digitalWrite(bomba8, HIGH);
digitalWrite(bomba9, HIGH);
digitalWrite(bomba10, HIGH);
delay (5000);
}
// Enciende los LEDs según la temperatura del Sensor 5
if ((t5) < 22) {
digitalWrite(bomba1, LOW);
digitalWrite(bomba2, LOW);
digitalWrite(bomba3, LOW);
digitalWrite(bomba4, LOW);
digitalWrite(bomba5, LOW);
digitalWrite(bomba6, LOW);
digitalWrite(bomba7, LOW);
digitalWrite(bomba8, LOW);
digitalWrite(bomba9, LOW);
digitalWrite(bomba10, LOW);
} else if ((t5) >= 22 && (t5) <= 30) {
digitalWrite(bomba1, LOW);
digitalWrite(bomba2, LOW);
digitalWrite(bomba3, LOW);
digitalWrite(bomba4, LOW);
digitalWrite(bomba5, LOW);
digitalWrite(bomba6, LOW);
digitalWrite(bomba7, LOW);
digitalWrite(bomba8, LOW);
digitalWrite(bomba9, LOW);
digitalWrite(bomba10, LOW);
} else {
digitalWrite(bomba1, HIGH);
digitalWrite(bomba2, HIGH);
digitalWrite(bomba3, HIGH);
digitalWrite(bomba4, HIGH);
digitalWrite(bomba5, HIGH);
digitalWrite(bomba6, HIGH);
digitalWrite(bomba7, HIGH);
digitalWrite(bomba8, HIGH);
digitalWrite(bomba9, HIGH);
digitalWrite(bomba10, HIGH);
delay (5000);
}
}