MyGarden – Grupo18 Móstoles



MyGarden






                                                                   Grupo 18

Alejandro Pinto Fernández
Daniel Jimeno Sáez

Contenido
Introducción
Componentes del proyecto
Evolución del proyecto
Conexiones
Código

Problemas

Posibles Mejoras
Funcionamiento
Presentación de clase

Introducción



Este proyecto consiste en un
entorno de cultivo o de cuidado para plantas controlado por Arduino. Se busca
alargar el ciclo de vida de las plantas, así como mejorar su calidad. Además de
facilitarnos las tareas de cuidado que las plantas requieren.
Es un sistema capaz de regar
automáticamente, medir la humedad de la tierra, la temperatura  y la humedad en el ambiente para poder
avisarnos. Todo ello manejado a través de un mando a distancia.
Respecto a los fines que le
podríamos dar a este proyecto principalmente sería un uso doméstico destinado
al cuidado de nuestras plantas. Podemos darle tanto un uso para plantas que
sean de interior como para plantas de exterior, ya que depende de nosotros de
donde queramos colocarlo.

Componentes del proyecto

– La tabla de componentes:
Componente
Precio
Kit Arduino
34,00
Bomba de agua
14,85
Módulo I2C
12,10
Modulo infrarrojos y Mando a
distancia
6,10
Materiales bricolaje
Estructura
20,00
TOTAL
87,05
Ya que nos hacían falta sensores
de humedad, de temperatura, de infrarrojos, etc. Para nuestro proyecto y en el
kit que el profesor nos proporcionaba no había pues en vez de comprarlos
sueltos decidimos comprar un kit de Arduino.
Eso es lo que nos hace que el
presupuesto nos suba un poco más, sino sería un presupuesto bastante aceptable.
– Componentes usados
Componentes utilizados
Cantidad
Arduino Uno
1
Bomba de agua
1
Relé
1
Receptor Infrarrojo
1
Buffer activo
1
Sensor de temperatura y
humedad
1
Sensor de humedad en suelo
1
Leds rojos
2
Mando a distancia
1
Resistencias
2
Cable
28*

Evolución del proyecto


– Conexiones


– Montaje
   Pasos en la construcción de
nuestro proyecto:
Paso 1: Montar nuestra estructura comenzando por
medir y cortar palos de madera y uniéndolos a 
una bandeja de plástico,
utilizaremos una pistola de pegamento termofusible para unir todo nuestro 
proyecto.
  – Paso 2: Añadiremos unas cortinas hechas con un plástico
transparente y resistente para 
conservar la humedad en el interior y evitar que
las plantas puedan sufrir corrientes de aire, 
además  añadimos un tablón de
contrachapado que nos servirá para pegar nuestros componentes 
electrónicos.




Paso
3: Una vez terminado procedemos a pegar nuestros componentes electrónicos.



– Paso 4: Una vez tengamos pegados
nuestros componentes electrónicos terminamos por decorar nuestro MyGarden
usando plantas pequeñas.


Código
En este apartado podremos
ver el código con más detalle, debido a que se encuentra comentada cada parte del programa no nos
extendemos más aquí.

#include «IRremote.h»
#include <DHT11.h>
int receiver = 11; 
int pin=2;
int pin2=6;
DHT11 dht11(pin); 
IRrecv irrecv(receiver);     
decode_results results; 
int LED1 = 7; 
int LED2 = 6;
int buzzer=8;
int err;
float temp, hum;
float humetierra;
const int myRelee = 4;
int conthumetierra = 1001;
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(LED1, OUTPUT); 
   // Relee
  pinMode(myRelee, OUTPUT); 
   // Declaramos que el pin sera salida
   // Preparamos el puerto serie
}
 //Menú Principal
