Está en la página 1de 62

PROYECTO FIN DE CARRERA

CONTROL AUTOMÁTICO DE UN SISTEMA DE RIEGO

Ingeniero Técnico Industrial, especialidad en Electrónica Industrial

Autor: Dailos Badel Ramos Valido Tutores: Francisco Javier del Pino Suárez
Juan Antonio Jiménez Rodríguez
Fecha: Junio 2015

1
Estructura

 Bloque I
 Introducción
 Objetivos
 Bloque II
 Especificaciones
 Plataforma de desarrollo Arduino
 Módulo de comunicación inalámbrica XBee
 Módulo de comunicación GPRS
 Implementación
 Bloque III
 Presupuesto
 Conclusiones

2
Estructura

 Bloque I
 Introducción
 Objetivos
 Bloque II
 Especificaciones
 Plataforma de desarrollo Arduino
 Módulo de comunicación inalámbrica XBee
 Módulo de comunicación GPRS
 Implementación
 Bloque III
 Presupuesto
 Conclusiones

3
Introducción

 ¿Porque un sistema de riego?


 El agua es un bien escaso, necesaria para las plantas.
 Necesidades del sector agrícola en Canarias.
 Ventajas de regadío automatizado.
 Búsqueda de una solución tecnológica.
 Posibilidades de crecimiento o desarrollo.

4
Introducción

 Elementos en una instalación de riego


 Acometida de agua

 Depósitos

 Bombas de agua

 Canales y tuberías

 Válvulas y llaves

 Controlador

5
Introducción

 Titulación especialidad en Electrónica


 Diseño con componentes electrónicos

 Modalidades de PFC
 B. Estudios o Trabajos Técnicos o Tecnológicos
 Estudio de una idea o prototipo

 Tendencias
 Software libre y hardware de código abierto

 Redes de sensores inalámbricas

6
Objetivos

Diseño
Diseño ee implementación
implementación del
del control
control automático
automático de
de
un
un sistema
sistema de
de riego
riego

 El objetivo puede desglosarse en las siguientes tareas:


 Dimensionar el número de sensores, actuadores y nodos.
 Características de plataforma Arduino como controlador.
 Características de las redes de sensores sin hilos.
 Elección de los componentes que van a formar el sistema.
 Montaje y testeo de la implementación.

7
Estructura

 Bloque I
 Introducción
 Objetivos
 Bloque II
 Especificaciones
 Plataforma de desarrollo Arduino
 Módulo de comunicación inalámbrica XBee
 Módulo de comunicación GPRS
 Implementación
 Bloque III
 Presupuesto
 Conclusiones

8
Especificaciones

 Esquema
 Zona 0: R0
 Zona 1: E1
 Zona 2: E2
 Zona 3: E3

E3

E2
ZONA 3

ZONA 2

ZONA 0

E1

ZONA 1

9
Especificaciones

Esquema
a c o m e t id a E2

 Zona 0: R0
 Zona 1: E1 E3
ZONA 2
ZONA 3
 Zona 2: E2
 Zona 3: E3
R

ZONA 0
E3

E2
ZONA 3

ZONA 2

ZONA 0

E1

ZONA 1
E1

ZONA 1

10
Especificaciones

 Esquema
 Zona 1
 Entrada analógica  Sensor humedad suelo: A0
 Entrada analógica  Sensor iluminación: A1
 Entrada digital  Sensor nivel batería: D8

a c o m e t id a E2
Z ig B e e

b a t e r ia r e g u la d o r p la c a s o la r
E1
E3
+ _ v o lt a g e
ZONA 2
ZONA 3 6 V - > 3 .7 V

I -> S 1
I -> I1 n iv e l
R

I -> B 1 b a t e r ia

ZONA 0
sensor
humedad
s u e lo

sensor
E1
ilu m in a c ió n

ZONA 1

11
Especificaciones

 Esquema
 Zona 0
 Salida digital  Relé iluminación: D9
 Salida digital  Relé electroválvula: D10
 Entrada analógica  Sensor de caudal: A0
 Entrada digital  Sensor nivel batería: D8
Z ig B e e
a c o m e t id a E2

b a t e r ia r e g u la d o r FA
+ _ v o lt a g e 12V
1 2 V - > 3 .7 V
R
E3
ZONA 2
ZONA 3 n iv e l
O -> R 0 b a t e r ia
I -> C 0 c o n v e rs o r
I -> B 0 v o lt a g e
3 .7 V - > 1 2 V

r e lé
5 V ->1 2 V
ZONA 0

r e lé
e le c t r o v á lv u la 5 V -> 2 2 0 V a c

E1
c a u d a lim e t r o B o m b illa s

ZONA 1

12
Especificaciones

 Esquema
 Zona 2
 Entrada digital  Sensor nivel agua vacio: D9
 Entrada digital  Sensor nivel agua lleno: D10
 Entrada digital  Sensor nivel batería: D8

a c o m e t id a E2
Z ig B e e b a t e r ia r e g u la d o r
+ _ v o lt a g e
1 2 V - > 3 .7 V
E2

E3
ZONA 2
ZONA 3 n iv e l
I -> N A 2 b a t e r ia a e ro g e n e ra d o r
I -> N B 2
I -> B 2
R

n iv e l a g u a
ZONA 0
lle n o
d e p ó s it o

n iv e l a g u a
v a c io
E1

ZONA 1

13
Especificaciones

 Esquema
 Zona 3
 Salida digital  Relé bomba agua: D9
 Entrada digital  Sensor nivel batería: D8
A c o m e t id a a g u a

Z ig B e e r e g u la d o r m ic r o h y d r o
b a t e r ia
_ v o lt a g e g e n e r a to r
+

1 2 V - > 3 .7 V
a c o m e t id a E2 E3

D
n iv e l
b a t e r ia
E3 O -> M 3
ZONA 2
ZONA 3 I -> B 3 FA
12V

d e p ó s it o

ZONA 0

bomba agua

E1

ZONA 1

14
Especificaciones

 Componentes del diseño  1 bomba de agua


 4 placas Arduino  2 relé 5 V a 12 V

 4 shield XBee y 4 XBee serie 1  1 electroválvula


 3 reguladores de voltaje

 1 shield GPRS y 1 GPRS  1 sensor de caudal


 4 baterías

 1 sensor humedad de suelo  1 placa solar


 2 sensores de nivel de
líquidos

 1 mini aerogenerador
 1 sensor iluminación
 1 bombilla

 4 sensores de nivel de  1 micro hidrogenerador


batería
15
Plataforma de desarrollo Arduino

 Arduino
 plataforma de desarrollo compuesta por placa I/O
 ventajas:
 Ser asequibles.
 Multi-Plataforma.
 Entorno de programación simple y directo.
 Software ampliable y de código abierto.
 Hardware ampliable y de código abierto.
Microcontrolador ATmega328
Voltaje de funcionamiento 5V
Alimentación (recomendada) 7-12V
Voltaje máximo de entrada 20V
Pines digitales I/O 14 (de los cuales 6 dan salida PWM)
Pines de entrada analógica 6
Corriente DC por I/O Pin 40mA
Corriente DC para el pin 3.3V 50mA
Memoria Flash 32kb (ATmega328) 0.5kb usados por
bootloader
SRAM 2kb (ATmega328)
EEPROM 1kb (ATmega328)
Reloj 16 MHz
16
Plataforma de desarrollo Arduino

 Arduino Uno
 Ejemplo parpadear un led
Lenguaje C
•Estructura
void setup(): Inicialización
void loop(): Bucle
•Estructuras de control
if (comparador) { }
else if (comparador) { }
else { }
•Funciones digitales/analógicas
pinMode(pin, mode)
digitalRead(pin)
digitalWrite(pin)
analogRead(pin)

17
Plataforma de desarrollo Arduino

 Arduino Uno
 Ejemplo parpadear un led
