Documente Academic
Documente Profesional
Documente Cultură
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
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)
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.
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.
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.
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.
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
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.
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Keypad.h>
LiquidCrystal_I2C LCD(0x27,20,4);
const byte Filas = 4;
const byte Cols = 1;
};
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() {
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();
}
inicio();
}
nivelhumedad = analogRead(A0);
Serial.println(nivelhumedad);
delay(10);
}
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() {
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();
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();
while(key_ini5 != '*')
{
nivelhumedad3 = analogRead(A0);
key_ini5 = teclado.getKey();
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();
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);
}
}