void loop()  
{
  if (irrecv.decode(&results)) 
   {
    switch(results.value)
    {///Luz apagar y encender
      case 0x00FF6897:
            digitalWrite(LED1, HIGH);    
                       break;
      case 0x00FF9867: 
            digitalWrite(LED1, LOW);   
                       break;  
     //Medir Temperatura y humedad
      case 0xFFB04F: 
            Serial.print(«Calculando…»);
            Serial.println();
            delay(1000);
      if((err = dht11.read(hum, temp)) == 0)    // Si devuelve 0 es que ha leido bien
          {
             Serial.print(«Temperatura: «);
             Serial.print(temp);
             Serial.print(» Humedad: «);
             Serial.print(hum);
             Serial.println();
             }
       else
          {
             Serial.println();
             Serial.print(«Error Num :»);
             Serial.print(err);
             Serial.println();
          }   
                       break;
       //Medir Humedad de la tierra                
        case 0xFF30CF:  
             Serial.print(«La Humedad de la tierra es:  «);
             Serial.println();
             delay(1000);
               if (humetierra < 42)
                   {
                      Serial.println(«Bajo»);
                   }
               if (humetierra > 42 && humetierra < 90)
                   {
                       Serial.println(«Adecuado»);
                   }
               if (humetierra > 90)
                   {
                       Serial.println(«Alto»);
                    }
             Serial.println(humetierra);
                       break; 
         case 0xFF18E7: 
              Serial.print(«Regando…»);
              Serial.println();
              digitalWrite(myRelee, HIGH);  
              delay(2000);   
              digitalWrite(myRelee, LOW);
                       break;        
       }
    irrecv.resume();
   }  
  delay(300);
  dht11.read(hum, temp);
      if (temp > 30)
        {
             digitalWrite(LED1, HIGH);
             delay(1000);
             digitalWrite(LED1, LOW);
             pinMode(buzzer,OUTPUT);
             digitalWrite(buzzer, HIGH); 
             delay(1000);
             digitalWrite(buzzer, LOW);
         }
       humetierra = analogRead(1);
       if (humetierra < 33)
           {
             digitalWrite(LED1, HIGH);
             delay(1000);
             digitalWrite(LED1, LOW);
             pinMode(buzzer,OUTPUT);
             digitalWrite(buzzer, HIGH); 
             delay(1000);
             digitalWrite(buzzer, LOW);
               
           }
       if (humetierra > 33 && humetierra < 90)
           {
               digitalWrite(myRelee, HIGH);
               delay(2000);   
               digitalWrite(myRelee, LOW); 
           } 
}

Problemas

– Pantalla LCD debido a que nos quedábamos sin
pines.
Solución: utilizar un módulo
I2C para reducir los pines. Lo que pasa que al soldar el módulo I2C con la
pantalla hay que poner entre medias una capa aislante para que no se toquen,
pero nosotros no lo sabíamos y una vez soldadas nos hacia un corto.

– La bomba de agua no funcionaba directamente
conectándola.
Solución: utilizar un
relé conectado a la bomba y alimentado por una pila de 9v.

– Ventilador de 12v. queríamos colocar un
ventilador, pero claro Arduino no tiene tanto voltaje y como ya teníamos la bomba
con las pilas no podíamos ponerlo.
Posibles Mejoras

 Las mejoras que se podrían
plantear serían las siguientes:
– Implementación de una interfaz o aplicación para
poder facilitar la configuración de los diferentes parámetros de medición
(humedad, temperatura, etc).

– Incorporar la pantalla LCD para la facilidad de
la lectura de los datos sin usar el pc, es decir, en la pantalla nos mostraría
los valores de humedad y temperatura dentro del entorno, así como la  humedad de
la tierra.

– Añadir un sensor al depósito de agua para así
poder controlar el nivel que tiene y poder emitir una alerta cuando el nivel de
agua sea bajo.

-Añadir un ventilador para que cuando la
temperatura o la humedad dentro del entorno sea alta poder bajarla.
Funcionamiento

Ahora pasaremos a ver una serie de videos en los que
apreciaremos  el uso y funcionamiento de
nuestro proyecto.

En este video podremos ver el uso del mando para activar/desactivar los LEDS utilizando mando a distancia.

En este video podremos ver el uso del mando para mostrar utilizando el serial de Arduino  y como obtenemos los datos de temperatura y humedad.

En este video podremos ver el uso del mando para mostrar utilizando el serial de Arduino  y como obtenemos los datos de la humedad de nuestra tierra.

En este video podremos ver el uso del mando para activar el regadío durante un par de segundo y apagarse automáticamente.

Podemos ver que si la temperatura es muy alta o la humedad de la tierra muy baja, se activan los LEDS de forma intermitente a la vez que el buffer activo comienza a sonar y esto continuará hasta que o bien la temperatura baje de nuevo o si nos encontramos en el caso de la humedad de la tierra , logre una humedad óptima.

En este video podremos ver como si el sensor de
humedad detecta muy poca humedad, lo que supondría que la tierra está seca, activaría
las alarmas de buffer activo y leds. En el caso de que solo le falte algo de humedad
el sistema activaría la bomba de agua, un led en nuestro caso, y regaría, este
proceso seria el habitual manteniendo la humedad de la calidad de vida de la
planta.

Presentación de clase
En este enlace a través de google drive podéis ver la presentación realizada en clase, el apartado demo, serian los videos del anterior punto.

Memoria PDF del proyecto
Aquí se encontrara la memoria en formato pdf para ver en detalle el contenido del blog.
Código MyGarden

Todo el que quiera podrá descargar el código arduino directamente desde aquí.

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *