SUR
Electrónica Industrial
Proyecto académico
INTEGRANTES:
6 de julio de 2019
Contenido
1. Planteamiento del problema:
2. Delimitación del problema
3. Objetivos
3.1Objetivo General:
3.2 Objetivos Específicos
4. Justificación
5. Hipótesis
6. Variables e indicadores
7. METODOLOGIA
8. MARCO TEORICO
8.1 ARDUINO UNO
8.2 SENSORES y MATERIALES
9. Desarrollo
4.1 Ubicación geográfica del terreno
4.2 Zona del sistema de riego
4.3 Requerimiento del sistema de riego
4.4 Preparación del terreno
4.5 Fuente de agua
10.Generalidades del sistema de control
10.1Control Automático
10.2 Sistemas de Control
10.3 Sistema de Control de Lazo Abierto
10.4 Sistema de Control de Lazo Cerrado
11. Variables e indicadores
11.1 DIAGRAMA DE BLOQUE DEL SISTEMA
11.2 DIAGRAMA DE FLUJO
12.Programación en Arduino
13. Diagrama del circuito
1. Planteamiento del problema:
3. Objetivos
3.1Objetivo General:
4. Justificación
Se desea implementar un sistemas de riego muy novedoso que permita
controlar con ayuda de sensores y actuadores al sistema de irrigación por
sectores, a su vez comunicar su estado mediante mensajes legibles en una
pantalla lcd, además del proceso de encendido y apagado de las bombas que
permiten la irrigación delos cultivos.
Dicho proyecto tiene una utilidad proteger los cultivos y mejorar el riego en las
plantaciones de difícil acceso, utilizando diferentes recursos como el hardware
y software diseñados para la correcta funcionabilidad en el sector
implementado y aplicando los diferentes conocimientos adquiridos en la
formación academia.
Este proyecto indica directamente, por medio de mensajes y en tiempo real los
diferentes procesos que se estarían aconteciendo en los cultivos cuando el
sistema de riego esta puesto en marcha, y su fácil operación por parte del
usuario.
5. Hipótesis
Dentro de los sistemas de riego existen varios métodos o formas de realizarlo,
pero aprovechando la versatilidad del microcontrolador arduino aseguramos
que exista un mejor riego a los cultivos y por ello una mejor producción y así
obtener resultados positivos en las cosechas que se tendrán posteriores a la
implementación de este proyecto.
6. Variables e indicadores
Las variables que se obtendrán en el sistema serán los valores que entregan
los diferentes sensores de de luz, humedad y temperatura relativa dentro de las
diferentes áreas ubicadas en los distintos cultivos de cada zona asignada y los
sensores de nivel dentro del reservorio.
7. METODOLOGIA
METODOS
TECNICAS
El FC-28 es un sensor sencillo que mide la humedad del suelo por la variación
de su conductividad. No tiene la precisión suficiente para realizar una medición
absoluta de la humedad del suelo, pero tampoco es necesario para controlar un
sistema de riego.
El FC-28 se distribuye con una placa de medición estándar que permite obtener
la medición como valor analógico o como una salida digital, activada cuando la
humedad supera un cierto umbral.
datos valores
Temperatura 0 a 50ºc +- 2 ºc
Humedad 20 a 80% +-5%
Muestras 1 Hz
voltaje 3 a 5.5 v
Pantalla LCD con Arduino.
La mayoría de las pantallas LCD que se están haciendo ahora, vienen con una
fila de dieciséis pines. Los primeros catorce pines se utilizan para controlar la
visualización. Los dos últimos son para la iluminación de fondo.
PIN FUNCIÓN
1 GND (Tierra)
2 5 Voltios
3 Control de contraste pantalla
4 RS – Selector entre comandos y
datos
5 RW – Escritura y lectura de
comandos y datos
6 Sincronización de lectura de datos
7-14 Pines de datos de 8-bit
15 Alimentación luz de fondo (5V)
16 GND (Tierra) luz de fondo (0V)
9. Desarrollo
En este capítulo se definirán las características de nuestro sistema,
partiendo de ubicación del sistema de riego, requerimientos del
sistema, condiciones climáticas y detalles del sistema de control.
Distrito de Andaymarca
Andaymarca
● Tipo de cultivo
● Temperatura
Esta señal es usada por el controlador para calcular una acción de control, que
es enviada al actuador, la variable de salida es medida con un sensor y
eventualmente transformada en una señal físicamente compatible con la
referencia.
Ejemplo 1: Un tanque con una manguera de jardín. Mientras que la llave siga
abierta, el agua fluirá. La altura del agua en el tanque no puede hacer que la
llave se cierre y por tanto no nos sirve para un proceso que necesite de un
control de contenido o concentración.
BOMBA
SENSORES
Esta señal es usada por el controlador (arduino) para calcular una acción de
control, que es enviada al actuador (relés), el cual incide directamente sobre el
proceso. La variable de salida es medida con un sensor de humedad el cual
constantemente transforma la señal física en una señal compatible con la de
referencia .Esta idea de medir la variable y realimentarla para efectuar una
comparación y saber que tan lejos estamos del valor deseado, es en si el
concepto fundamental de todo sistema de control automático.
Este sistema de riego automático con Arduino riega cuando detecta una
combinación de bajos niveles de luz (noche, oscuridad), temperatura en el aire
y la humedad en el suelo y deja de regar cuando esos niveles de luz,
temperatura y humedad son altos. Los valores de riego o no riego los
determinamos a través del código que hay que compilar y subir a la placa del
microcontrolador Arduino.
11.2 DIAGRAMA DE FLUJO
12.Programación en Arduino
// RIEGO AUTOMATICO
#include <SimpleDHT.h>
#include <SPI.h>
#include <LiquidCrystal.h>
//Crear el objeto LCD con los números correspondientes (rs, en, d4, d5, d6, d7)
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
#define humidity_sensor_pin A0
#define ldr_pin A5
#define trigPin 6 // Trig (Emisión del ultrasonido) del módulo de ultrasonidos HC-SR04 se asocia al pin 6
#define echoPin 5 // Echo ((Recepción del ultrasonido) del módulo de ultrasonidos HC-SR04 se asocia al
pin 5
#define Buzzer 4 //Buzzer pasivo se asocia al pin 4
int time_ms = 60; //tiempo en milisegundos
// for DHT11,
// VCC: 5V or 3V
// GND: GND
// DATA: 2
int pinDHT11 = 2;
SimpleDHT11 dht11;
int ldr_value = 0;
int water_pump_pin = 3;
int water_pump_speed = 255;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(Buzzer, OUTPUT);
}
void loop() {
// delay (1000);
// String mensaje="underc0de Contador: "; // establece el mensaje
// start working...
Serial.println("*******************************");
Serial.println("Sample DHT11...");
// read with raw sample data.
byte temperature = 0;
byte humidity_in_air = 0;
byte data[40] = {0};
if (dht11.read(pinDHT11, &temperature, &humidity_in_air, data)) {
Serial.print("Read DHT11 failed");
lcd.setCursor(0,0);
lcd.print("T:"); lcd.print("FAIL");
return;
}
for (int i = 0; i < 40; i++) {
if (i > 0 && ((i + 1) % 4) == 0) {
}
}
// DHT11
// Cursor en la primera posición de la primera fila
Serial.println("");
Serial.print("Sample OK: ");
Serial.print("Temperature: ");Serial.print((int)temperature); Serial.print(" *C, ");
Serial.print("Relative humidity in air: ");Serial.print((int)humidity_in_air); Serial.println(" %");
lcd.setCursor(0,0);
lcd.print("T:"); lcd.print((int)temperature); lcd.print("*C");
// Valor de luz en %
//**************************************************************
// Condiciones de riego y de no riego
//**************************************************************
if( ground_humidity_value <= 75 && ldr_value < 30 && temperature < 30 && distance <= 22 ) {
digitalWrite(water_pump_pin, HIGH);
analogWrite(water_pump_pin, water_pump_speed);
Serial.println("Water:Yes");
Serial.println("Irrigate");
lcd.setCursor(9,1);
lcd.print("I:ON ");
// Si el módulo ultrasonidos detecta agua a una distancia inferior a 0 cm o inferior a 22 cm
// El buzzer pasivo seguirá apagado
digitalWrite(Buzzer, LOW);
}
else{
digitalWrite(water_pump_pin, LOW);
Serial.println("Do not irrigate");
// Cursor en la décima posición de la segunda fila
lcd.setCursor(9,1);
lcd.print("I:OFF");
delay (2000);
if ( distance > 22)
{
Serial.println("No Water");
lcd.clear();
lcd.setCursor(0,1);
lcd.print("ALERT!: NO WATER");
delay (2000);
lcd.clear();
// tone(Buzzer, 400);
// delay(time_ms);
// tone(Buzzer, 400);
// delay(time_ms);
// tone(Buzzer, 400);
// delay(time_ms);
// tone(Buzzer, 400);
// delay(time_ms);
// tone(Buzzer, 400);
// noTone(Buzzer);
}
}
delay (100);
}
13. Diagrama del circuito