Lenguaje C
•Estructura
void setup(): Inicialización
void loop(): Bucle
•Estructuras de control
if (comparador) { }
else if (comparador) { }
else { }
•Funciones digitales/analógicas
pinMode(pin, mode)
digitalRead(pin)
digitalWrite(pin)
analogRead(pin)

18
Plataforma de desarrollo Arduino

 Arduino Uno
 Ejemplo parpadear un led
Lenguaje C
•Estructura
void setup(): Inicialización
void loop(): Bucle
•Estructuras de control
if (comparador) { }
else if (comparador) { }
else { }
•Funciones digitales/analógicas
pinMode(pin, mode)
digitalRead(pin)
digitalWrite(pin)
analogRead(pin)

19
Plataforma de desarrollo Arduino

 Arduino Uno
 Ejemplo parpadear un led

20
Plataforma de desarrollo Arduino

 Arduino Uno
 Ejemplo parpadear un led

21
Plataforma de desarrollo Arduino

 Arduino Uno
 Ejemplo parpadear un led

22
Plataforma de desarrollo Arduino

 Arduino Uno
 Ejemplo parpadear un led

23
Módulo de comunicación inalámbrica XBee

 XBee
 Los módulos serie 1 utilizan XBee 802.15.4.
 Frecuencia de 2,5 GHz.
 Distancia de transmisión de hasta 100m.
 Redes punto a punto o estrella.

24
Módulo de comunicación inalámbrica XBee

 XBee
 Se conecta a la placa Arduino Uno a través del módulo de
comunicación XBee para comunicarse de forma inalámbrica.

25
Módulo de comunicación inalámbrica XBee

 XBee
 Ejemplo de programación nodo coordinador y nodo remoto
