lunes, 13 de marzo de 2017

Invernadero Automatizado y control de riego






Este proyecto se basa en la automatización  y el control de riego de un invernadero a través de arduino y mediante una red inalámbrica.


Componentes para el proyecto:
- Arduino Uno
- Arduino Atmega 2560
- Sensor de temperatura y humedad DTH11
- Sensor de humedad del suelo higrómetro
-2 motores DC 6V con reductora
- Ventilador 12 V
- 2 Modulos rele para arduino
- Electroválvula DC 12 V
- Modulo bluetooth
- 4  Interruptores
- Fuente de alimentación 12 V
- Puente en H
Dimensiones del invernadero;
-70 cm de ancho
-70 cm de largo
-50cm de alto

Componentes para el invernadero:
- Plancha de madera de 1m x 1m
- 6 barras de madera de 35cm
-3 barras de madera de 50 cm
-Plástico
-Mangas de plástico
- 2 Varillas de acero de 70 cm




Diagrama de Gantt







Funcionamiento de el proyecto

Control de motor de las bandas:
A través de el sensor de temperatura y humedad dth11, dependiendo de la temperatura y humedad que haya en el invernadero a través de arduino accionaremos los motores para que se produzca la subida de las bandas o la bajada, por lo que también se accionara el ventilador para ayudar a expulsar el aire y humedad mas rápidamente, los motores se detendrán a través de los finales de carrera de los que disponen cada banda,.


Control de riego:
A través de una electroválvula y un sensor de humedad de suelo podremos determinar si la plantación necesita ser regada, a través de arduino y los valores que de el sensor podremos obtener la situación del suelo y si la humedad es baja se accionara la válvula a través de un modulo relé que la controla a una tensión de 12 V.

Control Manual:
A través de unos interruptores podremos controlar de forma manual el cierre o la subida de las bandas de los invernaderos.


                           PROGRAMACION

Control Bandas:
Atmega

#include <DHT11.h>
int pin=23;
DHT11 dht11(pin);
int ENA = 10;
int IN1 = 9;
int IN2 = 24;
int ENB = 5;
int IN3 = 22;
int IN4 = 6;
int fin1 = 25;
int fin2 = 26;
int ventilador = 27;
int up = 30;
int  down = 31;
float temperatura;
float humedad;
int Manu = 32;
int automa = 35;
void setup()
{
  Serial.begin (9600);
  while (!Serial);
  pinMode (ENA, OUTPUT);
  pinMode (ENB, OUTPUT);
  pinMode (IN1, OUTPUT);
  pinMode (IN2, OUTPUT);
  pinMode (IN3, OUTPUT);
  pinMode (IN4, OUTPUT);
  pinMode (fin1,INPUT);
  pinMode (fin2,INPUT);
  pinMode (ventilador,OUTPUT);
  pinMode (Manu,INPUT);
  pinMode (automa,INPUT);
}

void Temperatura ()
{
  int err;
  float temp, humi;
  if((err=dht11.read(humi, temp))==0)
  {
    Serial.print("temperature:");
    Serial.print(temp);
    Serial.print(" humidity:");
    Serial.print(humi);
    Serial.println();
    temperatura = temp;
    humedad = humi;
 }
}
void Abrir ()
{
 digitalWrite (IN1, HIGH);
 digitalWrite (IN2, LOW);
 analogWrite (ENA, 100);
 digitalWrite (IN3, HIGH);
 digitalWrite (IN4, LOW);
 analogWrite (ENB, 100);
 digitalWrite(ventilador,HIGH);
}
void Cerrar ()
{
  digitalWrite (IN1, LOW);
  digitalWrite (IN2, HIGH);
  analogWrite (ENA, 100);
  digitalWrite (IN3, LOW);
  digitalWrite (IN4, HIGH);
  analogWrite (ENB, 100); 
}
void Parar ()
{
 digitalWrite (IN1, LOW);
 digitalWrite (IN2, LOW);
 analogWrite (ENA, 0);

 digitalWrite (IN3, LOW);
 digitalWrite (IN4, LOW);
 analogWrite (ENB, 0);
}
void loop ()
{
 Temperatura ();
 //delay (2000);
 //Abrir ();
// delay (10000);
// Atras ();
// delay (9000);
// Parar ();
 if (digitalRead(Manu)&& digitalRead(up)){
  Abrir ();
 }else if(digitalRead(Manu) && digitalRead(dow)) {
  Cerrar();
 }else if(digitalRead(Manu)&&  digitalRead(Stop) {
  Parar ();
 }
 if( humedad > 70.0 && digitalRead(fin1)&& digitalRead (automa))  {
    Abrir();
 
 
 }else if(humedad < 65.0 && digitalRead(fin2)&& digitalRead(automa){
   Cerrar();
 }else{
  Parar();
 }
 delay (10);

Control Riego:
Arduino
int Rele = 4;
int hum;
void setup()
{
 Serial.begin (9600);
 pinMode (Rele,OUTPUT);
}

void Seco()
{
  Serial.print ("humedad=");
  hum = analogRead(0);
  Serial.print(hum);
  Serial.println("=regar");
  digitalWrite(Rele,HIGH);
}
void Humedo()
{
  Serial.print("humedad =");
  hum = analogRead(0);
 
 // if (hum > 300)
   Serial.print(hum);
   Serial.println("=No regar");
   digitalWrite(Rele,LOW);

}
void loop()
{
 
  if (hum <=400){
   Humedo();
  }else{
    Seco();
  }
   
delay(10000);
}

                                Pruebas de funcionamiento:

Control motor


Control electroválvula

Montaje en invernadero


Motores de las bandas y sistema de movimiento




Los motores están insertados en un carril hecho a partir de un tubo de pvc, lo que hace que el motor vaya subiendo mientras gira y sube la banda del invernadero, que se ayuda de un cardan que transmite el movimiento para mejorar y permitir el giro.
Los carriles disponen de un final de carrera al final del recorrido para la detención del motor.

Sensores y actuadores
Sensores de humedad y temperatura, sensor de humedad del suelo , ventilador y electroválvula.


                      Presupuesto



- Arduino Uno-----------------------------------------------------



21€
- Arduino Atmega 2560---------------------------------------



30€
- Sensor de temperatura y humedad DTH11-----------



5€
- Sensor de humedad del suelo higrómetro------------



2,3€
-2 motores DC 6V con reductora----------------------------



10€
- Ventilador 12 V---------------------------------------------------



3€
- 2 Modulos rele para arduino--------------------------------



3€
- Electroválvula DC 12 V----------------------------------------



6€
- Modulo bluetooth-----------------------------------------------



8€
- 4 Interruptores---------------------------------------------------



1€
- Fuente de alimentación 12 V--------------------------------



10€
- Puente en H-------------------------------------------------------



3€
Total------------------------------------------------------------



102,3€












































































1 comentario:

  1. hola me podrias mandar el diagrama electrico por favor estoy en electromecanica este es mi correo
    lestr043@gmail.com te lo agradeceria mucho saludos

    ResponderEliminar