Invernadero

Proyecto realizado por los alumnos de 4º ESO, Miguel Peláez Duro y Jaime Rodríguez Pacheco, durante el curso 2017-2018 en la asignatura de Robótica. 
El objetivo del proyectoo es automatizar el riego y ventilación de un mini invernadero. Para ello disponemos de una placa Arduino UNO que controla el funcionamiento de los sensores de humedad y de luz (LDR).
La idea es activar la bomba del sistema de riego cuando el sensor de humedad incrustado en la tierra no conduzca la corriente (tierra seca). 
En cuanto a la ventilación, se decide abrir la cubierta del invernadero por el día (con luz diurna) y cerrarla por la noche (oscuridad). Para el sistema mecánico de apertura-cierre, se recurre a un servo.


Esquema de conexiones

 
 

Código de programación:

#include <Servo.h>  //incluimos librería

int bomba = 8; //pin digital donde conectar la bomba (o el relé)
int riego; //variable de riego
Servo myservo;
int ldr = A1;             //pin analogico A0 donde se conecta la LDR
int ldrvalor = 0;        //variable de la ldr
int serv= 7; //pin digital donde conectar el led
int Analog_Eingang = A0 ;
int Digital_Eingang = 9 ;
 
void setup(){
  Serial.begin(9600);   //inicia comunicacion serial
  Serial.println(); //monitor serie
  pinMode(8,OUTPUT);//configuracion del pin 8
  myservo.attach(7);
  pinMode(7,OUTPUT);//configuracion del pin 7
  pinMode (Analog_Eingang, INPUT);
  pinMode (Digital_Eingang, INPUT);
  }

void loop(){
Serial.print("Sensor de Humedad valor:");  //escribe
riego = analogRead(0); // puerto analogico para el riego
Serial.print(riego);  //escribe
if (riego <= 300)  
digitalWrite(8,LOW);
if ((riego > 300) and (riego <= 700))        
digitalWrite(8,LOW);
if (riego > 700)        
digitalWrite(8,HIGH); 
delay(1000);
ldrvalor = analogRead(ldr);          //lee los valores analógicos de LDR
Serial.println("lectura");
Serial.println(ldrvalor); // escribe valores de LDR en el monitor serie
delay(100);     // tiempo de espera para cada medición
if (ldrvalor > 400){//cambiar numero en función de lo que se desee
myservo.write(0);    //posición inicial 70º
}else
myservo.write(50);   // posición final 0º
}

No hay comentarios:

Publicar un comentario