//entradas analógicas de los tres sensores
int sens0 = 0;
int sens1 = 1;
int sens2 = 2;
// variables auxiliares
nodo coordinador nodo remoto int val0 = 0;
int val1 = 0;
int val2 = 0;
int count = 0;
void setup(){
Serial.begin(19200);
}
void sendData(int num, int data1,int data2,int data3){
Serial.flush();
Serial.println("Luminosidad:");
Serial.println(data1);
Serial.print("\n");
Serial.flush();
Serial.println("Humedad:");
Serial.println(data2);
Serial.println("\n");
Serial.flush();
Serial.println("Temperatura:");
Serial.println(data3);
Serial.println("\n");
}
void loop(){
while (count <= 10000){
//lectura de los tres sensores
val0 = analogRead(sens0);
val1 = analogRead(sens1);
val2 = analogRead(sens2);
//se llama a la función encargada de enviar los datos leídos por
los sensores
sendData(count, val0,val1,val2);
delay(1000);

26
Módulo de comunicación inalámbrica XBee

 XBee
 Ejemplo de programación nodo coordinador y nodo remoto
//entradas analógicas de los tres sensores
int sens0 = 0;
int sens1 = 1;
int sens2 = 2;
// variables auxiliares
nodo coordinador nodo remoto int val0 = 0;
int val1 = 0;
int val2 = 0;
int count = 0;
void setup(){
Serial.begin(19200);
}
void sendData(int num, int data1,int data2,int data3){
Serial.flush();
Serial.println("Luminosidad:");
Serial.println(data1);
Serial.print("\n");
Serial.flush();
Serial.println("Humedad:");
Serial.println(data2);
Serial.println("\n");
Serial.flush();
Serial.println("Temperatura:");
Serial.println(data3);
Serial.println("\n");
}
void loop(){
while (count <= 10000){
//lectura de los tres sensores
val0 = analogRead(sens0);
val1 = analogRead(sens1);
val2 = analogRead(sens2);
//se llama a la función encargada de enviar los datos leídos por
los sensores
sendData(count, val0,val1,val2);
delay(1000);

27
Módulo de comunicación inalámbrica XBee

 XBee
 Ejemplo de programación nodo coordinador y nodo remoto

28
Módulo de comunicación inalámbrica XBee

 XBee
 Ejemplo de programación nodo coordinador y nodo remoto

29
Módulo de comunicación inalámbrica XBee

 XBee
 Ejemplo de programación nodo coordinador y nodo remoto

30
Módulo de comunicación inalámbrica XBee

 XBee
 Ejemplo de programación nodo coordinador y nodo remoto

31
Módulo de comunicación GPRS

 GPRS
 Incluye el módulo de comunicación HiLo de SAGEM.
 Se puede enviar datos por SMS o hacer llamadas perdidas
desde el Arduino a otros dispositivos móviles o a otro Arduino
conectado a este módulo.

32
Módulo de comunicación GPRS

 GPRS
 Ejemplo envío SMS

33
Implementación

 Pruebas y resultados
 Prueba individual de cada nodo
 Pruebas de transmisión inalámbrica entre nodos

 Comandos de control
Commando 1 Comando 2 Definición
OFF ON
E1LUZ 0 1 Nodo E1 Iluminación
E1HUM 0 1 Nodo E1 Humedad
E1BAT 0 1 Nodo E1 Batería
E2NIA 0 1 Nodo E2 Nivel agua superior
E2NIB 0 1 Nodo E2 Nivel agua inferior
E2BAT 0 1 Nodo E2 Batería
E3BAT 0 1 Nodo E3 Batería
R0BOM 0 1 Nodo R0 Activar bomba agua

34
Implementación

 Pruebas y resultados
 Prueba individual de cada nodo
 Pruebas de transmisión inalámbrica entre nodos

 Comandos de control
E1LUZ 0

Commando 1 Comando 2 Definición


OFF ON E1 R

E1LUZ 0 1 Nodo E1 Iluminación ZO NA 1 ZONA 0

E1HUM 0 1 Nodo E1 Humedad


E1BAT 0 1 Nodo E1 Batería
E2NIA 0 1 Nodo E2 Nivel agua superior
E2NIB 0 1 Nodo E2 Nivel agua inferior
E2BAT 0 1 Nodo E2 Batería
E3BAT 0 1 Nodo E3 Batería
R0BOM 0 1 Nodo R0 Activar bomba agua

35
Implementación

 Pruebas y resultados
 Prueba individual de cada nodo
 Pruebas de transmisión inalámbrica entre nodos

 Comandos de control
E1LUZ 0

Commando 1 Comando 2 Definición


OFF ON E1 R

E1LUZ 0 1 Nodo E1 Iluminación ZO NA 1 ZONA 0

E1HUM 0 1 Nodo E1 Humedad


E1BAT 0 1 Nodo E1 Batería
E2NIA 0 1 Nodo E2 Nivel agua superior
E2NIB 0 1 Nodo E2 Nivel agua inferior E1LUZ 1
E2BAT 0 1 Nodo E2 Batería
E3BAT 0 1 Nodo E3 Batería
R0BOM 0 1 Nodo R0 Activar bomba agua E1 R

ZONA 1 ZONA 0

36
Implementación
In i c i a l i z a c i ó n

Programación zona 1
C o n f ig u r a c ió n
 p u e r t o S e r ie

C o n f ig u r a c ió n
e n t r a d a s / s a lid a s

L e c tu ra s e n s o r
ilu m in a c ió n

E n v ía E 1 L U Z 0 NO SI
Il u m i n a c i ó n E n v ía E 1 L U Z 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
h u m e d a d s u e lo

E n v ía E 1 H U M 0 NO SI
hum edad E n v ía E 1 H U M 1
a l p u e r t o s e r ie X B e e s u e lo b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
b a te ría

E n v ía E 1 B A T 0 NO SI
b a te ría E n v ía E 1 B A T 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

R e ta r d o

37
Implementación
In i c i a l i z a c i ó n

Programación zona 1
C o n f ig u r a c ió n
 p u e r t o S e r ie

C o n f ig u r a c ió n
e n t r a d a s / s a lid a s

L e c tu ra s e n s o r
ilu m in a c ió n

E n v ía E 1 L U Z 0 NO SI
Il u m i n a c i ó n E n v ía E 1 L U Z 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
h u m e d a d s u e lo

E n v ía E 1 H U M 0 NO SI
hum edad E n v ía E 1 H U M 1
a l p u e r t o s e r ie X B e e s u e lo b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
b a te ría

E n v ía E 1 B A T 0 NO SI
b a te ría E n v ía E 1 B A T 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

R e ta r d o

38
Implementación
In i c i a l i z a c i ó n

Programación zona 1
C o n f ig u r a c ió n
 p u e r t o S e r ie

C o n f ig u r a c ió n
e n t r a d a s / s a lid a s

L e c tu ra s e n s o r
ilu m in a c ió n

E n v ía E 1 L U Z 0 NO SI
Il u m i n a c i ó n E n v ía E 1 L U Z 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
h u m e d a d s u e lo

E n v ía E 1 H U M 0 NO SI
hum edad E n v ía E 1 H U M 1
a l p u e r t o s e r ie X B e e s u e lo b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
b a te ría

E n v ía E 1 B A T 0 NO SI
b a te ría E n v ía E 1 B A T 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

R e ta r d o

39
Implementación
In i c i a l i z a c i ó n

Programación zona 1
C o n f ig u r a c ió n
 p u e r t o S e r ie

C o n f ig u r a c ió n
e n t r a d a s / s a lid a s

L e c tu ra s e n s o r
ilu m in a c ió n

E n v ía E 1 L U Z 0 NO SI
Il u m i n a c i ó n E n v ía E 1 L U Z 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
h u m e d a d s u e lo

E n v ía E 1 H U M 0 NO SI
hum edad E n v ía E 1 H U M 1
a l p u e r t o s e r ie X B e e s u e lo b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
b a te ría

E n v ía E 1 B A T 0 NO SI
b a te ría E n v ía E 1 B A T 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

R e ta r d o

40
Implementación
In i c i a l i z a c i ó n

Programación zona 1
C o n f ig u r a c ió n
 p u e r t o S e r ie

C o n f ig u r a c ió n
e n t r a d a s / s a lid a s

L e c tu ra s e n s o r
ilu m in a c ió n

E n v ía E 1 L U Z 0 NO SI
Il u m i n a c i ó n E n v ía E 1 L U Z 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
h u m e d a d s u e lo

E n v ía E 1 H U M 0 NO SI
hum edad E n v ía E 1 H U M 1
a l p u e r t o s e r ie X B e e s u e lo b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
b a te ría

E n v ía E 1 B A T 0 NO SI
b a te ría E n v ía E 1 B A T 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

R e ta r d o

41
Implementación
In i c i a l i z a c i ó n

Programación zona 1
C o n f ig u r a c ió n
 p u e r t o S e r ie

C o n f ig u r a c ió n
e n t r a d a s / s a lid a s

L e c tu ra s e n s o r
ilu m in a c ió n

E n v ía E 1 L U Z 0 NO SI
Il u m i n a c i ó n E n v ía E 1 L U Z 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
h u m e d a d s u e lo

E n v ía E 1 H U M 0 NO SI
hum edad E n v ía E 1 H U M 1
a l p u e r t o s e r ie X B e e s u e lo b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
b a te ría

E n v ía E 1 B A T 0 NO SI
b a te ría E n v ía E 1 B A T 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

R e ta r d o

42
Implementación
In i c i a l i z a c i ó n

Programación zona 1
C o n f ig u r a c ió n
 p u e r t o S e r ie

C o n f ig u r a c ió n
e n t r a d a s / s a lid a s

L e c tu ra s e n s o r
ilu m in a c ió n

E n v ía E 1 L U Z 0 NO SI
Il u m i n a c i ó n E n v ía E 1 L U Z 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
h u m e d a d s u e lo

E n v ía E 1 H U M 0 NO SI
hum edad E n v ía E 1 H U M 1
a l p u e r t o s e r ie X B e e s u e lo b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
b a te ría

E n v ía E 1 B A T 0 NO SI
b a te ría E n v ía E 1 B A T 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

R e ta r d o

43
Implementación
In i c i a l i z a c i ó n

Programación zona 1
C o n f ig u r a c ió n
 p u e r t o S e r ie

C o n f ig u r a c ió n
e n t r a d a s / s a lid a s

L e c tu ra s e n s o r
ilu m in a c ió n

E n v ía E 1 L U Z 0 NO SI
Il u m i n a c i ó n E n v ía E 1 L U Z 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
h u m e d a d s u e lo

E n v ía E 1 H U M 0 NO SI
hum edad E n v ía E 1 H U M 1
a l p u e r t o s e r ie X B e e s u e lo b a ja a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
b a te ría

E n v ía E 1 B A T 0 NO SI
b a te ría E n v ía E 1 B A T 1
a l p u e r t o s e r ie X B e e b a ja a l p u e r t o s e r ie X B e e

R e ta r d o

44
Implementación

 Programación zona 1
//Variables sensores
const int inA0 = 0; //Sensor iluminación
const int inA1 = 1; //Sensor humedad de suelo
const int inD8 = 8; //Sensor nivel batería
const int iluminacion = 30; //Minimo de luz
const int humedadsuelo = 10; //Minimo de humedad de suelo
//Variables auxiliares
int val0 = 0;
int val1 = 0;
int val8 = 0;
//Inicialización
void setup()
{
Serial.begin(19200); //activa el puerto serie
pinMode(inD8, INPUT); //pin 8 entrada digital
pinMode(13, INPUT);
}
//Programa
void loop()
{
//medidad de los sensores
val0 = analogRead(inA0); //luz
val1 = analogRead(inA1); //humedad del suelo
val8 = digitalRead(inD8); //nivel bateria
//control de los sensores
if (val0 < iluminacion) { //si luz baja
Serial.println("E1LUZ 1 ");
} else
Serial.println("E1LUZ 0 ");
delay(200); //para dar tiempo de recibir el dato
if (val1 < humedadsuelo) { //si humedad suelo baja
Serial.println("E1HUM 1 ");
} else
Serial.println("E1HUM 0 ");
delay(200);
if (val8 == HIGH) { //si batería baja
Serial.println("E1BAT 1 ");
} else
Serial.println("E1BAT 0 ");
delay(200);
delay(12000);
}

45
Implementación

 Programación zona 1
//Variables sensores
const int inA0 = 0; //Sensor iluminación
const int inA1 = 1; //Sensor humedad de suelo
const int inD8 = 8; //Sensor nivel batería
const int iluminacion = 30; //Minimo de luz
const int humedadsuelo = 10; //Minimo de humedad de suelo
//Variables auxiliares
int val0 = 0;
int val1 = 0;
int val8 = 0;
//Inicialización
void setup()
{
Serial.begin(19200); //activa el puerto serie
pinMode(inD8, INPUT); //pin 8 entrada digital
pinMode(13, INPUT);
}
//Programa
void loop()
{
//medidad de los sensores
val0 = analogRead(inA0); //luz
val1 = analogRead(inA1); //humedad del suelo
val8 = digitalRead(inD8); //nivel bateria
//control de los sensores
if (val0 < iluminacion) { //si luz baja
Serial.println("E1LUZ 1 ");
} else
Serial.println("E1LUZ 0 ");
delay(200); //para dar tiempo de recibir el dato
if (val1 < humedadsuelo) { //si humedad suelo baja
Serial.println("E1HUM 1 ");
} else
Serial.println("E1HUM 0 ");
delay(200);
if (val8 == HIGH) { //si batería baja
Serial.println("E1BAT 1 ");
} else
Serial.println("E1BAT 0 ");
delay(200);
delay(12000);
}

46
Implementación

 Programación zona 1
//Variables sensores
const int inA0 = 0; //Sensor iluminación
const int inA1 = 1; //Sensor humedad de suelo
const int inD8 = 8; //Sensor nivel batería
const int iluminacion = 30; //Minimo de luz
const int humedadsuelo = 10; //Minimo de humedad de suelo
//Variables auxiliares
int val0 = 0;
int val1 = 0;
int val8 = 0;
//Inicialización
void setup()
{
Serial.begin(19200); //activa el puerto serie
pinMode(inD8, INPUT); //pin 8 entrada digital
pinMode(13, INPUT);
}
//Programa
void loop()
{
//medidad de los sensores
val0 = analogRead(inA0); //luz
val1 = analogRead(inA1); //humedad del suelo
val8 = digitalRead(inD8); //nivel bateria
//control de los sensores
if (val0 < iluminacion) { //si luz baja
Serial.println("E1LUZ 1 ");
} else
Serial.println("E1LUZ 0 ");
delay(200); //para dar tiempo de recibir el dato
if (val1 < humedadsuelo) { //si humedad suelo baja
Serial.println("E1HUM 1 ");
} else
Serial.println("E1HUM 0 ");
delay(200);
if (val8 == HIGH) { //si batería baja
Serial.println("E1BAT 1 ");
} else
Serial.println("E1BAT 0 ");
delay(200);
delay(12000);
}

47
Implementación
In i c i a l i z a c i ó n

 Programación zona 2 C o n f ig u r a c ió n
p u e r t o S e r ie

C o n f ig u r a c ió n
e n t r a d a s / s a lid a s

L e c tu ra s e n s o r
n iv e l v a c í o

NO SI
E n v í a E 2 N IB 0 E n v í a E 2 N IB 1
b a jo
a l p u e r t o s e r ie X B e e a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
n iv e l lle n o

NO SI
E n v í a E 2 N IA 0 E n v í a E 2 N IA 1
b a jo
a l p u e r t o s e r ie X B e e a l p u e r t o s e r ie X B e e

L e c tu ra s e n s o r
b a te r ía

E n v ía E 2 B A T 0 NO SI
E n v ía E 2 B A T 1
b a jo
a l p u e r t o s e r ie X B e e a l p u e r t o s e r ie X B e e

R e ta rd o

48
Implementación

 Programación zona 2

49
Implementación

 Programación zona 3 In i c i a l i z a c i ó n

C o n f ig u r a c ió n
p u e r to S e r ie

C o n f ig u r a c ió n
e n t r a d a s / s a lid a s

L e c tu r a p u e r to
s e r ie X B e e

d e s a c tiv a b o m b a NO R e c ib e SI
a c t iv a b o m b a
agua R 0BO M 1 agua

L e c tu ra s e n s o r
b a te ría

E n v ía E 3 B A T 0 NO SI
E n v ía E 3 B A T 1
b a jo
a l p u e r t o s e r ie X B e e a l p u e r t o s e r ie X B e e

R e ta r d o

50
Implementación

 Programación zona 3 In i c i a l i z a c i ó n

C o n f ig u r a c ió n
p u e r to S e r ie

C o n f ig u r a c ió n
e n t r a d a s / s a lid a s

L e c tu r a p u e r to
s e r ie X B e e

d e s a c tiv a b o m b a NO R e c ib e SI
a c t iv a b o m b a
agua R 0BO M 1 agua

L e c tu ra s e n s o r
b a te ría

E n v ía E 3 B A T 0 NO SI
E n v ía E 3 B A T 1
b a jo
a l p u e r t o s e r ie X B e e a l p u e r t o s e r ie X B e e

R e ta r d o

51
Implementación

 Programación zona 3

52
Implementación

 Programación zona 0
In i c i a l i z a c i ó n

C o n fig u r a c ió n
p u e r t o S e r ie NO R e c ib e SI
E n v í a a la r m a
E1BAT 1

C o n fig u r a c ió n
e n t r a d a s / s a lid a s

NO R e c ib e SI
L e c tu r a p u e r to E2BAT 1 E n v í a a la r m a
s e r ie X B e e

NO R e c ib e SI
d e s a c t iv a r e le lu z a c t iv a r e le lu z NO R e c ib e SI
E1LUZ 1 E n v í a a la r m a
E3BAT 1

d e s a c t iv a NO R e c ib e SI NO SI
a c t iv a R e c ib e E n v í a p u e r t o s e r ie
e le c t r o v á lv u la E1HUM 1 e le c t r o v á lv u la E 2 N IB 1 XBEE R 0BO M 1

L e c tu r a s e n s o r
caudal
NO SI
R e c ib e E n v ía p u e r to s e r ie
E 2 N IA 1 XB E E R 0B O M 0
NO SI
b a jo E n v í a a la r m a

L e c tu ra s e n s o r
b a te r ía

E n v ía R 0 B A T 0 NO SI
E n v ía R 0 B A T 1
b a jo
a l p u e r t o s e r ie X B e e a l p u e r t o s e r ie X B e e

R e ta rd o

53
Implementación

 Programación zona 0

54
Implementación

 Pruebas y resultados
 Montaje con interruptores y leds

E2
E3

R0

E1

55
Implementación

 Pruebas y resultados
 Pruebas de transmisión inalámbrica entre nodos
R0-E1 R0-E2

R0-E3

56
Implementación

 Pruebas y resultados
 Montaje con los componentes reales del sistema
R0 E1

E3 E2

57
Estructura

 Bloque I
 Introducción
 Objetivos
 Bloque II
 Especificaciones
 Plataforma de desarrollo Arduino
 Módulo de comunicación inalámbrica XBee
 Módulo de comunicación GPRS
 Implementación
 Bloque III
 Presupuesto
 Conclusiones

58
Presupuesto

Presupuesto material
Componente Unidades Unidad(€) Precio(€)
placa Arduino 4 20,00 80,00
shield XBee 4 15,00 60,00

Presupuesto final
XBee serie 1 4 35,00 140,00
shield GPRS + GPRS 1 63,00 63,00
sensor humedad de suelo 1 4,50 4,50
sensor iluminación 1 4,00 4,00 Fases Precio (€)
relé 5 V a 12 V 2 11,00 22,00 Componentes 749,50
electroválvula 1 7,50 7,50 Mano de obra 8640,00
sensor de caudal 1 9,50 9,50 IGIC (7%) 657,26
sensor de nivel de líquidos 2 2,00 4,00 Total: 10046,76
sensor de nivel de batería 4 5,00 20,00
bombilla 1 1,00 1,00
bomba de agua 1 14,00 14,00
reguladores de voltaje 3 35,00 105,00
baterías 4 18,00 72,00
placa solar
mini aerogenerador
1
1
5,00
57,00
5,00
57,00
10046,76 €
micro hidrogenerador 1 25,00 25,00
adaptador AC/DC 3 6,00 18,00
cable usb 1 4,00 4,00
protoboard 1 5,00 5,00
kit resistencias, led, cables 1 9,00 9,00
tuberías y codos 1 20,00 20,00
Total: 749,50

59
Conclusiones

 Se ha realizado el estudio del funcionamiento del


hardware libre Arduino.
 Se ha realizado el estudio de las redes de sensores
inalámbricas.
 Se han elegido los componentes del diseño del sistema
de riego.
 Se ha implementado y probado el prototipo.
 Se han alcanzado con éxito los objetivos iniciciales
realizando un prototipo del control automático de un
sistema de riego, mediante Arduino y redes de sensores
inalámbricas. 60
Conclusiones

 Líneas futuras
 Ampliación del número de nodos.

 Subir los datos a internet.

 Analizar otras variables:


 temperatura,
 humedad del aire,
 radiación solar,
 precipitaciones de agua de lluvia,
 etc.

61
PROYECTO FIN DE CARRERA

CONTROL AUTOMÁTICO DE UN SISTEMA DE RIEGO

Ingeniero Técnico Industrial, especialidad en Electrónica Industrial

Autor: Dailos Badel Ramos Valido Tutores: Francisco Javier del Pino Suárez
Juan Antonio Jiménez Rodríguez
Fecha: Junio 2015

62

También podría gustarte