Sei sulla pagina 1di 21

MICROPROCESADORES

DISEÑO Y CONTRUCCION DE UN SISTEMA DE RIEGO AUTOMÁTICO CON


ARDUINO

PRESENTADO POR:

VALERIA ISABEL BRAVO RIVERA


ILBA ROSA AGUILAR

TUTOR:
OSCAR IVÁN MONTIEL

UNIVERSIDAD DE CARTAGENA

FACULTAD DE INGENIERIA

INGENIERÍA DE SISTEMAS

SEMESTRE VII

CERETÉ

AÑO 2019
TABLA DE CONTENIDO
Introducción
1. Planteamiento
1.1. Descripción del proyecto
2. Justificación
3. Objetivos
3.1. Objetivo General
3.2. Objetivos Específicos
4. Marcos de Referencia
4.1. Marco Contextual
4.2. Marco Teórico
5. Diseño
6. Video del Proyecto (Link)
7. Conclusiones
8. Bibliografía- Cibergrafía
9. Anexos
INTRODUCCION

Teniendo en cuenta las ventajas del dispositivo Arduino en el desarrollo de


software y hardware libres, para construir dispositivos digitales y dispositivos
interactivos que puedan detectar y controlar objetos del mundo real. En este
documento se define lo que es Arduino UNO y se presenta un proyecto basado
sobre el mismo.

Nuestro proyecto consiste en la elaboración de un sistema de riego automático, el


proceso inicia con la programación e inclusión de variables y librerías para
ordenar año, mes, día, hora, minuto y segundo que efectuara la labor de riego a
las plantas.

Tanto el Arduino como cada uno de los materiales a requerir son indispensable
para llevar a cabo el proyecto así como su correcto funcionamiento.
1. PLANTEAMIENTO
1.1. Descripción del proyecto

Basados en la necesidad de ahorro de tiempo en el diario vivir, se desea


desarrollar un sistema de riego automático que permita garantizar la sobrevivencia
de plantas y que estas permanezcan verdes y sanas, con un tiempo de riego
programado con arduino y RTC.

El compromiso de las personas involucradas en la actividad y el deseo de brindar


el mejor producto va a permitir que este proyecto se culmine y sea de utilidad a
los usuarios.
2. JUSTIFICACIÓN

El motivo por el cual se desea desarrollar un sistema de riego automático con


arduino UNO es para implementar los conocimientos adquiridos en el desarrollo
de la unidad durante el semestre, en donde se investigar, diseñar y ejecuta y el
estado de la solución a necesidades cotidianas de la forma más eficiente en cada
situación.

Nuestro proyecto de semestre de microprocesadores, nos lleva a la búsqueda e


investigación de nuevos conocimiento y nos dará a conocer cómo obtener un
pactico sistema de riego con tecnología prácticas y dinámicas.

3. OBJETIVOS
3.1. Objetivo General
Diseñar y desarrollar un sistema de riego automático con Arduino UNO.
Que nos permitirá la supervivencia de plantas y el ahorro de tempo de
los usuarios como aplicar todos nuestros conocimientos adquiridos en
este curso.

3.2. Objetivos Específicos


 Demostrar la facilidad de la programación en Arduino y sus
componentes.
 Demostrar la aplicabilidad de la programación con arduino en
proyectos de uso cotidiano.
 Implementar conocimientos adquiridos durante el desarrollo del
curso.
4. MARCOS DE REFERENCIA
4.1. Marco Contextual

Arduino UNO Es una plataforma de prototipos electrónica de código


abierto (open — source) basada en hardware y software flexibles y fáciles
de usar. Arduino fue inventado en el año 2005 por el entonces estudiante
del instituto IVREA Massimo Banzi. Arduino es una fuente abierta de una
sola placa electrónica, descendiente de la plataforma de cableado de código
abierto, diseñado para hacer que el proceso de utilización de la electrónica
en proyectos multidisciplinares más accesibles.

4.2. Marco Teórico

Arduino UNO: Este es el


nuevo Arduino Uno utiliza
el micro controlador
ATmega328. En adición a
todas las características de
las tarjetas anteriores, el
Arduino Uno utiliza
el ATmega16U2 para el
manejo de USB en lugar del
8U2 (o del FTDI encontrado
en generaciones previas).
Esto permite ratios de transferencia más rápidos y más memoria. No se
necesitan drivers para Linux o Mac (el archivo inf para Windows es
necesario y está incluido en el IDE de Arduino). La tarjeta Arduino Uno R3
incluso añade pins SDA y SCL cercanos al AREF. Es más, hay dos nuevos
pines cerca del pin RESET. Uno es el IOREF, que permite a los shields
adaptarse al voltaje brindado por la tarjeta. El otro pin no se encuentra
conectado y está reservado para propósitos futuros. La tarjeta trabaja con
todos los shields existentes y podrá adaptarse con los nuevos shields
utilizando esos pines adicionales El Arduino es una plataforma
computacional física open-source basada en una simple tarjeta de I/O y un
entorno de desarrollo que implementa el lenguaje Processing/Wiring. El
Arduino Uno R3 puede ser utilizado para desarrollar objetos interactivos o
puede ser conectado a software de tu computadora (por ejemplo, Flash,
Processing, MaxMSP). El IDE open-source puede ser descargado
gratuitamente (actualmente para Mac OS X, Windows y Linux).
Protoboard: Un protoboard o
también llamado Tabla de pruebas,
es una herramienta indispensable
para un electrónico, como su
nombre lo indica su función
principal es hacer pruebas del
funcionamiento de los diferentes
circuitos electrónicos que creamos.
Los protoboard son pequeñas tablas
con perforaciones en toda su área,
en las cuales se colocan diversos
componentes electrónicos, se
distinguen por tener filas y
columnas con lo que se puede saber en que ubicación posicionar cada pieza,
también cuentan con 2 rieles a los lados, los cuales se usaran como las líneas
Positivas y Negativas de nuestro circuito. La línea azul siempre Sera
negativo, también llamada: tierra Por otro lado, la línea roja siempre será
positivo, también llamado corriente (por algunos)

Cables de conexión jumper:


un jumper es un tipo de socket
rectangular de plástico que a su
vez tiene en su interior dos o
más sockets metálicos con un
espacio entre ellos de 0.2 mm
hechos de fósforo-bronce, de
una aleación de cobre--níquel,
de estaño o de latón y con un
color dorado o cromado, de tal
manera que cuando se
introducen y se empujan hacia
los pines de un circuito, éstos
cierran el circuito cubriendo
completamente los pines,
resultando en una conexión
temporal.
Relé: El relé o relevador es un
dispositivo electromecánico.
Funciona como un interruptor
controlado por un circuito
eléctrico en el que, por medio
de una bobina y un
electroimán, se acciona un
juego de uno o varios
contactos que permiten abrir o
cerrar otros circuitos
eléctricos independientes.
Dado que el relé es capaz de
controlar un circuito de salida
de mayor potencia que el de entrada, puede considerarse, en un amplio
sentido, como un amplificador eléctrico.

La gran ventaja de los relés electromagnéticos es la completa separación


eléctrica entre la corriente de accionamiento, la que circula por la bobina
del electroimán, y los circuitos controlados por los contactos, lo que hace
que se puedan manejar altos voltajes o elevadas potencias con pequeñas
tensiones de control. También ofrecen la posibilidad de control de un
dispositivo a distancia mediante el uso de pequeñas señales de control.

Enchufe macho y
hembra: La clavija
o enchufe macho está
formada por un material
aislante, del cual
sobresalen las varillas de
metal. Habitualmente este
enchufe constituye el
extremo de un cable. El
tomacorriente o enchufe
hembra, por su parte, suele
estar empotrado en la
pared. Sus aberturas incluyen piezas metálicas que, cuando se introduce el
enchufe macho, entran en contacto con las varillas de éste, posibilitando el
paso de la corriente.

Cuando las varillas de metal del enchufe macho se extraen del


tomacorriente, se interrumpe la circulación eléctrica, ya que se abre el
circuito. Más allá de los enchufes, los mecanismos eléctricos cuentan con
otras piezas que permiten gestionar el uso de la electricidad,
como pulsadores e interruptores

RTC: Este módulo


incorpora una batería para
alimentar el dispositivo de
forma independiente, es
decir que se puede
desconectar la fuente de
alimentación principal y el
dispositivo seguirá
funcionado sin perder el
conteo, además incorpora un
oscilador interno el cual hace
que la precisión no se vea
afectada a largo plazo, por lo
cual puede mantener
segundos, minutos, hora, día, mes y año con una muy buena precisión.

Bomba de agua: Ideal para


fuentes, acuarios y peceras como
también para la recirculación de
agua en fuentes y acuarios, Caídas
y cortinas de agua. Modelo HJ-
311. El consumo de energía de la
serie HJ es el más eficiente del
mercado. Las bombas de acuario
están constantemente en
funcionamiento, por lo que cada
vatio ahorrado es un alivio para su
presupuesto.

