Vous êtes sur la page 1sur 24

Sistema automatizado de riego PlanPal

Por: Daniel Vargas y Diego Chanchay


Electronica para ciencias e ingeniera
Primer semestre 2016-2017

ndice de conenidos

1. Contenido
ndice de conenidos..............................................................................................1
ndice de Ilustraciones..........................................................................................1
2. Descripcin del proyecto................................................................................2
3. Propuesta del proyecto...................................................................................2
I. Objetivos.....................................................................................................2
4. Diseo Mecnico.............................................................................................2
5. Diseo elctrico..............................................................................................4
6. Diseo electrnico..........................................................................................5
II. Configuracin de cada uno de los puertos y sus respectivas conexiones.. 6
7. Lista de piezas y materiales...........................................................................6
8. Presupuesto Real a detalle con valores gastados..........................................7
9. Manual de Operacin y mantenimiento.........................................................7
10. Manual de mantenimiento........................................................................10
11. Cdigo de programacin...........................................................................10

ndice de Ilustraciones

Ilustracin 1. Vista superior del sistema mecanico...............................................................3


Ilustracin 2. Vista frontal del sistema mecnico.................................................................3
Ilustracin 3. Diseo esquemtico de una fuente de voltaje de 9 v............................................4
Ilustracin 4. Diseo final de la fuente de voltaje de 9 v........................................................4
Ilustracin 5. Circuito impreso y sellado en la baquelita........................................................5
Ilustracin 6. Diseo de conexiones de los componentes electrnicos.......................................5
2. Descripcin del proyecto.
El siguiente proyecto es una compilacin de las tcnicas aprendidas en la clase de
electrnica para ciencias de ingeniera y el respectivo laboratorio. Por lo tanto, se
procedi a realizar una maqueta que simula el regado automtico de un sistema de
sembro. El enfoque de dicho proyecto estar direccionado a mantener un ahorro en la
cantidad de agua que se utilice en los procesos de sembro industrial. De esta forma,
mediante un modelo mecnico, elctrico y electrnico, se construy una simulacin de
un sistema automatizado de riego programado. El sistema funciona mediante un
microcontrolador (Arduino Uno) el cual ejecuta las tareas fundamentales programadas
en la memoria del Arduino. Mediante un sensor de humedad, se realiza un escaneo del
nivel de agua en la tierra de una maceta para sembro. Si la informacin ejecutada por el
sensor muestra un valor de humedad entre (1000 y 600) lo cual implica que la tierra se
encuentra seca, el sistema procede a activar la bomba de agua y por lo tanto a regar la
maceta de sembro. Por otro lado, si el sensor de humedad, registra un valor entre (600 y
370) lo cual implica que la tierra se encuentra humedad, el sistema procede a no activar
la bomba de agua. Adems, el sistema de bomba se regulariza y se apaga
automticamente hasta obtener un valor de humedad permitido entre 600 y 370. Si el
sistema del sensor detecta un nivel de humedad inferior a 370, inmediatamente emite
una seal de voltaje hacia el rele de tal manera que apague la bomba de agua y se
interrumpa el flujo de riego. De esta manera se busca ahorrar la cantidad de agua que se
utiliza para los sembros convencionales.

3. Propuesta del proyecto.


EL proyecto busca beneficiar los sistemas de riego que son utilizados de manera casera
e industrial. Mediante el sistema de riego automatizado, se emplea ahorrar la cantidad
de agua que se desperdicia por la falta de conocimiento al momento der evaluar el nivel
de humedad que una planta o sembro necesita para satisfacer las necesidades dentro del
crecimiento. Adems busca ahorrar tiempo y mano de obra, ya que funciona mediante
un sensor que activa una bomba automticamente cuando las condiciones en el terreno
as lo dispongan.

I. Objetivos.
Buscar un ahorro considerable en el riego de un sembro o planta casera
mediante el sistema de riego automatizado.
Mediante la teora y experiencia evaluada en e laboratorio de electrnica,
asegurar que la eficientica tanto energtica como mecnica, se garantiza en el
sistema de riego automatizado.

4. Diseo Mecnico.

Dentro del diseo mecnico, el sistema de riego automatizado presenta una geometra
relativamente sencilla. Los componentes principales son un soporte de madera que
anclara a una caja que contiene los circuitos responsables del funcionamiento
electrnico del sistema de riego automatizado. Adems, se utilizara un tanque de
coleccin de agua que para ejemplificar el caso tiene la cantidad de fluido necesario
para poder funcionar constantemente el sistema de riego. Para la simulacin, se adjunta
una maceta que contiene tierra.
Vista superior. (Acotada en cm)

