i
Escuela de Bachilleres “18 de Marzo”
SISTEMA DE CONTROL DE ABASTECIMIENTO DE AGUA
PROYECTO DE TESIS QUE PRESENTAN
DANIEL CORONADO MIRANDA
FRANCISCO DE JESÚS PÉREZ GARCÍA
JHAAZIEL RAMÍREZ RAMÍREZ
PARA OBTENER EL TÍTULO DE
TÉCNICO EN ELECTRÓNICA
Asesor
SAÚL GARCÍA HERNÁNDEZ
Salamanca, Guanajuato Junio 2015
ii
Dedicatorias
A mis padres, les agradezco por todo el apoyo que me han brindado; gracias a ustedes he
salido adelante he cumplido algunas de mis metas, por su esfuerzo puesto en mí, ustedes
siempre me están orientando no importa el día ni la hora, ustedes siempre están conmigo
para salir adelante. Gracias a su empeño he podido finalizar mi bachillerato y cumplido mi
proyecto con éxito.
A mis hermanos, les agradezco por su cariño, apoyo y comprensión en cada momento de
mi vida ya que así he podido realizarme personal y profesionalmente.
A mi novia, le agradezco por estar siempre brindándome su apoyo, su comprensión y su
amor. Gracias a ti he podido salir adelante como persona y como profesionista, gracias por
estar siempre conmigo apoyándome en los momentos más importantes de mi vida, para así
poder realizar algunas de mis metas y terminar mi bachillerato.
A mi asesor, le agradezco por brindarme su apoyo, su tiempo y su comprensión; gracias a
usted he podido realizar mi trabajo, gracias por apoyarme y confiar en mi para poder cumplir
con éxito este gran proyecto.
-“El éxito en la vida no se mide por tus logros, si no por los obstáculos que logras vencer”...-
-“No te conformes con lo que necesitas, lucha por lo que te mereces”…-
Daniel Coronado Miranda
iii
A mi padre, por darme apoyo incondicional, por los miles de consejos sabios, por las miles
de palabras de aliento, por enseñarme a trabajar de manera digna, a que si quiero algo
debo de luchar por eso, que debo esforzarme siempre un poco más. Porque él hace valer
sus palabras con hechos y siempre me ha demostrado que todo se puede hacer solo que a
veces será más difícil.
A mi madre, por estar a mi lado en cada una de las etapas de mi vida, por aguantar mis
errores y mis malas decisiones, por demostrarme que una silla de ruedas no es obstáculo
en la vida, porque me ha enseñado a siempre ver lo bueno de las cosas malas, porque ella
siempre ha sido el motivo de que yo siga adelante y lleve una vida optimista, y también
porque cuando todos me fallen, sé que ella me tendrá las puertas abiertas.
A mi hermano, que siempre me hizo notar sus errores, para que yo no pasara sobre ellos,
por los castigos que afrontaba y afronta por mí, por defenderme de los más grandes y por
sus esfuerzos por tratar de enseñarme lo que aprendió solo de manera difícil.
A mi asesor, por su disposición incondicional para llevar a cabo este proyecto por un buen
camino, que, cuando hubo momentos difíciles él supo controlarlos de manera correcta.
A mis amigos “Juan Alejandro Zapata Serrato” por ayudarme en los momentos difíciles, por
ser una persona de confianza que además me ha demostrado que es un amigo sin
intereses. A “Mario Ortiz Rojas”, “Luis Gabriel Coronado Rea” porque en los momentos
buenos y malos me ayudaron incondicionalmente creando risas y buenos momentos
marcados para siempre en mí, que gracias ellos no podría haber conocido a las personas
que conozco gracias a ellos supe lo que es un amigo, al igual que a “Dulce María Pérez
Castillo” y “Andrea Dareli Medina Prieto” que se ganaron una parte de mi con las miles de
risas que me provocaron, su particular forma de ser conmigo, por ser buenas personas y
grandes amigas a pesar de todo quiero ser siempre su amigo alguien en quien pueden
apoyarse por que se que también puedo apoyarme en ustedes. Por lo que estas grandes
amistades son las que quiero atesorar por mucho tiempo, esas son las mejores cosas que
recordare por siempre. Y a todas las personas que esta maravillosa Escuela de Bachilleres
“18 de marzo” me permitió conocer. A todos ustedes les agradezco de todo corazón y
cariño.
“El objetivo nunca se moverá, tú eres el que te mueves para lograrlo”
“No dudes de ti mismo”
Ramiro Ramírez Damián – Mi padre – Jhaaziel Ramírez Ramírez
iv
“No dejen que el ruido de las opiniones de los
demás ahoguen su propia vos interior”
- Steve Jobs-
Después de un largo camino lleno de dificultades y tristezas, pero igualmente de alegrías y
momentos incomparables, estoy orgulloso de mis logros que con arduo trabajo he llegado
hasta este importante punto de mi vida, en el cual me he convertido en mejor persona, lo
cual no hubiese sido posible sin el apoyo de las siguientes personas:
A mis padres por ser el sustento en la medida de sus posibilidades de este bachillerato y
por su apoyo incondicional a lo largo del mismo y en la realización de este proyecto.
A mis asesores Saúl García Hernández por su apoyo incondicional, no importando la hora
o tipo de problema que se suscitara, siempre estuvo a mi lado para resolverlos, por lo cual
lo considero una de las mejores personas que he conocido y agradezco a Dios por a verlo
puesto en mi camino.
A mi profesor Jorge Andrés Ortega Contreras el cual siempre me brindó su apoyo
incondicional, resolviendo mis dudas y siendo una de las personas que constantemente me
estuvo alentando, deseándome lo mejor y brindándome su confianza lo cual me impulso a
ser mejor persona y estudiante lo cual agradezco infinitamente, por lo cual lo considero uno
de mis más grandes amigos y mentores.
A mis compañeros de tesina que me apoyaron en la realización de este proyecto, por su
amistad y compromiso.
A mis compañeros Pedro García García, Juan Alejandro Zapata, Andrea Pérez Ovalle,
Miguel Ángel López Medellín, Dulce María Pérez Castillo, Tania Alexa Pérez Campos,
Jhaaziel Ramírez Ramírez, quienes me otorgaron su amistad y apoyo incondicional, a los
cuales considero unos grandes amigos, ya que a pocas personas en esta vida se le pueden
dar ese adjetivo, no son simples personas o compañeros que se cruzan en tu vida, si no son
a aquellas a quienes puedes llamar “Compañeros de vida”.
v
A mis maestros en general por transmitirme sus conocimientos y así mismo aprender de
ellos no solo académicamente sino también personalmente.
A mi familia quienes me apoyaron en los momentos más duros de mi vida así como a
superarlos.
A mi hermano Esteban Nicolás García Cárdenas quien estuvo conmigo en todo momento,
sin el cual no sería el mismo y brindarme su apoyo incondicional en todo momento.
A quien agradezco un gran aprendizaje de vida, el cual me cambio completamente,
aprovecho estas líneas para agradecer a Mauricio Tamayo García y demás personas que
hicieron posibles esa grata experiencia.
Y en general a toda persona que dedicaron su tiempo a la supervisión o apoyo a este
proyecto.
“Nunca consideres el estudio como una obligación, sino como una oportunidad para
penetrar en el bello y maravilloso mundo del saber.”
-Albert Einstein-
Francisco de Jesús Pérez García
vi
INDICE
Capítulo 1 .................................................................................................................................. 1
1.1 Introducción ................................................................................................................................................. 1
1.2 Justificación .................................................................................................................................................. 2
1.3 Objetivo de la investigación. ........................................................................................................................ 2
1.3.1 Objetivo General. ...................................................................................................................................... 2
1.3.2 Objetivos particulares. .............................................................................................................................. 3
1.4 Metodología. ................................................................................................................................................ 3
1.5 Planteamiento del problema........................................................................................................................ 3
1.6 Hipótesis. ...................................................................................................................................................... 4
Capítulo 2 .................................................................................................................................. 5
2.1 Medidores de flujo. ...................................................................................................................................... 5
2.2 YF-S201 Hall Effect Water Flow Counter ...................................................................................................... 5
2.3 Electroválvula ............................................................................................................................................... 6
2.4 I2C ............................................................................................................................................................... 7
2.5 Arduino ......................................................................................................................................................... 8
2.5.1 Arduino mega 2560 ................................................................................................................................... 8
2.6 Programación en el software de Arduino .................................................................................................... 9
2.7 Base de datos ............................................................................................................................................. 10
2.7.1 Conceptos básicos de una base de datos ................................................................................................ 11
Tablas ............................................................................................................................................................... 11
Formularios ...................................................................................................................................................... 11
Informes ........................................................................................................................................................... 11
Consultas .......................................................................................................................................................... 12
Macros .............................................................................................................................................................. 12
Módulos ........................................................................................................................................................... 12
2.8 Microsoft Access ........................................................................................................................................ 13
2.9 Visual Basic ................................................................................................................................................. 14
vii
Capítulo 3 ................................................................................................................................ 15
3.1 Desarrollo ................................................................................................................................................... 15
3.2 Pruebas y Resultados ................................................................................................................................. 21
3.2.1 YF-S201 Hall Effect Water Flow Counter ................................................................................................. 21
3.2.2 Electroválvula .......................................................................................................................................... 22
3.2.3 Comunicación .......................................................................................................................................... 22
Capítulo 4 ................................................................................................................................. 22
Conclusiones .................................................................................................................................................... 23
ANEXO .............................................................................................................................................................. 24
Código A1 ....................................................................................................................................................... 24
Código A2 ....................................................................................................................................................... 26
Código A3 ....................................................................................................................................................... 27
Código A4 ....................................................................................................................................................... 29
Glosario ........................................................................................................................................................... 33
Referencias ....................................................................................................................................................... 35
viii
INDICE DE ILUSTRACIONES
Ilustración 1 Imagen del sensor de flujo ......................................................................................... 6
Ilustración 2 Electroválvula ............................................................................................................. 6
Ilustración 3 Imagen de la conexión de I2C .................................................................................... 7
Ilustración 4 Imagen Arduino mega 2560 ........................................................................................ 9
Ilustración 5 Interfaz de programación en Arduino .......................................................................... 9
Ilustración 6 Plataforma de Access ............................................................................................... 19
Ilustración 7 Interfaz en visual ....................................................................................................... 21
Ilustración 8 Prueba de YF-S201 Hall Effect Water Flow Counter ................................................ 21
Ilustración 9 Prueba de comunicación entre Arduinos con protocolo I2C .................................... 22
Sistema de control de abastecimiento de agua 2015
1
Capítulo 1
SISTEMA DE CONTROL DE ABASTECIMIENTO DE AGUA
1.1 Introducción
Un problema en el mundo laboral e industrial es el bajo rendimiento de tiempo que es
excedente del deseado, creando menor eficiencia a un mayor costo por diversos factores en
distintas áreas de la industria, que a lo largo del tiempo es posible ver pérdidas de tiempo
muy visibles.
En las industrias donde se emplea un sistema de control de fluidos sufren pérdidas al no
cerrar a tiempo una línea donde se distribuyen los fluidos, ya sean gas, agua, aire, etc…
La elaboración de este proyecto es la unión de diferentes dispositivos mecánicos y
electrónicos e interfaces entre un usuario y un dispositivo con el fin de obtener un mayor
rendimiento y pérdidas menores junto con un margen de error menor; la idea es unir un
sistema de control, una computadora y un ser humano, para ahorrar tiempo.
Las empresas o industrias al día de hoy son muy competitivas, por lo que sus demandas
son menos tiempo y más dinero, con los menos errores posibles.
En efecto de resumen el sistema de control de abastecimiento de agua está conformado por
varios componentes; electroválvula, sensor de flujo, arduino. La finalidad del sistema es que
sea posible que realice una contabilización y un control del agua al ser controlado por
medio de una PC, y así reducir costos en el corte y reactivación del servicio, así como
llevar un mejor control del mismo.
Sistema de control de abastecimiento de agua 2015
2
1.2 Justificación
Se busca crear un sistema que ayude al control de abastecimiento de agua y que mejore el
servicio de contabilidad del fluido. Donde se trascenderá a cambiar la manera de
suspensión de agua y generar un ahorro para los organismos que prestan este tipo de
servicios. En el mercado no existe un producto que tenga las características de contabilidad
y bloqueo de fluidos que sea controlado de manera remota. Elaborar un sistema de control
de distribución de agua funcional a base de una electroválvula, un sensor de flujo,
comunicación por protocolo I2C y una interfaz para que el usuario puedan manipularlo
desde un ordenador.
1.3 Objetivo de la investigación.
Profundizar para el aprendizaje en el control de fluidos y elaboración de sistemas.
1.3.1 Objetivo General.
Lograr generar un sistema que sea capaz de contabilizar y bloquear el flujo de agua y
además que sea controlada de manera remota. Y así aumenta la eficiencia en que se
provee este servicio.
Sistema de control de abastecimiento de agua 2015
3
1.3.2 Objetivos particulares.
Elaborar un sistema de control de distribución de agua funcional.
Lograr que tanto el sensor de flujo, la electroválvula y el arduino trabajen
coordinadamente.
Lograr la comunicación entre las tarjetas arduino.
Crear una base de datos que llevará el control de contabilización.
1.4 Metodología.
Se llevó a cabo una investigación, detectando que un problema recurrente, es la suspensión del
suministro de agua cuando el usuario no cumple a tiempo con el pago de este servicio. Este
proceso se lleva a cabo de domicilio en domicilio por un trabajador del organismo operador.
Por lo que se buscó una manera benéfica de resolver este tipo de problema para reducir el
tiempo de ubicación de un domicilio y el tiempo de bloquear dicha línea.
Se propuso un sistema de control, más eficiente, que aparte de suspender el suministro de
fluido, pueda medir y contabilizar el gasto.
1.5 Planteamiento del problema.
Este sistema tendrá dispositivos que permitan que las viviendas que cuenten con el servicio de
agua se les pueda ser suspendido al no cumplir con el pago del mismo, ya que actualmente es
muy simple el robo de este servicio, puesto que el método de suspensión y reconexión es
superficial. Este sistema cambiará la manera al realizarlo ya que el bloqueo es remoto.
Se tiene pensado que sea colocado de manera subterránea y así frustrar la reconexión ilícita de
este servicio
Sistema de control de abastecimiento de agua 2015
4
1.6 Hipótesis.
El sistema está siendo elaborado para dar solución al problema de control de agua, evitando
que una persona vaya directamente al domicilio a realizar el corte del suministro de mismo, sino
que simplemente se dé la orden desde un ordenador por medio de una interfaz simple para el
usuario, y así realizar el corte o reactivación del servicio, al mismo tiempo realizar la
contabilización del fluido por usuario.
Sistema de control de abastecimiento de agua 2015
5
Capítulo 2 MARCO TEÓRICO
2.1 Medidores de flujo.
Un caudalímetro es un instrumento de medición de caudal o gasto volumétrico de un fluido o
para la medición del gasto másico. Estos aparatos suelen colocarse en línea con la tubería que
transporta el fluido. También suelen llamarse medidores de caudal, medidores de flujo o
flujómetros. (1)
2.2 YF-S201 Hall Effect Water Flow Counter
Este sensor está diseñado en base de plástico sólido, es adecuado para un tubo estándar de ½
pulgada y se puede insertar fácilmente en un sistema de tuberías estándar, cuenta con un rotor
de agua, conformado por un pequeño molino de viento, este tiene un pequeño imán atado y hay
un sensor magnético de efecto Hall en el otro lado del tubo que registra cada vuelta dada por el
molino de viento, esto genera impulsos de salida a una velocidad proporcional a la velocidad de
flujo. Este sensor utiliza unas aspas o álabes para medir la cantidad de líquido que se ha movido
a través del interior del dispositivo, tiene incrustada una flecha que indica la dirección del flujo.
Es decir, que el sentido en que pasa el agua debe ser de izquierda a derecha. Al contar los
pulsos de la salida del sensor se puede seguir fácilmente el movimiento del fluido, teniendo en
cuenta que cada pulso es de aproximadamente 2.25 mililitros. Hay que tener en cuenta que este
dispositivo no es un sensor de precisión, y la frecuencia del pulso varía un poco dependiendo de
la velocidad de flujo, la presión del fluido y la orientación del sensor. Se necesitará una
cuidadosa calibración si se requiere más que un 10% de precisión. Sin embargo, es un producto
muy bueno en tareas básicas. Este sensor es ideal para aplicaciones que tengan que ver con
sistemas de tanques de almacenamiento, aplicaciones domésticas de reciclaje de agua,
sistemas de riego, entre otras.
Sistema de control de abastecimiento de agua 2015
6
La señal de salida puede ser conectada a un microcontrolador para el control de consumo de
agua y el cálculo de la cantidad de agua que queda en un tanque, etc.
Ilustración 1 Imagen del sensor de flujo
2.3 Electroválvula
“Las electroválvulas son dispositivos que responden a pulsos eléctricos. Gracias a la
corriente que circula a través del solenoide es posible abrir o cerrar la válvula, controlando
de esta forma el flujo de fluidos. Al circular corriente por el solenoide, se genera un campo
magnético que atrae el núcleo móvil y al finalizar el efecto del campo magnético, el núcleo
vuelve a su posición, en la mayoría de los casos, por efecto de un resorte.” (2)
Ilustración 2 Electroválvula
Sistema de control de abastecimiento de agua 2015
7
Las electroválvulas son más fáciles de controlar mediante programas de software. Es ideal
para la automatización industrial.
2.4 I2C
“I2C es un protocolo síncrono, usa solo 2 cables, uno para el reloj (SCL) y otro para el dato
(SDA). Esto significa que el maestro y el esclavo envían datos por el mismo cable, el cual es
controlado por el maestro, que crea la señal de reloj. Este protocolo no utiliza selección de
esclavo, sino direccionamiento.
El protocolo I²C es un bus de comunicaciones en serie. Su nombre viene de Inter-Integrated
Circuit (Inter-Circuitos Integrados). La versión 1.0 data del año 1992 y la versión 2.1 del año
2000, su diseñador es Philips. La velocidad es de 100 kbit/s en el modo estándar, aunque
también permite velocidades de 3.4 Mbit/s. Es un bus muy usado en la industria,
principalmente para comunicar microcontroladores y sus periféricos en sistemas integrados
(Embedded Systems) y generalizando más para comunicar circuitos integrados entre sí que
normalmente residen en un mismo circuito impreso.
La principal característica de I²C es que utiliza dos líneas para transmitir la información: una
para los datos y otra para la señal de reloj. También es necesaria una tercera línea, pero
esta sólo es la referencia (masa). Como suelen comunicarse circuitos en una misma placa
que comparten una misma masa esta tercera línea no suele ser necesaria.” (5)
Nombre de líneas:
SDA: datos
SCL: reloj
GND: tierra
Ilustración 3 Imagen de la conexión de I2C
Sistema de control de abastecimiento de agua 2015
8
2.5 Arduino
Es una plataforma de hardware libre, basada en una placa con un microcontrolador y un
entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos
multidisciplinares.
Arduino puede tomar información del entorno a través de sus entradas analógicas y
digitales, puede controlar luces, motores y otros actuadores. El microcontrolador en la placa
Arduino se programa mediante el lenguaje de programación Arduino (basado en Wiring) y el
entorno de desarrollo Arduino (basado en Processing). (4)
2.5.1 Arduino mega 2560
Por estas principales ventajas se utilizó arduino mega 2560 (4)
Microcontrolador ATmega2560
Operación voltaje 5V
Voltaje de entrada (recomendado) 7-12V
Voltaje de entrada (límites) 6-20V
Digital IO Pins 54 (de los cuales 15 proporcionar una salida PWM)
Pines de entrada analógicas 16
Corriente de la C.C. por IO Pin 40 mA
Corriente de la C.C. de 3.3V Pin 50 mA
Flash Memoria 256 KB de que 8 KB utilizado por el gestor de arranque
Sistema de control de abastecimiento de agua 2015
9
SRAM 8 KB
EEPROM 4 KB
Velocidad del reloj 16 MHz
Ilustración 4 Imagen Arduino mega 2560
2.6 Programación en el software de Arduino
La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el
lenguaje de programación de alto nivel Processing que es similar a C++. (4)
Ilustración 5 Interfaz de programación en Arduino
Sistema de control de abastecimiento de agua 2015
10
2.7 Base de datos
Una base de datos es el conjunto de datos informativos organizados en un mismo contexto
para su uso y vinculación.
Se le llama base de datos a los bancos de información que contienen datos relativos a
diversas temáticas y categorizados de distinta manera, pero que comparten entre sí algún
tipo de vínculo o relación que busca ordenarlos y clasificarlos en conjunto.
Una base de datos puede ser de diferentes tipos, desde un pequeño fichero casero para
ordenar libros y revistas por clasificación alfabética hasta una compleja base que contenga
datos de índole gubernamental en un Estado u organismo internacional. Recientemente, el
término base de datos comenzó a utilizarse casi exclusivamente en referencia a bases
construidas a partir de software informático, que permite una más fácil y rápida organización
de los datos. Las bases de datos informáticas pueden crearse a partir de software o incluso
de forma online usando Internet. En cualquier caso, las funcionalidades disponibles son
prácticamente ilimitadas. (4)
Los usos de las bases de datos son tan múltiples que, por ejemplo, pueden utilizarse en una
biblioteca o archivo que guarda libros para su consulta frecuente, también pueden
emplearse para guardar material biológico, como un archivo genético que almacena.
Este tipo de clasificadores contribuyen, por supuesto, a labores diarias de casi todo tipo de
empleos, como registrar las comunicaciones que se sostienen con clientes, almacenar
datos de proveedores, archivar datos, números y todo tipo de información que el usuario
quiera poner en relación o encontrar fácilmente con sólo ingresar una palabra clave.
Sistema de control de abastecimiento de agua 2015
11
2.7.1 Conceptos básicos de una base de datos
En las secciones siguientes, se describen brevemente los componentes de una base de
datos de Access típica. Para obtener más información acerca de cada componente, siga los
vínculos de la sección Vea también de este artículo. (4)
Tablas
“Una tabla de una base de datos es similar en apariencia a una hoja de cálculo, en cuanto a
que los datos se almacenan en filas y columnas. Los datos sobre productos se almacenarán
en su propia tabla, y los datos sobre sucursales también tendrán su tabla aparte. Este
proceso se conoce como normalización.” (4)
Formularios
“Los formularios también conocidos como pantallas de entrada de datos. Son las interfaces
que se utilizan para trabajar con los datos, comúnmente contienen botones que ejecutan
diversos comandos. Se puede crear una base de datos sin usar formularios, editando los
datos de las hojas de las tablas.” (4)
Estos formularios proporcionan un formato fácil de utilizar para trabajar y ver los datos
ingresados.
Informes
“Los informes sirven para resumir y presentar los datos de las tablas. Regularmente,
responden a una pregunta específica. Un informe se puede ejecutar en cualquier momento
y siempre reflejará los datos actualizados de la base de datos. Los informes suelen tener un
formato que permita imprimirlos y también se pueden consultar en la pantalla, exportar a
otro programa o enviar por correo electrónico.” (4)
Sistema de control de abastecimiento de agua 2015
12
Consultas
“Las consultas son las que verdaderamente hacen el trabajo en una base de datos. Pueden
realizar numerosas funciones diferentes. Los datos que desea ver suelen estar distribuidos
en tablas y, gracias a las consultas, puede verlos en una sola hoja de datos. Las consultas a
menudo sirven de origen de registros para formularios e informes.” (4)
Macros
“Se pueden considerar como un lenguaje de programación simplificado, que se puede
utilizar para aumentar la funcionalidad de la base de datos. Las macros realizan tareas,
como abrir un informe, ejecutar una consulta o cerrar la base de datos.” (4)
Módulos
“Un módulo es una colección de declaraciones, instrucciones y procedimientos que se
almacenan conjuntamente como una unidad. Son objetos que sirven para aumentar la
funcionalidad de la base de datos.” (4)
Sistema de control de abastecimiento de agua 2015
13
2.8 Microsoft Access
“Microsoft Access, también conocido como MSAcces, es un sistema de gestión de bases de
datos o (SGBD) incluido en el paquete de Microsoft Office. Es igualmente un gestor de
datos que recopila información relativa a un asunto o propósito particular, como el
seguimiento de pedidos de clientes o en el mantenimiento de una colección de música. Si
no está almacenada en un equipo, o solo están partes de la misma, puede que deba hacer
un seguimiento de información procedente de varias fuentes en orden a coordinar y
organizar la base de datos de Access por medio de Microsoft Access, se puede administrar
gran cantidad de datos e información en un único archivo de base de datos.” (4)
Dentro del archivo, se puede utilizar: Tablas para almacenar datos, Consultas para buscar y
recuperar únicamente los datos que necesita. Formularios para ver los datos con un diseño
específico. Páginas de acceso a datos para ver, analizar o actualizar datos desde la base.
Sistema de control de abastecimiento de agua 2015
14
2.9 Visual Basic
“Visual Basic es un lenguaje de programación desarrollado por el Alemán Alan Cooper para
Microsoft. El lenguaje de programación es un dialecto de BASIC, con importante agregados.
Su primera versión fue presentada en 1991, con la intención de simplificar la programación
utilizando un ambiente de desarrollo completamente grafico que facilitara la creación de
interfaces gráficas y, en cierta medida, también la programación misma. Desde el 2001
Microsoft ha propuesto abandonar el desarrollo basado en la API Win32 y pasar a trabajar
sobre un Framework o marco común de librerías independientes de la versión del sistema
operativo, .NET Framework, a través del Visual Basic .NET (y otros lenguajes como C
Sharp (C#) de fácil transición de código entre ellos).” (6)
“Visual Basic (Visual Studio) constituye un IDE( entorno de desarrollo integrado o en inglés
Integrated Development Enviromet) que ha sido empaquetado como un programa de
aplicación, es decir, consiste en un editor de código(programa donde se escribe el código
fuente), un depurador (programa que corrige errores en el código fuente para que pueda ser
bien compilado), un compilador (programa que traduce el código fuente a lenguaje de
maquina), y un constructor de interfaz gráfica o GUI (es una forma de programar en la que
no es necesario escribir el código para la parte gráfica del programa, sino que se puede
hacer de forma visual).” (6)
Sistema de control de abastecimiento de agua 2015
15
Capítulo 3 3.1 Desarrollo
Al comenzar el proyecto, se realizó un programa que fuera capaz de interpretar al YF-S201
Hall Effect Water Flow Counter, éste fue elaborado en la plataforma del software de
arduino. El código, envía por el puerto serial la medición en litros (Liters), del sensor YF-
S201 Hall Effect Water Flow Counter.
El siguiente fragmento de código recibe la información de los pulsos y realiza el cálculo de
los litros que han pasado por el sensor.
.
void loop()
{
float liters = pulses;
liters /= 7.5;
liters /= 60.0;
Serial.print(liters); Serial.println (" Liters");
lcd.setCursor(0, 1);
lcd.print(liters); lcd.print(" Liters ");
delay(1000);
}
El código completo está localizado en el anexo, Código A1.
Sistema de control de abastecimiento de agua 2015
16
Después se procedió a realizar otro código que interpretará la señal del puerto serial para el
control de la electroválvula, que también fue realizado en la plataforma de programación de
arduino.
El código, recibe por medio del puerto serial un “1” si se desea abrir la válvula o un “0”si se
desea cerrarla, y envía un estado “HIGH” o un estado “LOW” al pin 23, que controlara al
estado de la válvula por medio de un relevador a 5v conectado a un transistor 2N2222 que
protegerá al arduino ya que el relevador es un dispositivo inductor.
void loop()
{
int recibido;
recibido=Serial.read(); //Lectura del puerto serial
if(recibido== '1')
{
digitalWrite(23,HIGH); //Orden de aperture
}
else if (recibido=='0')
{
digitalWrite(23,LOW); //Orden de cerrado
}
}
El código completo está localizado en el anexo, Código A2.
Sistema de control de abastecimiento de agua 2015
17
Se procedió a unir el Código A1 y el Código A2, para así ser posible la contabilización y
Bloqueo del fluido de manera simultánea. Al finalizar con la unión, se realizaron los códigos
para la comunicación entre arduinos por medio de protocolo I2C.
El fragmento de código siguiente pertenece al arduino maestro, que dependiendo de lo que
reciba vía puerto seria, para así poder llamar al esclavo, ya sea para pedirle o enviarle la
información.
void loop()
{
while(Serial.available()>0)
{
a = Serial.read(); //recibe por el puerto serial
b = a;
if(a >= 48 && a <= 57)
{
c = (int)a-48;
id = id * 10;
id = id + c; //guarda el número de arduino
}
Sistema de control de abastecimiento de agua 2015
18
En el fragmento siguiente dependiendo de lo recibido en el puerto serial pide o envía
información.
Wire.requestFrom(id, 1); // Solicita información al arduino
while(Wire.available())
{
int valor = Wire.read(); // Recibe información
Serial.println(valor);
}
else
{
Wire.beginTransmission(id);
if(b == 79)
Wire.write(1); // Envía información de apertura
if(b == 67)
Wire.write(0); // Envía información de clausura
Wire.endTransmission();
}
El código completo está localizado en el anexo, Código A3.
Sistema de control de abastecimiento de agua 2015
19
Para el arduino esclavo, el código contiene la fusión entre los códigos A1 y A2, además de
que cada esclavo debe tener un nombre con el cual el maestro pedirá la información (este
debe ser un número entero), en el siguiente fragmento de código se muestra como darle en
nombre al esclavo.
Wire.begin(2); // Se le asigna el nombre de 2 al esclavo.
Wire.onRequest(requestEvent);
Wire.onReceive(receiveEvent);
El código completo está localizado en el anexo, Código A4.
A continuación Se realizó una base de datos (DATABASE) por medio de la plataforma de
Windows llamada Access , llamada “Base de datos Proveeduría de Agua”, para la captura
de los datos y llevar el control de mediciones del sistema y mostrar el estado actual de la
válvula, identificando cada sistema por medio de un ID o registro único.
Ilustración 6 Plataforma de Access
Sistema de control de abastecimiento de agua 2015
20
Los campos que conforman la base de datos son:
1.-Estado de válvula
2.-Medición
3.-Fecha de corte
4.-Titular
5.-Calle
6.-Numero
7.-Colonia
8.-ID
Se realizó una interfaz en visual, la cual facilitará la interacción entre el usuario y el sistema,
la cual cuenta con un botón de “OPEN” que ordenará la apertura de la válvula y un botón
“CLOSE” que realizará la acción contraria. El botón “MEDICION” revisar y actualizar la
medición de un usuario en específico, al escribir su ID la caja de texto que se sitúa en la
parte izquierda de la interfaz y darle click en “SEARCH” y cuenta con un botón “REFRESH”
para refrescar la base de datos.
Esta interfaz también cuenta con un botón “CHECK ALL” que verifica las mediciones de
todos los usuarios que se encuentren en la base de datos.
Sistema de control de abastecimiento de agua 2015
21
Ilustración 7 Interfaz en visual
3.2 Pruebas y Resultados
3.2.1 YF-S201 Hall Effect Water Flow Counter Después de realizar el código fue probado con el sensor YF–S201 Hall Effect Water Flow
Counter vertiendo cantidades precisas, lo cual arrojo de resultado una buena contabilización
por medio del sensor.
Ilustración 8 Prueba de YF-S201 Hall Effect Water Flow Counter
Sistema de control de abastecimiento de agua 2015
22
3.2.2 Electroválvula
Se realizó la prueba del código A2 para comprobar el control de la electroválvula, los
resultados de esta prueba fueron los esperados, ya que funciono de manera perfecta la
conmutación del relevador por lo tanto la válvula realizo la función esperada.
3.2.3 Comunicación
Para la comunicación se necesitó un arduino maestro y un arduino esclavo, estos nombres
se les asignan por los códigos A3 y A4 ubicados en el anexo A. Se comprobó que al ser
llamado el arduino esclavo enviara información correcta, el protocolo funciono
correctamente ya que fue posible pedir información y recibirla sin ninguna complicación.
Ilustración 9 Prueba de comunicación entre Arduinos con protocolo I2C
Sistema de control de abastecimiento de agua 2015
23
Capítulo 4 Conclusiones
Hoy en día los sistema de contabilización y suspensión de agua se podría decir que es un
poco ineficiente, ya que si la persona que suspende el servicio no lo hace correctamente
puede causar fugas, al igual que es simple el robo de este servicio, ya que la suspensión
consta solo del retiro de un cople, y por lo tanto representa pérdidas considerables para el
organismo prestador de este servicio.
Es por esto que se buscó realizar un sistema más eficiente que el actual ya que además de
ser más seguro al momento de la suspensión agilizará la contabilización ya que cuenta con
una comunicación directa con una base de datos que capturará el consumo de cada
sistema y proveerá una excelente contabilización y control, con ayuda de una interfaz
sencilla. Finalmente el objetivo del proyecto se realizó de una forma exitosa, logrando así,
un sistema de control de abastecimiento de agua que fuera capaz de capturar la medición
así como de controlar el flujo, capturar esta información y enviarla a una base de datos a
una PC que gracias a la interfaz ofreciendo una manera más rápida de suspensión y
reactivación tanto como de contabilización de agua.
Sistema de control de abastecimiento de agua 2015
24
ANEXO
Código A1
#include "LiquidCrystal.h"
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
#define FLOWSENSORPIN 2
volatile uint16_t pulses = 0;
volatile uint8_t lastflowpinstate;
volatile uint32_t lastflowratetimer = 0;
volatile float flowrate;
SIGNAL(TIMER0_COMPA_vect) {
uint8_t x = digitalRead(FLOWSENSORPIN);
if (x == lastflowpinstate) {
lastflowratetimer++;
return;
}
if (x == HIGH) {
pulses++;
}
lastflowpinstate = x;
flowrate = 1000.0;
flowrate /= lastflowratetimer;
lastflowratetimer = 0;
}
void useInterrupt(boolean v) {
Sistema de control de abastecimiento de agua 2015
25
if (v) {
OCR0A = 0xAF;
TIMSK0 |= _BV(OCIE0A);
}
else {
TIMSK0 &= ~_BV(OCIE0A);
}
}
void setup() {
Serial.begin(9600);
Serial.print("Flow sensor test!");
lcd.begin(16, 2);
pinMode(FLOWSENSORPIN, INPUT);
digitalWrite(FLOWSENSORPIN, HIGH);
lastflowpinstate = digitalRead(FLOWSENSORPIN);
useInterrupt(true);
}
void loop()
{
float liters = pulses;
liters /= 7.5;
liters /= 60.0;
Serial.print(liters); Serial.println(" Liters");
lcd.setCursor(0, 1);
lcd.print(liters); lcd.print(" Liters ");
delay(1000);
}
Sistema de control de abastecimiento de agua 2015
26
Código A2
void setup ()
{
Serial.begin(9600);
pinMode(23,OUTPUT);
}
void loop()
{
int recibido;
recibido=Serial.read();
if(recibido== '1')
{
digitalWrite(23,HIGH);
}
else if (recibido=='0')
{
digitalWrite(23,LOW);
}
}
Sistema de control de abastecimiento de agua 2015
27
Código A3
#include <Wire.h>
void setup()
{
Wire.begin(); // join i2c bus (address optional for master)
Serial.begin(9600);
pinMode(13,OUTPUT);
}
char a, b;
int c, aux = 0;
int id=0;
int recibido;
void loop()
{
while(Serial.available()>0)
{
a = Serial.read();
b = a;
if(a >= 48 && a <= 57)
{
c = (int)a-48;
id = id * 10;
id = id + c;
}
Sistema de control de abastecimiento de agua 2015
28
else
aux = 1;
}
if(aux == 1)
{
if( b != 79 && b != 67)
{
Wire.requestFrom(id, 1); // Solicita medicion al arcuino ID
while(Wire.available()) // slave may send less than requested
{
int valor = Wire.read(); // Recibe medicion
Serial.println(valor); // Envía medicion a VB
}
}
else
{
Wire.beginTransmission(id);
if(b == 79)
Wire.write(1);
if(b == 67)
Wire.write(0);
Wire.endTransmission();
}
aux = 0;
id = 0;
}
}
Sistema de control de abastecimiento de agua 2015
29
Código A4
#include "LiquidCrystal.h"
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
#define FLOWSENSORPIN 2
volatile uint16_t pulses = 0;
volatile uint8_t lastflowpinstate;
volatile uint32_t lastflowratetimer = 0;
volatile float flowrate;
SIGNAL(TIMER0_COMPA_vect) {
uint8_t x = digitalRead(FLOWSENSORPIN);
if (x == lastflowpinstate) {
lastflowratetimer++;
return;
}
if (x == HIGH) {
pulses++;
}
lastflowpinstate = x;
flowrate = 1000.0;
flowrate /= lastflowratetimer;
Sistema de control de abastecimiento de agua 2015
30
lastflowratetimer = 0;
}
void useInterrupt(boolean v) {
if (v) {
OCR0A = 0xAF;
TIMSK0 |= _BV(OCIE0A);
} else {
TIMSK0 &= ~_BV(OCIE0A);
}
}
#include <Wire.h>
float liters;
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
pinMode(FLOWSENSORPIN, INPUT);
digitalWrite(FLOWSENSORPIN, HIGH);
lastflowpinstate = digitalRead(FLOWSENSORPIN);
useInterrupt(true);
Sistema de control de abastecimiento de agua 2015
31
Wire.begin(2); // join i2c bus with address #2
Wire.onRequest(requestEvent); // register event
Wire.onReceive(receiveEvent);
pinMode(22,OUTPUT);
}
char valor;
void loop()
{
delay(100);
lcd.setCursor(0, 0);
lcd.print("Pulses:"); lcd.print(pulses, DEC);
lcd.print(" Hz:");
lcd.print(flowrate);
liters = pulses;
liters /= 7.5;
liters /= 60.0;
/* Serial.print(liters); Serial.println(" ");
lcd.setCursor(0, 1);
lcd.print(liters); lcd.print(" ");
*/
delay(1000);
}
void receiveEvent(int howMeny)
{
Sistema de control de abastecimiento de agua 2015
32
while(1 < Wire.available())
char recibido = Wire.read();
int x = Wire.read();
if(x == 1)
digitalWrite(22,HIGH);
if(x == 0)
digitalWrite(22,LOW);
}
void requestEvent()
{
Wire.write((int)liters); }
Sistema de control de abastecimiento de agua 2015
33
Glosario
Interfaz.
Es el medio con que el usuario puede comunicarse con una máquina, un equipo o una
computadora, y comprende todos los puntos de contacto entre el usuario y el equipo.
Sensor.
Es un dispositivo capaz de detectar magnitudes físicas o químicas, llamadas variables de
instrumentación, y transformarlas en variables eléctricas.
ID.
Número de identificación único.
Hardware Wiring.
Es un pequeño circuito que incluye un diminuto computador del tamaño de una estampilla
conocido como microcontrolador.
Flujómetro.
Es un aparato portátil que permite medir la máxima cantidad de aire exhalado.
Sistema de control de abastecimiento de agua 2015
34
Microcontrolador.
Es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su
memoria
Arduino.
Es una plataforma de electrónica abierta para la creación de prototipos basada en software
y hardware.
Sistema de control de abastecimiento de agua 2015
35
Referencias
(1) Ordóñez, J. (2005). Medidores de flujo. Mayo 19, 2015, de Monografias Sitio web:
http://www.monografias.com/trabajos31/medidores-flujo/medidores-flujo.shtml
(2) Técnico. (Septiembre 23,2013). QUÉ ES UNA ELECTROVÁLVULA. Mayo 19,2015,
de Distritec Sitio web:
http://www.distritec.com.ar/detalleNovedad.php?titulo=%BFQU%C9%20ES%20UNA
%20ELECTROV%C1LVULA%20Y%20PARA%20QU%C9%20SIRVE
(3) Arduino. (2015). Arduino. Mayo 21,2015, de Arduino Sitio web:
http://www.arduino.cc/en/pmwiki.php?n=Main/Software
(4) Anónimo. (2015). Conceptos básicos sobre bases de datos. mayo 21,2015, de
support.office Sitio web: https://support.office.com/es-ar/article/Conceptos-
b%C3%A1sicos-sobre-bases-de-datos-a849ac16-07c7-4a31-9948-
3c8c94a7c204?ui=es-ES&rs=es-AR&ad=AR
(5) Arduino. (noviembre 18, 2014). I2C. mayo 23, 2015, de Arduino Sitio web:
https://aprendiendoarduino.wordpress.com/2014/11/18/tema-6-comunicaciones-con-
arduino-4/
(6) Microsoft. (2015). Visual Basic. Mayo 23, 2015, de microsoft Sitio web:
https://msdn.microsoft.com/es-es/library/2x7h1hfk.aspx
Sistema de control de abastecimiento de agua 2015
36
Imágenes
Ilustración 1, Anónimo. (Anónimo). Sensor Medidor de Flujo YF-S201. Mayo
18,2015, de vistronica Sitio web: https://www.vistronica.com/sensores/sensor-
medidor-de-flujo-yf-s201-detail.html
Ilustración 2 Electroválvula, autoría propia.
Ilustración 3 Anónimo. (2013). I2C. Mayo 26, 2015, de IKKARO Sitio web:
http://www.ikkaro.com/comunicacion-i2c-arcuino/
Ilustración 4 Imagen Arduino mega 2560, Arduino. (2015). Arduino. Mayo 21,2015,
de Arduino Sitio web: http://www.arduino.cc/en/pmwiki.php?n=Main/Software
Ilustración 5 Interfaz de programación en Arduino, autoría propia.
Ilustración 6 Plataforma de Access, autoría propia.
Ilustración 7 Interfaz en visual, autoría propia.
Ilustración 8 Prueba de YF-S201 Hall Effect Water Flow Counter, autoría propia.
Ilustración 9 Prueba de comunicación entre Arduinos con protocolo I2C, autoría
propia.
Recommended