Sunteți pe pagina 1din 13

//#include <DHT.

h>

//#include <DHT_U.h>

#include <LiquidCrystal_I2C.h>

//#include <DHT.h> // Incluimos librería

//#define DHTPIN 7 // Definimos el pin digital donde se conecta el sensor

//#define DHTTYPE DHT11 // Dependiendo del tipo de sensor

//DHT dht(DHTPIN, DHTTYPE);// Inicializamos el sensor DHT11

LiquidCrystal_I2C lcd(0x27,16,2);

bool automatico;

int nivel;

void setup()

//dht.begin(); // Comenzamos el sensor DHT

Serial.begin (9600);

pinMode(8,OUTPUT); // Pin 8 salida bombilla

pinMode(9,OUTPUT); // Pin 9 salida ventilador

pinMode(10, OUTPUT); // Pin 10 salida bomba de agua

pinMode(11, OUTPUT); // Pin 11 salida Pin Led modo automatico manual

pinMode(3,INPUT_PULLUP); //Pin 3 pulsador ON/OFF ventilador

pinMode(4,INPUT_PULLUP); //Pin 4 pulsador ON/OFF RIEGO


pinMode(5,INPUT_PULLUP); //Pin 5 pulsador ON/OFF LUZ

pinMode(6, INPUT_PULLUP); //Pin 6 Modo automatico

pinMode(7, INPUT); // PRUEBAS SENSOR DHT

//Entrada sensor nivel agua analogico 3

automatico=1;

lcd.init();

lcd.backlight();

lcd.clear();

lcd.setCursor(0,0);

lcd.print(" Invernadero automatizado arduino");

for(int c=0;c<20;c++)

lcd.scrollDisplayLeft();

delay(400);

for(int c=0; c<20;c++)

lcd.scrollDisplayRight();

delay(400);

lcd.clear();

void loop()

{
//Modo manual o automatico

bool estadoled;

bool pulso6;

pulso6=digitalRead(6);

estadoled=digitalRead(11);

while (pulso6==1&&automatico==1&&estadoled==1)

lcd.setCursor(0,1);

lcd.print("MODO MANUAL ON ");

automatico=0;

delay(500);

while (pulso6==0&&automatico==0&&estadoled==0)

lcd.setCursor(0,1);

lcd.print(" MODO MANUAL OFF ");

automatico=1;

delay(500);

if (automatico==1) digitalWrite(11,1);

if (automatico==0) digitalWrite(11,0);

// ILUMINACIÓN
// LDR

int ldr;

int valorldr;

ldr=analogRead(1);

valorldr=map(ldr,1024,0,100,0);

Serial.print ("LDR vale ");

Serial.println (ldr);

Serial.print ("La luminosidad es ");

Serial.println (valorldr);

if(valorldr<=50&&automatico==1)

digitalWrite(8,1);

if (valorldr>50&&automatico==1)

digitalWrite(8,0);

//PULSO LUZ

bool salida8;

bool pulso5;

pulso5=digitalRead(5);

salida8=digitalRead(8);
if (pulso5==0&&salida8==0&&automatico==0)

digitalWrite(8,1);

delay(100);

lcd.setCursor(0,1);

lcd.print(" LUZ MANUAL ON");

delay(2000);

if (pulso5==0&&salida8==1&&automatico==0)

digitalWrite(8,0);

delay(100);

lcd.setCursor(0,1);

lcd.print(" LUZ MANUAL OFF");

delay(2000);

Serial.print ("Pulso5 vale");

Serial.println (pulso5);

Serial.print ("estado led");

Serial.println (salida8);

// TEMPERATURA

// TEMPERATURA

int temp;

int valortemp;
temp=digitalRead(13);

valortemp=map(temp,0,1024,0,1024);

Serial.print ("TEMP vale ");

Serial.println (temp);

Serial.print ("La temperatura es ");

Serial.println (valortemp);

if(automatico==1&&valortemp>=5)

digitalWrite(9,1);

if (automatico==1&&valortemp<5)

digitalWrite(9,0);

//DHT11

// delay(200); // Esperamos 5 segundos entre medidas

//float h = dht.readHumidity(); // Leemos la humedad relativa

//float t = dht.readTemperature(); // Leemos la temperatura en grados centígrados

//float hic = dht.computeHeatIndex(t, h, false); // Calcular el índice de calor en grados


centígrados

//Serial.print("Humedad: ");

//Serial.print(h);
//Serial.print(" %\t");

//Serial.print("Temperatura: ");

//Serial.print(t);

//Serial.print(" *C ");

//Serial.print("Índice de calor: ");

//Serial.print(hic);

//Serial.println(" *C ");

//PULSO VENTILADOR

bool pulso3;

bool salida9;

salida9=digitalRead(9);

pulso3=digitalRead(3);

if (pulso3==0&&automatico==0&&salida9==0)

digitalWrite(9,1);

delay(100);

lcd.setCursor(0,1);

lcd.print("VENT. MANUAL ON");

delay(2000);

if (pulso3==0&&salida9==1&&automatico==0)

digitalWrite(9,0);

lcd.setCursor(0,1);

lcd.print("VENT. MANUAL OFF");

delay(2000);
}