ILUSTRACIN 1. VISTA SUPERIOR DEL SISTEMA MECANICO

Vista Frontal (Acotada en cm)

ILUSTRACIN 2. VISTA FRONTAL DEL SISTEMA MECNICO

Dentro del diseo mecnico, se consider que el agua tenga una altura considerable
capaz de que el sistema de bombeo se ejecute con mayor rapidez. La altura mxima de
almacenamiento, ser de 20 cm. Sin embargo, este sistema puede ser autoajustable e
incluso se puede aadir un sistema de mayor capacidad (cm3) e incluso de mayor altura.
La variacin de altura ser eficiente para que la bomba trabaje menos. El material
utilizado para el diseo mecnico es madera de roble. Se eligi este material por
presentar durabilidad y adems consistencia. Para la maseta, durante la presentacin del
proyecto por fines prcticos se consider adaptar una tarrina de plstico, para poder
mejorar la maleabilidad al momento de ubicar el sensor de humedad. De igual forma el
tipo de maseta que se utilice para fines prcticos puede ser variable.

5. Diseo elctrico.
El primer paso que se tom dentro del diseo electrico, fue la de construir una fuente de
voltaje de 9 v que alimentara al Arduino. La fuente de voltaje contiene un transformador
de 120 v -12 v, un puente de diodos, un capacitor de 1000 micro Faradios, un
componente LM7809, un capacitor de 0,01 micro faradios y dos borneras para la
entrada y salida de cables.

ILUSTRACIN 3. DISEO ESQUEMTICO DE UNA FUENTE DE VOLTAJE DE 9 V.

El funcionamiento de esta fuente de voltaje, empieza en la recoleccin de energa elctrica de 120 v


a partir de un transformador que entrega un voltaje de 12 v. Despus atraviesa un puente de diodos
que funciona como rectificador de onda, de tal manera que nos entrega ondas continuas positivas. El
capacitor C1, funciona como un filtro de onda, de tal manera que los picos mximos y mnimos del
voltaje se ajustan. Al pasar por el componente LM7809, la onda toma un rumbo casi constante entre
9 v, sin embargo, se pone un capacitor C2 para poder eliminar el ruido elctrico.

Una vez concebido el diseo esquemtico y el funcionamiento de la fuente de voltaje, se procedi a


disear el esquema elctrico que ser impreso en una baquelita de cobre. Para este paso, se procede a
utilizar el sistema conversor de Proteus, con lo cual se obtuvo el siguiente circuito.

ILUSTRACIN 4. DISEO FINAL DE LA FUENTE DE VOLTAJE DE 9 V.

En esta vista se puede apreciar cmo van las conexiones en la baquelita, de tal manera
que el siguiente paso es imprimir en papel fotogrfico, la rplica exacta en modo espejo
para poder traspasar la tinta de la impresin lser hacia una baquelita. Despus se debe
ubicar cada uno de los componentes para su posterior soldadura.
ILUSTRACIN 5. CIRCUITO IMPRESO Y SELLADO EN LA BAQUELITA.

La ilustracin 5, muestra el circuito que se sella en la baquelita. Para este proceso se


debe lijar la superficie de cobre, despus planchar el papel fotogrfico hasta que quede
impreso y finalmente remojar en acido frrico disuelto en agua, de tal manera que solo
queden los caminos pintados en cobre. Despus se procede a taladrar cada uno de los
huecos donde se colocan los componentes electrnicos.
Para alimentar la bomba de agua de 12 v, se utiliz una fuente de poder fabricada que
emite un voltaje de 12 v. En este aspecto no se utiliz una conexin extra que sea
planificada con un diseo elctrico en Proteus. Por opciones limitadas de tiempo
simplemente se auto modifico la conexin de una fuente hacia la bomba de agua.

6. Diseo electrnico.
En el diseo electrnico, se encuentran todos los circuitos que tienen una funcin
operacional en cada proceso de la informacin programada. En el siguiente esquema se
procede a identificar el sistema de conexiones para el diseo electrnico.

ILUSTRACIN 6. DISEO DE CONEXIONES DE LOS COMPONENTES ELECTRNICOS.

Descripcin: El Arduino Uno, es el cerebro de todo el proyecto. Se encarga de procesar


