Sunteți pe pagina 1din 3

DESCRIPCIÓN DEL PROYECTO

Se trata de un sistema deriego de arroz totalmente automático que es


disparado por humedad. Un sensor de humedad mide la humedad que hay
en la planta de arroz y este sensor manda una señal al Arduino, evaluando
si hay que regar la planta. En ese caso, el arduino disparará un relé que
activa una bomba de agua que funciona a 220 V, y cuando llegue a la
humedad que fija el usuario como límite, detiene la bomba para evitar que
siga regando más.
MONTAJE DE LA MAQUETA
Para montar la maqueta se ha utilizado un tablero de aglomerado de 60X60
cm. Sobre él se ha ido marcando dónde se van a situar los componentes, y
se ha pegado donde irá cada componente cinta de velcro, para poder extraer
los componentes fácilmente, y ello evita tener que cargar con toda la
maqueta para llenar el depósito de agua, porque este se extrae y se monta
fácilmente. No sólo para llenar el depósito de agua, sino para transportarlo
fácilmente.

Para el cableado seguiremos el esquema que aquí se propone:

Al pin 8 se conecta la base del transistor con una resistencia en serie, y el


colector se lleva a Vcc. El emisor se conecta a masa.

El cable de 220 V no cabe en la protoboard porque es demasiado gordo, así


que hay que adaptar la conexión del enchufe para que se pueda conectar a
la protoboard usando una clema a la que se conectará otro cable más fino.
Lo mismo para la bomba. Estas clemas se pegan con velcro al tablero para
evitar que se muevan.

El relé lleva un diodo en paralelo para evitar que la corriente que se


autoinduce su bobina no pase al circuito, porque así se polariza en inversa y
se abre el circuito, lo que evita que esta corriente afecte negativamente al
circuito.

Para montar el sensor de humedad, a los tres cables que lleva (alimentación,
masa y señal), se les ha puesto el cable que se utilizó para los otros
sensores, porque el cable que lleva integrado el sensor es un poco corto.

A la base múltiple se enchufa la bomba. Cuenta con un interruptor para poder


pararla en caso de urgencia (pej que el depósito se vacíe muy rápido).

La manguera de la bomba se fija a la boquilla, se le atornilla una abrazadera


ajustable de 8 a 16 mm para que la manguera no salga despedida por la
fuerza del agua, y la boquilla de la manguera se fija a la planta con una pinza
ajustable. La bomba se fija a la base de la fiambrera, no demasiado cerca
de la pared, ni tampoco en medio, gracias a las ventosas que posee en la
base. No se ha puesto la manguera porque la evaporación que sufre una
planta es considerable

PROGRAMACIÓN
Para programar el Arduino, se ha hecho un programa en el que se leen la
humedad de la planta (la que llega por el sensor) y la humedad de corte (la
que ajusta el potenciómetro y a la que debe parar la bomba)

/*Disposición de los pines en la LCD


GND: A tierra(GND)
Vcc: A 5 voltios
SDA: A la entrada analógica 4
SCL: A la entrada analógica 5
*/
//Primero incluimos las librerías:
#include <Wire.h>
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C
lcd(0x27,16,2); int humedad;//Valor de la humedad actual
de la planta int humedadcorte;//Humedad que fija el usuario
girando el potenciómetro.
int control=8;//Pin que activa o
no el relé void setup()
{ lcd.init();//Inicia la
LCD
lcd.backlight();//Activa la
luz de la LCD.
pinMode(control,OUTPUT);//Declara el control del relé como salida
}

void loop()
{
//Para que el sistema convierta la lectura analógica en % hay que establecer
una relación: humedad=0.12*analogRead(0);//Convierte la lectura del
sensor a %.
humedadcorte=0.07*analogRead(1)+15;//Convierte la lectura del
potenciómetro a %. La humedad se ajusta entre un 15 y 90 por ciento. /*El
siguiente bloque imprime en la pantalla el valor de la humedad que lee el
sensor, y el de la humedad de corte leída por el potenciómetro*/
lcd.setCursor(0,0); lcd.print("HUM. PLANTA:"); lcd.setCursor(12,0);
lcd.print(humedad); lcd.setCursor(15,0); lcd.print("%"); lcd.setCursor(0,1);
lcd.print("HUM. CORTE:"); lcd.setCursor(12,1); lcd.print(humedadcorte);
lcd.setCursor(15,1); lcd.print("%"); if(humedad<10)
{
digitalWrite(control,HIGH);
}
else if(humedad>humedadcorte)
{
digitalWrite(control,LOW);
}

delay(10
00);
lcd.clear(
);