La bomba HJ-311 ofrece 300


litros por hora con un consumo de
energía de tan solo 2 vatios.

Paralelo a esto, agregas oxígeno al


agua a través de un tubo que está incluido en el suministro.

VOLTAJE 110V
FRECUENCIA 60HZ

POTENCIA 2W

H-MAX 0.6M

SALIDA 300L / H

PESO 0.1KG

DIMENSIONES 50 * 44 * 36MM

Resistencia: Las resistencias son


unos elementos eléctricos cuya misión
es dificultar el paso de la corriente
eléctrica a través de ellas. Su
característica principal es su
resistencia óhmica. La resistencia
óhmica de una resistencia se mide en
ohmios, así como dos de sus
múltiplos: el Kilo-Ohmio (1KΩ) y el
Mega-Ohmio (1MΩ=106Ω), en
nuestro proyecto relacionamos la de
10KΩ.

Pulsador: Un pulsador es un
interruptor o switch cuya funcion es
permitir o interrumpir el paso de la
corriente electrica de manera
momentánea, a diferencia de un switch
comun, un pulsador solo realiza su
trabajo mientras lo tenga presionado, es
decir sin enclavamiento. Existen
pulsadores NC (NC) y NA (NO), es
decir normalmente cerrados y
normalmente abiertos.
Los interruptores eléctricos, son
dispositivos que sirven para desviar u
obstaculizar el flujo de corriente eléctrica.
5. DISEÑO

5.1. Materiales

Materiales para utilizar


1 Arduino UNO
Cables de conexión
1 Protoboard
Cable de red eléctrica
Relé
Resistencias 10K ohm
Bomba de agua
Enchufe macho y hembra
RTC
Pulsado
5.2. Pseudocodigo

Variables y Librerías

Ajustar Fecha y Hora

// Incluimos librerías

#include <Wire.h>

#include "RTClib.h"

// Instancia a la clase RTC_DS3231

RTC_DS3231 rtc;