la informacin que previamente se subi mediante la compilacin de un lenguaje de
programacin. Con un teclado tipo membrana, se procede a registrar las ordenes que se
ven sujetas en una pantalla led. Mediante este dispositivo se sube las ordenes por medio
del usuario para proceder a correr el sistema de riego automatizado en cada una de sus
fases. Para poder controlar el flujo de energa elctrica hacia la bomba, al momento de
que las condiciones sujetas por el sensor de humedad sean las ptimas, se activa el rel
de tal manera que permite el flujo de energa elctrica hacia la bomba. De igual forma
cuando las condiciones sean las ptimas para finalizar el proceso de riego, el rele recibe
la orden por parte del micro controlador, de cerrar el flujo de electricidad. Cabe recalcar
que existen dos fuentes de voltaje independientes, para el Arduino (9v) y el
funcionamiento de la bomba (12v).

II. Configuracin de cada uno de los puertos y sus respectivas


conexiones.

La pantalla tiene 4 entradas la SSA, SSL, GND Y 5V. La entrada SSA de la pantalla va
conectada a la SSA del Arduino. La entrada SSL de la pantalla va conectada a la SSL
del Arduino. Tanto las entradas de voltaje a 5v y las tierras, siempre deben ser
emparejadas entre el componente y el adruino mediante el uso de la protoboard.
Despus tenemos el sensor de humedad, el cual se encuentra conectado a su
componente. La salida de 5v del sensor debe estar conectada a la entrada de 5 v del
Arduino y de igual formas las tierras deben estar emparejadas. Adems, la entrada
digital del sensor debe ir direccionada a la entrada A0, del Arduino. Esta ltima entrada
es la no analgica del arduino. Para el rel, este debe estar conectado un cable al
negativo de la bomba y el otro cable al negativo del transformador. Por otro lado, el
positivo del transformador va directo a la bomba. El rel tiene una entrada a 5 v una
entrada a tierra que va emparejado mediante la protoboard. El ultimo pin del rel, va
conectado al pin 7 del Arduino. Finalmente, para la pantalla, las primeras 4 salidas son
de filas y van conectadas a los puertos de 3 a la 6 del Arduino. La columna 8 de la
pantalla, va conectada a la entrada 2 del Arduino.

7. Lista de piezas y materiales.

Materiales
Soporte y estructura de madera
Tubo flexible de plstico
Maceta estndar
Tanque de almacenamiento
Arduino Uno
Baquelitas
2 Capacitores
Puente de diodos
Componente LM7809
Sensor de Humedad
Bomba de Agua
Teclado Membrana
Pantalla LCD
Cables tipo MM.
Cables tipo MH.
Fuente de Voltaje de 12 V
Rel electromecnico
2 Borneras

8. Presupuesto Real a detalle con valores gastados.

Materiales Costo (dolares)


Soporte y estructura de madera 40
Tubo flexible de plstico 0,50
Maceta estndar 0,50
Tanque de almacenamiento 1
Arduino Uno 30
Baquelitas 1
2 Capacitores 1
Puente de diodos 5
Componente LM7809 5
Sensor de Humedad 12
Bomba de Agua 12
Teclado Membrana 3
Pantalla LCD 12
Cables tipo MM. 2.50
Cables tipo MH. 1
Fuente de Voltaje de 12 V 10
Rel electromecnico 1
2 Borneras 1
Total 138.50

9. Manual de Operacin y mantenimiento.


Bienvenido a PLantPal vamos a comenzar
Para analizar la humedad presiona B Se procede a analizar la humedad

Al medir el nivel de humeda de la planta se obtienen 4


casos Caso 3 : Tu
Caso 2: Sensor Caso 4: Tu planta
Caso 1: Se procede planta puede
desconectado, se encuentra
a relaizar el riego ahogarse, retira
de la planta revisa tus bien, verfica
el tapon de la
conexciones. luego
maceta.

Para el caso 1
Caso 1a: Presiona a Caso 1b: Presiona B Para salir presione A y
para riego automatico. para riego manual. luego presione C
En este caso la planta tiene un nivel de
humedad optimo, por lo tanto no necesita ser
regada. El programa avisa y termina.

Caso 4
En este caso, el nivel de humedad es exesivo.
Por lo tanto el sensor de humedad detecta una
seal que no permite el flujo de agua hacia la
maceta. Tanto el riego manual como automatico

Caso 3
queda inhabilitado.
El sensor esta desconectado de la maceta.
Es necesario verificar la posicion del sensor.
Recordar que en sensor se debe ubicar en la

