#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int sensorP1 = 35;
int sensorP2 = 34;
int sensorP3 = 32;
int sensorP4 = 33;
int valorsensorP1;
int valorsensorP2;
int valorsensorP3;
int valorsensorP4;
int ventilador1 = 12;
int sumaP1yP2;
int sumaP3yP4;
int bomba1 = 25;
int bomba2 = 26;
int bomba3 = 27;
int bomba4 = 14;
void setup()
{
Serial.begin(115200);
Serial.println();
Serial.println("Reset");
Wire.begin();
lcd.init();
lcd.clear();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Sistema de riego");
lcd.setCursor(0, 1);
lcd.print("Automatico");
delay(5000);
lcd.clear();
pinMode(sensorP1, INPUT);
pinMode(sensorP2, INPUT);
pinMode(sensorP3, INPUT);
pinMode(sensorP4, INPUT);
pinMode(bomba1, OUTPUT);
pinMode(bomba2, OUTPUT);
pinMode(bomba3, OUTPUT);
pinMode(bomba4, OUTPUT);
pinMode(ventilador1, OUTPUT);
}
void loop() {
valorsensorP1= map(analogRead(sensorP1),4095,0,0,100);
valorsensorP2= map(analogRead(sensorP2),4095,0,0,100);
valorsensorP3= map(analogRead(sensorP3),4095,0,0,100);
valorsensorP4= map(analogRead(sensorP4),4095,0,0,100);
lcd.setCursor(0, 0);
lcd.print("HP1:");
lcd.print(valorsensorP1);
lcd.print("%");
lcd.print(" HP2:");
lcd.print(valorsensorP2);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("HP3:");
lcd.print(valorsensorP3);
lcd.print("%");
lcd.print(" HP4:");
lcd.print(valorsensorP4);
lcd.print("%");
if(valorsensorP1<=40)
{
Serial.println("Regado de planta 1: ACTIVADO");
digitalWrite(bomba1, HIGH);
delay(5000);
digitalWrite(bomba1, LOW);
}
if(valorsensorP2<=40)
{
Serial.println("Regado de planta 2: ACTIVADO");
digitalWrite(bomba2, HIGH);
delay(5000);
digitalWrite(bomba2, LOW);
}
if(valorsensorP3<=40)
{
Serial.println("Regado de planta 3: ACTIVADO");
digitalWrite(bomba3, HIGH);
delay(5000);
digitalWrite(bomba3, LOW);
}
if(valorsensorP4<=40)
{
Serial.println("Regado de planta 4: ACTIVADO");
digitalWrite(bomba4, HIGH);
delay(5000);
digitalWrite(bomba4, LOW);
}
sumaP1yP2 = (valorsensorP1 + valorsensorP2)/2;
sumaP3yP4 = (valorsensorP3 + valorsensorP4)/2;
if(sumaP1yP2>15)
{
Serial.println("Aire para la planta 1 y planta 2: ACTIVADO");
digitalWrite(ventilador1, HIGH);
delay(15000);
digitalWrite(ventilador1, LOW);
}
if(sumaP3yP4>65)
{
Serial.println("Aire para la planta 3 y planta 4: ACTIVADO");
}
Serial.print("Humedad de la planta 1: ");
Serial.print(valorsensorP1);
Serial.println(" %");
Serial.print("Humedad de la planta 2: ");
Serial.print(valorsensorP2);
Serial.println(" %");
Serial.print("Humedad de la planta 3: ");
Serial.print(valorsensorP3);
Serial.println(" %");
Serial.print("Humedad de la planta 4: ");
Serial.print(valorsensorP4);
Serial.println(" %");
Serial.println("-----Separación de toma de valores-----");
delay (120000);
}