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);
}
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);
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);
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)) {
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{
}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);
}
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
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
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hola me podrias mandar el diagrama electrico por favor estoy en electromecanica este es mi correo
ResponderEliminarlestr043@gmail.com te lo agradeceria mucho saludos