Caso 2
parte inferior de la maceta.
El nivel de humedad es bajo y la planta debe
ser regada. En este caso puede regar el usuario
o la bomba.
El sistema permite la eleccion de un tipo de
riego, ya sea automatico o manual.

Caso 1
El sistema monitorea el nivel de humedad
constantemente. En un momento optimo, el
sistema avisa sobre la finalizacion del proceso.
10. Manual de mantenimiento.

Siempre desconectar primero la bomba y luego el


circuito

Para encender conecte el circuito y luego la bomba.

Para realizar el manteniemiento en la tuberia o


drenaje de la bomba, desconecte de la fuente de
poder

Limpiar las aspas del sensor de humedad con un


pauelo fino de fibra.

Mantener la caja de circuitos en un lugar fresco y


cerrado, para evitar cualquier contacto con los
fluidos.

Si se ubica el sistema al aire libre, percatarse que se


encuentre con recubrimiento y un sistema de
enfriamiento para posibles sobrecalentamiento.

11. Cdigo de programacin.

#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Keypad.h>
LiquidCrystal_I2C LCD(0x27,20,4);
const byte Filas = 4;
const byte Cols = 1;

byte Pins_Filas[] = {6, 5, 4, 3};


byte Pins_Cols[] = {2};

char Teclas [ Filas ][ Cols ] =


{
{'A'},
{'B'},
{'C'},
{'D'},

};

Keypad teclado = Keypad (makeKeymap(Teclas), Pins_Filas, Pins_Cols, Filas, Cols);

int rele = 7;