void setup() {

// Iniciamos comunicación serie

Serial.begin(9600);

// Iniciamos el rtc

if (!rtc.begin()) {

Serial.println("No se ha encontrado el módulo RTC");

while (1);

// Ajuste de fecha y hora

rtc.adjust(DateTime(AÑO, MES, DIA, HORA, MINUTOS, SEGUNDOS));

void loop() {

// Obtenemos la fecha

DateTime tiempoReferencia = rtc.now();


Serial.print(tiempoReferencia.year(), DEC);

Serial.print('/');

Serial.print(tiempoReferencia.month(), DEC);

Serial.print('/');

Serial.print(tiempoReferencia.day(), DEC);

Serial.print(" ");

Serial.print(tiempoReferencia.hour(), DEC);

Serial.print(':');

Serial.print(tiempoReferencia.minute(), DEC);

Serial.print(':');

Serial.print(tiempoReferencia.second(), DEC);

Serial.println();

Sistema de riego

// Variables pines

const byte pinPulsador = 8;

const byte pinRele = 9;

void setup() {

// Configuración comunicación serie

Serial.begin(9600);
// Modo de los pines

pinMode(pinPulsador, INPUT);

pinMode(pinRele, OUTPUT);

void loop() {

// Leer el pulsador

byte estadoPulsador = digitalRead(pinPulsador);

// Esperamos para evitar dobles pulsaciones

delay(300);

// Comprobamos si se ha pulsado el pulsador

if (estadoPulsador == HIGH) {

// Cambiamos de estado el relé

digitalWrite(pinRele, !digitalRead(pinRele));

Sistema de riego 2

// Incluimos librerías
#include <Wire.h>

#include "RTClib.h"

// Variables pines

const byte pinPulsador = 8;

const byte pinRele = 9;

// Instancia a la clase RTC_DS3231

RTC_DS3231 rtc;

// Parámetros de riego

const byte diasRiego = 1;

const byte horaRiego = 12;

byte contadorDias = 0;

boolean centinelaHora = true;

// Tiempo de riego

const long duracionRiego = 10000; // Cuánto tiempo riega en milisegundos

unsigned long marcaTiempo; // Marca de tiempo para contar los milisegundos

void setup() {

// Configuración comunicación serie


Serial.begin(9600);

// Modo de los pines

pinMode(pinPulsador, INPUT);

pinMode(pinRele, OUTPUT);

// Iniciamos el rtc

if (!rtc.begin()) {

Serial.println("No se ha encontrado el módulo RTC");

while (1);

void loop() {

// Leer el pulsador

byte estadoPulsador = digitalRead(pinPulsador);

// Esperamos para evitar dobles pulsaciones

delay(300);

// Comprobamos si se ha pulsado el pulsador

if (estadoPulsador == HIGH) {
// Cambiamos de estado el relé

digitalWrite(pinRele, !digitalRead(pinRele));

// Comenzamos a contar el tiempo

marcaTiempo = millis();

// Obtenemos la fecha

DateTime tiempoReferencia = rtc.now();

// Mostramos la fecha por el monitor serie

Serial.print(tiempoReferencia.year(), DEC);

Serial.print('/');

Serial.print(tiempoReferencia.month(), DEC);

Serial.print('/');

Serial.print(tiempoReferencia.day(), DEC);

Serial.print(" ");

Serial.print(tiempoReferencia.hour(), DEC);

Serial.print(':');

Serial.print(tiempoReferencia.minute(), DEC);

Serial.print(':');
Serial.print(tiempoReferencia.second(), DEC);

Serial.println();

// Si es la hora de regar

if (tiempoReferencia.hour() == horaRiego && centinelaHora) {

// Marcamos para que no vuelva a entrar

centinelaHora = false;

// Sumamos una al contador de días

contadorDias = contadorDias + 1;

// Si han pasado los días para regar

if (contadorDias == diasRiego) {

// Regamos

digitalWrite(pinRele, HIGH);

Serial.println("Enciende riego automático");

// Comenzamos a contar el tiempo

marcaTiempo = millis();

// Iniciamos el contador de días

contadorDias = 0;
}

// Si es otra hora marcamos para que vuelva a detectar

} else if (tiempoReferencia.hour() != horaRiego) {

centinelaHora = true;

// Si está regando

if (digitalRead(pinRele)) {

// Protegemos para cuando se reinicie millis()

if (millis() < marcaTiempo) {

marcaTiempo = 0;

// Comprobamos si ha pasado el tiempo

if (millis() - marcaTiempo >= duracionRiego) {

// Apagamos el riego

digitalWrite(pinRele, LOW);

Serial.println("Apaga riego automático");

}
5.3. Programa Arduino UNO
Algoritmo para el sistema de riego automático con arduino.

* Riego manual
- Leer pulsador
- Si esta pulsado
- ¿Está la bomba encendida?
Apagar Bomba
- ¿Está la bomba apagada?
Encender Bomba

* Riego Automático
- Indicar cada cuanto tiene que regar, la hora para regar y cada
cuanto se riega.
- Indicar el tiempo de riego.
- ¿Ha llegado la hora de regar?
Encender riego.
- ¿Ha regado el tiempo suficiente?
Apagar el riego

6. VIDEO DEL PROYECTO (LINK).


7. CONCLUSIONES

La implementación del sistema ayuda a optimizar el tiempo y la forma de realizar


el riego de un huerto o plantas domésticas, además se considera sencillo el manejo
del mismo. Debido a los resultados obtenidos en las pruebas, se puede comprobar
que el mismo funciona en tiempo real, debido a que el intervalo en envío y
recepción de los mensajes está en función del tiempo esperado.

Este proyecto fue complejo y aunque parecía bastante básico en su desarrollo se


tuvo mucho cuidado al programar el código y conectar todos los materiales que
sin ellos no se hubiera podido lograr el objetivo.

8. BIBLIOGRAFÍA- CIBERGRAFÍA
https://www.udemy.com/course/sistema-de-riego-automatico-con-
arduino/learn/lecture/12031732#overview
https://ingenieriaelectronica.org/definicion-de-protoboard-y-como-utilizarlo/
https://definicion.de/enchufe/
https://www.mactronica.com.co/reloj-de-tiempo-real-ds3231-rtc-de-precision-43758633xJM
https://articulo.mercadolibre.com.co/MCO-484527806-bomba-de-agua-sumergible-hj-311-
_JM?quantity=1
https://tostatronic.com/store/componentes-pasivos/886-resistencia-10k-ohms-14w.html
https://www.shoptronica.com/curiosidades-tutoriales-y-gadgets/4079-que-son-los-
interruptoes-pulsadores-conmutadores-0689593950512.html

9. ANEXOS IMÁGENES
1. Arduino en programación.
2. Materiales adquiridos.
3. Imágenes del montaje.
4. Diseño en físico de arduino, RTC, protoboard y partes eléctricas
5. Código de la aplicación en desarrollo.
6. Proyecto culminado

Potrebbero piacerti anche