1
Proyecto De Riego Automátic o Usando Arduino
2 Desarrollo de productos Álvaro Vigueras Alarcón
electrónicos.
Índice Objetivo……………………………………………………………….
3
Justificación……………...……………………………………….…..
3
Obtención del material….…………….…………………………….
4
Montaje del proyecto………………………………………………..
5
Programación del proyecto….……………………………………..
!isuali"ación del proyecto………………………………………….
#
Presupuesto………………………………..……………………….
%$&otación bibliogr'fica……………………………………………….
$4
3 OB!"#VO$ (l proyecto trata de un sistema de regad)o autom'tico* dependiendo de la temperatura y la +umedad ,ue +aya dentro del invernadero* con el fin de aumentar la comodidad del usuario e imponiendo el tiempo ,ue ,uiere ,ue est- regando* y cada cuanto ,uiere ,ue riegue su invernadero. Para ello utili"aremos una ma,ueta de un invernadero pe,ueo* una pantalla /01* un arduino 2&O* una electrov'lvula y dos macetas para la comprobación.
usti%cación$ (l riego autom'tico es un invento tanto para uso dom-stico regar las macetas de su casa como para uso industrial campos de cultivo grandes o pe,ueos. (n nuestro caso es para uso dom-stico* ya ,ue lo +emos incorporado en un invernadero pe,ueo. (ste trabajo es muy til* ya ,ue las personas no tienen ,ue estar pendientes de cuando tienen ,ue regar sus plantas* o cuanta agua deben ec+arle* simplemente deber'n elegir cada cuanto ,uiere ,ue riegue* y cuanto tiempo ,uiere ,ue est- regando. /a comodidad para el usuario* y el despreocupamiento ,ue causa este proyecto de regad)o autom'tico es muy alto* pues todas las plantas se mantendr'n vivas y con un color vivo dentro de su invernadero dom-stico.
4 Compra del material 0ompra de material necesario6 7 8rduino 2&O. 7 Pantalla /01 %9$:. 7 ;ensor de +umedad y temperatura. 7 % Potenciómetros. 7 Manguera de <*5mm de anc+o. 7 (lectrov'lvula $% !. 7 0ables de cone9ión. 7 % Placas board. 7 % =nterruptores. 7 Pulveri"ador de agua. 7 /(1 !erde 5mm. 7 % >esistencias de $ @. 7 0aja de pl'stico pe,uea. 7 =nvernadero pe,ueo.
5 Montaje del proyecto:
(n las patillas digitales conectaremos6 7 (n la 3 un interruptor. 7 (n la otro interruptor. (n las patillas analógicas conectaremos6 7 7 7 7 7
(n la 8< el sensor de +umedad y temperatura. (n la 8% un potenciómetro. (n la 83 otro potenciómetro. (n la 84 la patilla ;18 de la pantalla /01. (n la 85 la patilla ;0/ de la pantalla /01.
1e la patilla !in de nuestro 8rduino sacamos los $%! ,ue activar'n el rel-* ,ue a la ve" este activar' la electrov'lvula. /os $%! se los daremos nosotros al 8rduino mediante un transformador de $%!. 8un,ue en mi caso* el transformador no da los $%!* si no ,ue da $5* o $5*#!* pero no causa ningn problema* ya ,ue el 8rduino soporta ese voltaje.
6
7 Programación del proyecto:
Programamos nuestro proyecto en lenguaje arduino* con su propio programa descargado de la Aeb AAA.arduino.cc. 8ntes de empe"ar a programar* descargamos la librer)a de la pantalla /01* ya ,ue nos +ar' falta para poder programarla. 1ic+a librer)a se llama /i,uid0rystalB=%0.+ y la podemos descargar f'cilmente de internet. (n el programa se diferencia claramente donde est' programado cada componente y su función* aun,ue de todas formas doy pe,ueas e9plicaciones de por donde vamos en el programa para no liarnos. (l programa trata principalmente de ,ue nos muestre en pantalla /01 la temperatura y la +umedad* y ,ue cambiando de posición un interruptor* nos muestre los datos ,ue introducimos mediante los potenciómetros. 2na ve" tengamos los datos ,ue ,ueremos* con otro interruptor* cambi'ndolo de posición* guarde estos datos y los e9ponga en la salida de la electrov'lvula. Cambi-n +abr' un /(1* ,ue cuando esta encendido nos indicar' cu'ndo est' leyendo los datos el 8rduino* y cuando no esta encendido no lee nada* simplemente muestra en el /01 los datos. /a electrov'lvula se activar' en el momento en el ,ue nosotros le digamos al 8rduino ,ue lea los datos ,ue le estamos metiendo* mientras tanto* la electrov'lvula funcionar' con los datos anteriores* es decir* si no tenia ningn dato antes* no funcionar'.
8 return resultI
Visualización: Declaramos todas las librerías para poder utilizarlas
S
Ddefine 1EC$$BP=& <
Declaramos todas las variables que emos utilizado:
Dinclude FGire.+H
int electrovalvulaI
Dinclude F/i,uid0rystalB=%0.+H
int a*b*c*dI
/i,uid0rystalB=%0 lcd<9%*$:*%I Declaramos todas las funciones:
byte readBd+t$$Bdat
int interruptor% K 3I int cuantoI int cadaI int interruptor K I
byte i K
int +oras K 83I int estadoI int cambio K
A+ileP=&0 N B!1EC$$BP=&I Aait for 5
int minutos K 8%I
int led K 5I void setup 11>0 QK B!1EC$$BP=&I PO>C0 QK B!1EC$$BP=&I lcd.initI lcd.bacTlig+tI pinMode led*O2CP2CI pinMode interruptor* =&P2CI
9 pinMode interruptor%*=&P2CI ;erial.beginU:<<I S Programamos la electrovalvula
void loop byte d+t$$BdatV5WI
returnI S delayMicroseconds#<I d+t$$Bin K P=&0 N B!1EC$$BP=&I ifd+t$$Bin
byte d+t$$BinI
;erial.printlnYd+t$$ start condition % not metYI
byte iI
returnI
start condition $. pull7doAn io pin from $#ms PO>C0 NK XB!1EC$$BP=&I delay$#I PO>C0 QK B!1EC$$BP=&I
S delayMicroseconds#<I noA ready for data reception for iK
delayMicroseconds4<I 11>0 NK XB!1EC$$BP=&I delayMicroseconds4<I d+t$$Bin K P=&0 N B!1EC$$BP=&I ifd+t$$Bin ;erial.printlnYd+t$$ start condition $ not metYI
11>0 QK B!1EC$$BP=&I PO>C0 QK B!1EC$$BP=&I byte d+t$$Bc+ecTBsum K d+t$$BdatV
10 ;erial.printlnY1EC$$ c+ecTsum errorYI
;erial.printlnYestadoK$YI
S
lcd.printYCemperatura6YI
!ealizamos la regla de tres para transformar los datos del potenciómetro en minutos y oras"
cuanto K analog>ead minutosI cuanto K map cuanto*<*$<%3*$*:$I
lcd.set0ursor$%*<I lcd.printd+t$$BdatV%W* 1(0I lcd.set0ursor$4*<I lcd.printY0YI lcd.set0ursor3*$I lcd.printYEumedad6YI
cada K analog>ead +orasI cada K map cada*<*$<%3*$*%4I ;erial.printlndigital>eadinterr uptorI delay5<<I estado K digital>eadinterruptorI #acemos que nos lo muestre en pantalla
lcd.printd+t$$BdatV
if estado K cambio
lcd.set0ursor $<*<I
lcd.print cuantoI
lcd.clearI cambio K estadoI S if estadoKKE=ZE
lcd.set0ursor $3*<I lcd.print YminYI lcd.set0ursor<*$I lcd.print Y0ada6YI lcd.set0ursor $5*$I
11 lcd.print Y+YI
bKanalog>eadcadaI
lcd.set0ursor $<*$I lcd.print cadaI0ada cuanto tiempo ,uiero ,ue riegue
delay 5<<I cKa\:
lcd.set0ursor<*<I if cuantoF$< lcd.set0ursor $$*<I lcd.printY YIS if cadaF$< lcd.set0ursor $$*$I lcd.printY YIS S Con el interruptor $ leemos lo que emos marcado en el potenciómetro"
if interruptor%KKE=ZE digitalGriteled* E=ZEI
;erial.printlndI delaybI digitalGriteelectrovalvula*E=Z EI delayaI digitalGriteelectrovalvula*/O GI S else digitalGriteelectrovalvula*/O GI
digitalGriteled*/OGI
cKmapcuanto*$*:$*$*3::<I dKmapcada*$*%4*$*##4<I aKanalog>eadcuantoI
S S
Presupuesto: Producto
%ombre
&nidades
Precio'&nida d
(otal
8rduino 2&O
$
%:*5:]
%:*5: ]
Pantalla /01
$
$*%:]
$*%: ]
$
:*$#]
:*$#]
%
%*%%]
4*44]
;ensor Eumedad ^ temperatur a Potencióme tro
Manguera 5 mm.
$
5*UU
5*UU
(lectrov'lv ula
$
$5]
$5]
0ables de cone9ión
$
4*5<]
4*5<]
Placa oard
%
:*5<]
$3]
=nterruptor
%
$*3#]
%*:]
/(1 !erde 5mm
$
<*$5]
<*$5]
>esistencia $
%
<*<:]
<*$%]
Pulveri"ado
$
3*5<]
3*5<]
r de agua 0aja pe,uea de pl'stico
=nvernadero s+oTet ()(*+
%otación bibliogr,fica:
AAA.iTea.com AAA.electan.com 0at'logo 1ieltron. Material instituto. a"ar Marte
$
$]
$]
$
$3*45 ]
$3*45 ] $$3*#