void setup() {

pinMode(7, OUTPUT);
digitalWrite(12, LOW);

Serial.begin(9600);
LCD.begin(20, 4);
LCD.backlight();
LCD.init();

inicio();

delay(50);

void inicio() {
LCD.clear();
LCD.setCursor (0,0);
LCD.print("Bienvenido a ");
LCD.setCursor (0,1);
LCD.print ("PlantPal");
LCD.setCursor(0,2);
LCD.print("vamos a ");
LCD.setCursor(0,3);
LCD.print("comenzar ");
delay(5000);
LCD.clear();
LCD.setCursor (0,0);
LCD.print("Para ");
LCD.setCursor (0,1);
LCD.print ("analizar la");
LCD.setCursor(0,2);
LCD.print("humedad presiona ");
LCD.setCursor(0,3);
LCD.print("B ");
}

void loop() {

int nivelhumedad = analogRead(A0);


char key_ini2 = teclado.getKey();

if (key_ini2 == 'B')
{

LCD.clear();
LCD.setCursor(0,0);
LCD.print("Vamos a medir ");
LCD.setCursor(0,1);
LCD.print("el nivel de");
LCD.setCursor(0,2);
LCD.print("humedad de la");
LCD.setCursor(0,3);
LCD.print("Planta");
delay(5000);
if(nivelhumedad >= 1000)
{
Menu_Humedad(3);

}
if(nivelhumedad < 1000 && nivelhumedad >= 600)
{
Menu_Humedad(0);
Menu_Riego();
}

if(nivelhumedad < 600 && nivelhumedad >= 370)


{
Menu_Humedad(1);
Menu_NORiego();
}

if(nivelhumedad < 370)


{
Menu_Humedad(2);
Menu_Destape();
}

inicio();
}

nivelhumedad = analogRead(A0);
Serial.println(nivelhumedad);

delay(10);
}

void Menu_Humedad(int tipo){

switch(tipo)
{
case 0:
{
LCD.clear();
LCD.setCursor(0,0);
LCD.print("Resultado Listo");
LCD.setCursor(0,1);
LCD.print(" ");
LCD.setCursor(0,2);
LCD.print("Tu planta");
LCD.setCursor(0,3);
LCD.print("requiere riego");

delay(3000);

LCD.clear();
LCD.setCursor(0,0);
LCD.print("Presiona A");
LCD.setCursor(0,2);
LCD.print("Para riego");
LCD.setCursor(0,3);
LCD.print("Automatico");

delay(3000);

LCD.clear();
LCD.setCursor(0,0);
LCD.print("Presiona B");
LCD.setCursor(0,3);
LCD.print("Para riego manual");
delay(3000);

break;
}
case 1:
{
LCD.clear();
LCD.setCursor(0,0);
LCD.print("Tu planta se");
LCD.setCursor(0,1);
LCD.print("encuentra bien");
LCD.setCursor(0,2);
LCD.print("verifica luego");
LCD.setCursor(0,3);
LCD.print("Gracias");

delay(4000);

break;
}
case 2:
{
LCD.clear();
LCD.setCursor(0,0);
LCD.print("Tu planta ");
LCD.setCursor(0,1);
LCD.print("puede ahogarse");
LCD.setCursor(0,2);
LCD.print("reira el tapon ");
LCD.setCursor(0,3);
LCD.print("de la maceta");

delay(4000);

break;
}
case 3:
{
LCD.clear();
LCD.setCursor(0,0);
LCD.print("SENSOR ");
LCD.setCursor(0,1);
LCD.print("DESCONECTADO");
LCD.setCursor(0,2);
LCD.print("REVISA ");
LCD.setCursor(0,3);
LCD.print("TUS CONECCIONES");

delay(4000);

break;
}
}
}

void Menu_Riego() {

char key_ini3 = teclado.getKey();

while(key_ini3 != '*')
{
char key_tipo = teclado.getKey();
if(key_tipo == 'A')
{
Menu_Automatico();
}

if(key_tipo == 'B')
{
Menu_Manual();
}

if(key_tipo == 'C')
{
break;
}

delay(10);
}
}

void Menu_Automatico(){

LCD.clear();

int nivelhumedad2 = analogRead(A0);

char key_ini4 = teclado.getKey();


while(key_ini4 != '*')
{
nivelhumedad2 = analogRead(A0);
key_ini4 = teclado.getKey();

if(nivelhumedad2 < 1000 && nivelhumedad2 >= 600)


{
LCD.clear();

while(nivelhumedad2 < 1000 && nivelhumedad2 >= 600)


{
LCD.setCursor(0,0);
LCD.print("Regando");
LCD.setCursor(0,1);
LCD.print("tu planta");
digitalWrite(rele, HIGH);
nivelhumedad2 = analogRead(A0);
Serial.println(nivelhumedad2);
delay(250);
}

digitalWrite(rele, LOW);

LCD.clear();
}

LCD.setCursor(0,0);
LCD.print("Para salir");
LCD.setCursor(0,1);
LCD.print("presione A");
LCD.setCursor(0,2);
LCD.print("luego");
LCD.setCursor(0,3);
LCD.print("precione C");

if(key_ini4 == 'A')
{
break;
}
delay(10);
}
}

void Menu_Manual(){

LCD.clear();

int nivelhumedad3 = analogRead(A0);

char key_ini5 = teclado.getKey();

while(key_ini5 != '*')
{
nivelhumedad3 = analogRead(A0);
key_ini5 = teclado.getKey();

if(nivelhumedad3 < 1000 && nivelhumedad3 >= 600)


{
LCD.clear();

while(nivelhumedad3 < 1000 && nivelhumedad3 >= 600)


{
LCD.setCursor(0,0);
LCD.print("Comienze");
LCD.setCursor(0,1);
LCD.print("a regar");

nivelhumedad3 = analogRead(A0);
Serial.println(nivelhumedad3);
delay(250);
}

LCD.clear();
}

LCD.setCursor(0,0);
LCD.print("Para salir");
LCD.setCursor(0,1);
LCD.print("presione A");
LCD.setCursor(0,2);
LCD.print("luego");
LCD.setCursor(0,3);
LCD.print("precione C");

if(key_ini5 == 'A')
{
break;
}
delay(10);
}
}

void Menu_NORiego(){

LCD.clear();
char key_ini6 = teclado.getKey();

while(key_ini6 != 'D')
{
LCD.setCursor(0,0);
LCD.print("Presione D");
LCD.setCursor(0,1);
LCD.print("para salir");
key_ini6 = teclado.getKey();
delay(10);
}

void Menu_Destape(){

LCD.clear();

int nivelhumedad4 = analogRead(A0);

char key_ini7 = teclado.getKey();


while(key_ini7 != '*')
{
nivelhumedad4 = analogRead(A0);
key_ini7 = teclado.getKey();

if(nivelhumedad4 < 370)


{
LCD.clear();

while(nivelhumedad4 < 600)


{
LCD.setCursor(0,0);
LCD.print("Analizando");
LCD.setCursor(0,1);
LCD.print("nivel de humedad");

nivelhumedad4 = analogRead(A0);
Serial.println(nivelhumedad4);
delay(250);
}

LCD.clear();
}

LCD.setCursor(0,0);
LCD.print("Para salir");
LCD.setCursor(0,1);
LCD.print("presione A");

if(key_ini7 == 'A')
{
break;
}
delay(10);
}
}

Vous aimerez peut-être aussi