Proyecto Riego Arduino

download Proyecto Riego Arduino

of 14

description

Sistema de Riego con sistema embebido arduino UNO

Transcript of Proyecto Riego Arduino

ProyectoDe RiegoAutomtico Usando Arduino

Desarrollo de productoslvaro Vigueras Alarcnelectrnicos.ndice

Objetivo. 3Justificacin...... 3Obtencin del material... 4Montaje del proyecto.. 5Programacin del proyecto... 7Visualizacin del proyecto. 8Presupuesto... 12Notacin bibliogrfica. 14

OBJETIVO:

El proyecto trata de un sistema de regado automtico, dependiendo de la temperatura y la humedad que haya dentro del invernadero, con el fin de aumentar la comodidad del usuario e imponiendo el tiempo que quiere que est regando, y cada cuanto quiere que riegue su invernadero.

Para ello utilizaremos una maqueta de un invernadero pequeo, una pantalla LCD, un arduino UNO, una electrovlvula y dos macetas para la comprobacin.

Justificacin:

El riego automtico es un invento tanto para uso domstico (regar las macetas de su casa) como para uso industrial (campos de cultivo grandes o pequeos).En nuestro caso es para uso domstico, ya que lo hemos incorporado en un invernadero pequeo.Este trabajo es muy til, ya que las personas no tienen que estar pendientes de cuando tienen que regar sus plantas, o cuanta agua deben echarle, simplemente debern elegir cada cuanto quiere que riegue, y cuanto tiempo quiere que est regando.La comodidad para el usuario, y el despreocupamiento que causa este proyecto de regado automtico es muy alto, pues todas las plantas se mantendrn vivas y con un color vivo dentro de su invernadero domstico.

Compra del materialCompra de material necesario:- Arduino UNO.- Pantalla LCD 2x16.- Sensor de humedad y temperatura.- 2 Potencimetros.- Manguera de 0,5mm de ancho.- Electrovlvula 12 V.- Cables de conexin.- 2 Placas board.- 2 Interruptores.- Pulverizador de agua.- LED Verde 5mm.- 2 Resistencias de 10K .- Caja de plstico pequea.- Invernadero pequeo.

Montaje del proyecto:

En las patillas digitales conectaremos: En la 3 un interruptor. En la 7 otro interruptor.En las patillas analgicas conectaremos: En la A0 el sensor de humedad y temperatura. En la A2 un potencimetro. En la A3 otro potencimetro. En la A4 la patilla SDA de la pantalla LCD. En la A5 la patilla SCL de la pantalla LCD.De la patilla Vin de nuestro Arduino sacamos los 12V que activarn el rel, que a la vez este activar la electrovlvula. Los 12V se los daremos nosotros al Arduino mediante un transformador de 12V. Aunque en mi caso, el transformador no da los 12V, si no que da 15,7 o 15,8V, pero no causa ningn problema, ya que el Arduino soporta ese voltaje.

Programacin del proyecto:

Programamos nuestro proyecto en lenguaje arduino, con su propio programa descargado de la web www.arduino.cc.Antes de empezar a programar, descargamos la librera de la pantalla LCD, ya que nos har falta para poder programarla. Dicha librera se llama LiquidCrystal_I2C.h y la podemos descargar fcilmente de internet.En el programa se diferencia claramente donde est programado cada componente y su funcin, aunque de todas formas doy pequeas explicaciones de por donde vamos en el programa para no liarnos.El programa trata principalmente de que nos muestre en pantalla LCD la temperatura y la humedad, y que cambiando de posicin un interruptor, nos muestre los datos que introducimos mediante los potencimetros. Una vez tengamos los datos que queremos, con otro interruptor, cambindolo de posicin, guarde estos datos y los exponga en la salida de la electrovlvula.Tambin habr un LED, que cuando esta encendido nos indicar cundo est leyendo los datos el Arduino, y cuando no esta encendido no lee nada, simplemente muestra en el LCD los datos.La electrovlvula se activar en el momento en el que nosotros le digamos al Arduino que lea los datos que le estamos metiendo, mientras tanto, la electrovlvula funcionar con los datos anteriores, es decir, si no tenia ningn dato antes, no funcionar.

Visualizacin:Declaramos todas las libreras para poder utilizarlas#define DHT11_PIN 0#include #include LiquidCrystal_I2C lcd(0x27,16,2);Declaramos todas las funciones:byte read_dht11_dat(){ byte i = 0; byte result=0; for(i=0; i< 8; i++) { while(!(PINC & _BV(DHT11_PIN))); // wait for 50us delayMicroseconds(30); if(PINC & _BV(DHT11_PIN)) result |=(1