Serial.print ("Pulso3 vale");

Serial.println (pulso3);

Serial.print ("estado ventilador");

Serial.println (digitalRead(9));

//RIEGO

// HIGROMETRO

const int sensorPin=A0;

int humedad;

int valorhumedad;

humedad=analogRead(sensorPin);

valorhumedad=map(humedad,0,1024,100,0);

Serial.print ("La lectura de HUMEDAD vale ");

Serial.println (humedad);

if (humedad >= 1000) Serial.println (">> EL SENSOR ESTA DESCONECTADO O FUERA DEL
SUELO <<");

else if (humedad < 1000 && humedad >=600) Serial.println (">> EL SUELO ESTA SECO <<");

else if (humedad < 600 && humedad >= 370) Serial.println (">> EL SUELO ESTA HUMEDO
>>");

else if (humedad < 370) Serial.println (">> EL SENSOR ESTA PRÁCTICAMENTE EN AGUA <<");
if(automatico==1&&nivel==0&&humedad<=550)

digitalWrite(10,1);

if (automatico==1&&humedad>400)

digitalWrite(10,0);

//NIVEL DEPOSITO AGUA

int nivel;

bool nivelmap;

nivel=analogRead(3);

nivelmap=map(nivel,0,1024,100,0);

Serial.print ("Nivel deposito agua es ");

Serial.println (nivel);

delay(100);

//PULSO RIEGO

bool pulso4;

bool salida10;

salida10=digitalRead(10);

pulso4=digitalRead(4);

if (pulso4==0&&salida10==0&&automatico==0&&nivel==0)

digitalWrite(10,1);
delay(100);

lcd.setCursor(0,1);

lcd.print("RIEGO MANUAL ON");

delay(2000);

if (pulso4==0&&salida10==1&&automatico==0)

digitalWrite(10,0);

lcd.setCursor(0,1);

lcd.print("RIEGO MANUAL OFF");

delay(2000);

if (pulso4==0&&salida10==0&&automatico==0&&nivel>0)

lcd.setCursor(0,1);

lcd.print("LLenar deposito de agua");

for(int c=0;c<15;c++)

lcd.scrollDisplayLeft();

delay(200);

lcd.clear();

Serial.print ("Pulso4 vale");

Serial.println (pulso4);

Serial.print ("estado riego");

Serial.println (digitalRead(10));
//LCD DATOS

if (pulso3==0&&automatico==1)

lcd.setCursor(0,1);

lcd.print(" Desactivar modo automatico ");

for(int c=0;c<15;c++)

lcd.scrollDisplayLeft();

delay(150);

lcd.clear();

if (pulso4==0&&automatico==1)

lcd.setCursor(0,1);

lcd.print(" Desactivar modo automatico ");

for(int c=0;c<15;c++)

lcd.scrollDisplayLeft();

delay(150);

lcd.clear();
}

if (pulso5==0&&automatico==1)

lcd.setCursor(0,1);

lcd.print(" Desactivar modo automatico ");

for(int c=0;c<15;c++)

lcd.scrollDisplayLeft();

delay(150);

lcd.clear();

lcd.setCursor(0,0);

lcd.print("LX:"+String(valorldr)+"%"+"TA:"+String(valortemp)+"c"+"HT:"+String(valorhumedad)
+"%");

// lcd.setCursor(0,1);

//lcd.print("HT:"+String(valorhumedad)+"%");

//for(int c=0;c<21;c++)

//lcd.scrollDisplayLeft();

//delay(400);

}
}

S-ar putea să vă placă și