You are on page 1of 64

UNIVERSIDAD CATÓLICA DE SANTA MARÍA

FACULTAD DE CIENCIAS E INGENIERÍAS FÍSICAS Y


FORMALES
PROGRAMA PROFESIONAL DE INGENIERÍA
ELECTRÓNICA

____________________ TERCERA FASE – DÉCIMO SEMESTRE___________________

TRABAJO:

INFORME FINAL DE PROYECTO DE TESIS

CURSO:

PROYECTO DE TESIS

ALUMNO:

ZEVALLOS CARLOS, GUSTAVO

DOCENTE:

ING. VICTOR HUGO RIVERA CHAVEZ

AREQUIPA-PERÚ

2017

1
DESARROLLO DE UN SISTEMA DE
MEDIDOR ELECTRÓNICO WIRELESS DE
AGUA POTABLE PARA DOMICILIOS

2
Dedico este trabajo primeramente a Dios
quien da capacidad y conocimiento a todo
el que le busque, a mis padres, a mi
familia en general.

Que la tecnología sea motivo de progreso


y nos acerque para aprovechar mucho
mejor los avances tecnológicos de nuestra
época.

3
Agradecimientos

A mis padres que fueron siempre excelentes en sus consejos y su ánimo para seguir

estudiando.

A Dios por su fidelidad en la economía. Nunca falló.

A mis docentes, porque de ellos obtuve muy buenos ejemplos a seguir y supieron

aconsejarme para percibir los aspectos negativos de la sociedad y no dejarme llevar,

sino rescatar la humanidad por sobre todas las cosas.

4
5
RESUMEN

En este trabajo se desarrollará un prototipo de sistema de medición electrónica del


consumo de agua, de un cliente de SEDAPAR, como la facilidad de obtener
información de cuanto se consumió y cuanto es el precio de consumo. Estos datos serán
enviados al usuario para que pueda llevar un conteo y medición de su consumo de agua
al mes.
Las mediciones que se dan, son calibradas con sumo cuidado para poder tener una
cuantificación precisa del caudal.
Este pequeño prototipo tendrá como objetivo, más adelante, tener un interfaz entre
usuario y el equipo de medición mediante Internet, por el momento en este trabajo, se
limita a solo dar a conocer el consumo de agua y el precio que el cliente deberá pagar
por el mes que utilizó tal elemento vital.
Adicionalmente, el módulo que se utiliza en la comunicación de datos, entre el equipo a
implementar y el usuario trabaja con GPRS o GSM, esto facilitará posteriormente a
trabajar con la Internet (nube).
El equipo tiene una facilidad de manipulación bastante básica, esto facilita que un
técnico pueda sencillamente instalarlo en las viviendas sin ningún esfuerzo.

6
ABSTRACT

In this work, a prototype of the electronic measurement system of water consumption


will be developed, from a SEDAPAR client, such as the ease of obtaining information
on how much was consumed and how much is the consumption price. These data will
be sent to the user so that they can keep a count and measure their water consumption
per month.
The measurements that are given, are calibrated with great care to be able to have a
precise quantification of the flow.
This small prototype will aim, later on, to have an interface between the user and the
measuring equipment through the Internet, for the moment in this work, it is limited to
only disclosing the water consumption and the price that the client must pay for the
month that used such a vital element.
Additionally, the module that is used in the communication of data, between the
equipment to be implemented and the user works with GPRS or GSM, this will
facilitate later to work with the Internet (cloud).
The equipment has a fairly basic handling facility, this makes it easy for a technician to
simply install it in the homes without any effort.

7
ÍNDICE GENERAL
1. INTRODUCCIÓN
1.1 Antecedentes
1.2 Objetivos de la Tesis
1.3 Estructura de la Tesis

2. ASPECTOS TÉCNICOS Y TECNOLÓGICOS DE LOS APARATOS DE MEDICIÓN


2.1 Conceptos Básicos de Micromedidores
2.1.1 Medidores De Caudal
2.1.2 Glosario De Términos Técnicos
2.2 Curva Característica
2.2.1 Algunos Términos y Definiciones
2.2.2 Clases Metrológicas de los Micromedidores
2.2.3 Curva Característica de Error.

3. ESTADO DEL ARTE


3.1. El Internet de das Cosas
3.2. GSM
3.3. GPRS
3.4. Comandos AT

4. LA PLATAFORMA DE ARDUINO
4.1 Entorno de Desarrollo en Arduino
4.2 Shields Gprs/Gsm
4.3 Sensor de Flujo de Agua (Caudal)

5. PLANTEAMIENTO DEL PROBLEMA


5.1 Solución 1 – Arad Group
5.2 Solución 2 – Diseño de un Sistema Dedicado

6. DESARROLLO EXPERIMENTAL
6.1 Comenzando con Arduino. Hola Mundo
6.2 Evaluación de los Distintos Sensores de Temperatura
6.2.1 Calibrando Nuestro Sensor de Flujo:
6.3 Lcd
6.3.1 Código Fuente LCD 16×2 Arduino
6.3.2 Conexión LCD 16×2 Arduino
6.4 Shield GPRS / GSM
6.4.1 Conexiones y Puesta en Marcha
6.4.2 Envío de SMS a Través de Arduino
6.5 Desarrollo de Aplicaciones y Evaluación del Sistema
6.5.1 Montaje y Prueba
6.5.2 Evaluación del Sistema de Gestión Local
6.5.3 Resultados

7. CONCLUSIONES Y RECOMENDACIONES

BIBLIOGRAFÍA

8
Capítulo 1

Introducción

Uno de los temas más controversiales en el mundo, es la escasez del agua dulce y el
cambio climatológico que se presenta en nuestro planeta. Esto genera que tengamos bastante
consideración en el momento del aprovechamiento del recurso natural más importante para la
vida del ser humano y del medio ambiente.

Como bien se sabe, nuestro planeta está cubierto por 3/4 partes (71%) de agua en la superficie
de la tierra, y el resto es la tierra en la cual habitamos, sin embargo el 97% del agua, es salada y
de esta el 3% es agua dulce. Para esto el ser humano implemento sistemas de acueducto para el
servicio de agua potable en la civilización y así poder utilizar más eficiente este elemento tan
escaso en la naturaleza.

En nuestro país aún contamos con medidores mecánicos, los cuales para poder obtener el
consumo que se realizó durante el mes, un técnico o personal de SEDAPAR viene a
inspeccionar la lectura del medidor y lo registra en su hoja manual y este a su vez entrega un
sistema de facturación, esto genera una error leve en la medición del consumo.

En ciertas ocasiones la presión del agua va cambiado (baja o sube), esto el cliente debe de
reportar a un servidor de SEDAR para presentar las quejas o reclamos o si en caso presenta un
corte de este suministro vital.

Para ello se tiene pensado implementar un sistema de medición electrónica del consumo de
agua, con el fin de que el usuario tenga a su disposición la información de consumo. Con esta
base empezaremos a diseñar un breve sistema que abarcará un gran proyecto de implementación
a nivel regional.

Mi proyecto abarca el sistema de medición y control del caudal del agua con la tecnología que
brinda el módulo de ARDUINO SIM. Con esto tendremos el manejo de transmisión de datos al
usuario, del consumo que hizo durante las últimas 24h.

9
Para ello, el usuario dispondrá de un número de teléfono celular, el cual recibirá un mensaje
SMS del medidor electrónico de agua, y solo él y nadie más tendrán acceso a la información del
consumo que realizó.

Este proyecto también tiene mira a implementarse a nivel de red domiciliar de una manzana o
urbanización. Con el poco tiempo que se dispone en el curso, solo se implantará las bases para
la ejecución del proyecto final, el cual trabajará con un sistema conectado a internet, el cual
brindará información del usuario (consumo, presión de agua) a la empresa de SEDAPAR, y esta
a su vez dar comunicado de corte agua y el día a pagar el recibo. Todo esto el usuario lo podrá
ver como un SMS en su celular, y a la vez tener información de su recibo en internet.

1.1 ANTECEDENTES

En primer lugar se tiene que, en Agosto de 2013 fue presentado en la Facultad de Ingeniería
Industrial de la Universidad Nacional Mayor de San Marcos (UNMSM) una revista de
investigación de “Diseño De Un Sistema Móvil Para La Lectura De Medidores Mediante
Tecnología Bluetooth” por Elizabeth Saravia Valle, María Elena Ruiz Rivera, Roberto Calmet
Agnelli [1].

La investigación que aportaron en este artículo, fue la implementación de los sistemas de


medición electrónica basándose en diferentes tipos de comunicación inalámbrica como,
Bluetooth, Wi-Fi, GPRS, 3G de las cuales optaron por Bluetooth ya que esta le permitía formar
redes de hasta siete medidores simultáneamente.

También se consultó una revista de investigación que es Septiembre de 2008 presentado por
José Andrés Chaves Osorio, Hugo Baldomiro Cano Garzón, Esteban Elias Giraldo, con el
motivo de desarrollar el protocólogo para la aplicación comercial e industrial de la tecnología
ZigBee en la Universidad Tecnológica de Pereira titulado Propuesta De Aplicación “Medición
Del Consumo De Agua Domiciliaria Utilizando Tecnologia Inalámbrica Zigbee”. [2]

En esta revista de investigación que presentaron, se enfoca en la implementación del


protocólogo ZigBee, ya que esta tecnología presenta un bajo consumo de energía en
comparación con el Wi-Fi, GPRS, además consta de una Netword que está formado de un
coordinador ZigBee (ZC),Router ZigBee(RZ), Dispositivo final (ZED). Esta implementación
posee topologías de: Estrella, en árbol y en malla.

Esta propuesta presentada la integración de un medidor de caudal de agua, empleando un sensor


de efecto hall que ofrece un alto grado de exactitud en la medición del agua.

Y por último en esta misma labor de investigación y consulta se encontró el trabajo especial de
grado titulado “El Sistema DIALOG 3G y su Influencia en la Optimización Del Proceso de
Lectura y Facturación de SEDAPAL, Caso Condominio Nuevo Cercado Del Distrito de
Lima” presentado en el 2015, por Máximo León Salcedo ante la Facultad de Ingeniería de
Sistemas y Electrónica de la Universidad Tecnológica del Perú (UTP), como requisito para optar
el título de Profesional de Ingeniero de Sistemas e Informática. [3]

El trabajo como uno de sus objetivos tiene el establecer la lectura de medición de agua para
gestionar y controlar en tiempo real los medidores de agua del condominio Nuevo Cercado de
Lima, todo esto en tiempo real con el fin de reducir las pérdidas o fugas de agua en las redes de

10
medidores del lugar establecido, utilizando de su propio software y su sistema Dialog 3G [3].
Con este sistema puede brindar informes y análisis estadísticos mejorando en gran madera el
proceso de facturación de los recibos de consumo de agua que brinda la empresa de SEDAPAL,
mejorando así el servicio que brinda esta empresa.

También este sistema cuenta con un software de internet que es CityMind que recolecta
informes y análisis estadísticos, brindando en tiempo real las fugas, violaciones y sospechas de
robo.

1.2 OBJETIVOS DE LA TESIS

Objetivo Principal:

Proveer de un sistema de medición electrónico automatizado inalámbricamente con el módulo


ARDUINO SIM de tecnología GSM/GPRS.

Objetivo General:

Disponer de un sistema de medición electrónica de agua más barato que el medidor que se
vende en el mercado, el cual es mecánico.

Tener un acceso a la base de datos del consumo de agua con una buena exactitud usando el
efecto Hall del sensor de caudal de agua.

Implementar un sistema de medición electrónica para la empresa de SEDAPAR el cual tenga


acceso y control del agua que brinda a sus clientes.

Cambiar los medidores mecánicos por medidores electrónicos que son más precisos a la hora de
medir el consumo total que se hizo durante el mes.

1.3 ESTRUCTURA DE LA TESIS

Se desarrollará un sistema que mida el flujo de agua a través de la tubería del acueducto. Este
contará con un sensor el cual será una turbina que a la vez generará energía para el sistema.
Contará así mismo con un micro controlador que recibirá los datos de la turbina (el número de
vueltas) y procederá a hacer los cálculos para transformar la velocidad de rotación en
dimensiones de caudal o flujo.

Una vez hecha la transformación, se almacenará en un banco de datos la cantidad de agua que
se consumió durante las últimas 24h. Esto se hará al finalizar el día, hasta completar el mes
establecido de la lectura que suele hacer el personal de SEDAPAR.

La forma en la cual el sistema enviará los datos al usuario será a través de un módulo Arduino
SIM en forma de SMS. El cliente tendrá a su información la cantidad consumida en el día, la
baja o alta presión con la que viene el agua y finalmente la cantidad a pagar en este día.

Este trabajo de implementación podrá ser utilizado en el proceso de lectura de medidores de


energía a través de un dispositivo móvil, ya que es el mismo principio de la medición de agua.

11
Capítulo 2
Aspectos Técnicos y Tecnológicos de los
Aparatos de Medición

Los objetivos del presente capitulo son:

Definición de conceptos básicos generales sobre los Micromedidores.

Explicación sobre el funcionamiento de los aparatos y sus curvas de error.

Explicación del funcionamiento de los medidores utilizados para la toma de datos del proyecto.

Relacionar las normas, que se aplican en el Perú y que están vigentes, sobre el tema de
Micromedidores.

Es importante enmarcarnos en el tema del presente capitulo ya que ayudara a entender la


importancia del proyecto y la utilidad del mismo.

Los medidores de agua, independientemente de su tecnología, son instrumentos de medición


que registran continuamente el volumen del agua que circula a través de ellos.

12
Figura 1. Medidores de Agua domiciliarios utilizados actualmente
Fuente: Google

Para el diseño de estos medidores de agua abarcan materiales de elaboración, la temperatura del
agua, las presiones de operación, el rango del caudal deseado, la diferencia de presión a través
del medidor al caudal máximo, el rango de humedad y temperaturas ambiente bajo condiciones
de operación, también incluyen otros factores como el diámetro de la tubería, las conexiones de
los extremo, y las limitaciones de instalación.

Figura 2 Despliegue de un medidor de chorro múltiple.

Este medidor es el que más suele ser usado en las instalaciones domésticas. La forma en la que
opera estos medidores, se basa en la acción del agua sobre los alabes de la turbina, y en el hecho
que el área por donde circula el agua es constante. La relación usada para obtener el volumen
circundante se basa en el número de vueltas o revoluciones de la hélice o alabe, de esta forma:

V =f (n)

Donde:

n = Número de vueltas/tiempo.

El caudal es el producto de la velocidad y el área normal es de esta forma:

Q=V ∙ A=f (n)∙ A

13
Así, el volumen de agua que ha pasado por el medidor en un tiempo t, es:

Vol=Q ∙t=f ( n ) ∙ A ∙ t=f (Números de vueltas /t) ∙ A ∙ t

Vol=f (Número de vueltas )∙ A

Figura 3 Principio de funcionamiento de un medidor de chorro único y múltiple.

2.1 CONCEPTOS BÁSICOS DE MICROMEDIDORES.

2.1.1 MEDIDORES DE CAUDAL [4]

Los medidores de agua son dispositivos de medición empleados por la mayoría de empresas
prestadoras del servicio de agua potable para conocer el volumen de agua suministrado aguas
abajo del mismo entre dos lecturas, información que se utiliza para procesos de facturación de
los consumos de los suscriptores.

Estos medidores no son precisamente caudalímetros (dispositivos para determinar el caudal


instantáneo), puesto que disponen de un mecanismo totalizador del volumen trasegado, aunque
al conocer el volumen consumido durante un cierto periodo de tiempo, es posible determinar el
caudal medio circulante.

Hoy en día se han venido desarrollando modelos de medidores que incorporan circuitos
electrónicos capaces de realizar funciones adicionales como la determinación de caudales
máximos y mínimos instantáneos, curvas patrón de consumos, tiempo de giro y tiempo de paro,
fugas, entre otros, así como sistemas de emisores de pulsos capaces de dar una señal eléctrica
cada vez que el totalizador contabiliza un volumen determinado, y trasmitir dicha señal a un
sensor análogo o un data Logger [5] que permite la acumulación de dicha información, e
incluso, si el sistema de medición dispone de una salida remota, dicha señal pueda ser enviada
vía internet o telefónica a un centro de control, sin necesidad de requerir ir a campo a recoger
los datos.

Estos dispositivos de medición, para el caso particular de los usuarios residenciales de un


sistema de suministro de agua potable, se instalan a la entrada de la vivienda de cada usuario
cuando este es individual (como las casas), o instalados en un tablero de contadores o centro de
medición cuando se trata de un conjunto de viviendas agrupadas (como los edificios de
apartamentos).

14
2.1.2 GLOSARIO DE TÉRMINOS TÉCNICOS [6]

Caudal de Arranque o Inicio de Movimiento. Es el caudal a partir del cual, el medidor


empieza a dar indicación de consumo, sin importar los límites prefijados para los errores, es
decir, sin un grado de error en particular.

Caudal mínimo (Q1). El menor caudal al cual se requiere que el medidor de agua opere dentro
del EMP. Entre este caudal y el de transición el error del medidor no debe superar el +- 5%.

Caudal permanente (Q3). Mayor caudal dentro de las Condiciones de Operación Nominales
(“CON” por abreviatura) a la cual se requiere que el medidor de agua opere de manera
satisfactoria dentro del error máximo permisible.

Caudal de sobrecarga (Q4). Máximo caudal al cual el medidor de agua debe operar durante un
período de tiempo corto dentro de su EMP, mientras mantiene su desempeño metrológico
cuando opera posteriormente dentro de sus CON.

Caudal de transición (Q2). Caudal que ocurre entre el caudal permanente, Q3 , y el caudal
mínimo, Q1, que divide el rango de caudal en dos Zonas, la “Zona superior” y la “Zona
inferior”, cada una caracterizada por su propio EMP. En este rango el error del medidor no debe
superar el +- 2%.

Curva de Error. Representación gráfica de los errores relativos del medidor, en función del
caudal.

Error de indicación. Volumen indicado, menos el volumen real.

Condiciones de operación nominales. (CON).Condiciones de uso que dan el rango de valores


de los factores de influencia, para los cuales se requiere que los errores de indicación del
medidor estén dentro del EMP.

Error máximo permisible. (EMP). Los valores extremos del error relativo de la indicación del
medidor de agua, permitidos en la norma SISTEC de la EAAB.

Volumen indicado. (Vi). Volumen del agua indicado por el medidor, que corresponde al
volumen real.

El error de un medidor a un caudal dado se define como:

Qmedidor −Qreal ∀ medidor−∀ real


ε= =
Q real ∀real

En función a las anteriores definiciones, únicamente se regula el error máximo que puede
cometer un medidor a partir del caudal mínimo, pero no existe dentro de la normatividad nada
respecto al error máximo que debe tener un medidor a caudal de arranque, así como el error
entre el caudal de arranque y el caudal mínimo.

Lo que diferencia una clase metrológica de otra es precisamente los valores de los caudales
mínimos y de transición.

15
2.2 CURVA CARACTERÍSTICA:

2.2.1 ALGUNOS TÉRMINOS Y DEFINICIONES [7]

Caudal Q

Cociente del volumen real de agua que pasa por el medidor de agua y el tiempo que este
volumen tarda en pasar por el medidor de agua.

Volumen real Va

Volumen total de agua que pasa por el medidor de agua, sin tomar en cuenta el tiempo que lleva.
NOTA Éste es el mensurando del medidor.

Error máximo permisible EMP

Valores extremos del error relativo de indicación del medidor de agua que esta parte de la norma
NMP 005:2011 permite.

Condiciones nominales de funcionamiento CNF

Condiciones de uso que dan el alcance de valores de los factores de influencia, para los cuales
se requiere que los errores de indicación del medidor de agua se encuentren dentro del EMP.

Error relativo

Error de indicación dividido entre el volumen real, expresado como porcentaje.

V i −V a
ε= ×100
Va

Donde:

V i Es el volumen indicado.

V a Es el volumen real.

2.2.2 CLASES METROLÓGICAS DE LOS MICROMEDIDORES. [8]

La clase metrológica hace referencia a la codificación metrológica sobre la calidad del medidor,
la cual se toma de referencia en esta tesis, la Norma Técnica Colombiana NTC 1063 -1. Esta,
está determinada por los valores correspondientes al caudal mínimo y al caudal de transición. Se

16
denomina así por las tres primeras letras mayúsculas del abecedario A, B, C, organizadas de
menor a mayor calidad siendo clase A la de menor calidad y clase de la mayor calidad.

 Clase A: Podemos catalogarla como la más propensa a manejar grados de exactitud


pobres, esto debido a que su desarrollo tecnológico es corto comparado con clases
metrológicas superiores. Presente en la década de 1980.

 Clase B: Con un mayor desarrollo tecnológico, permitió registrar una precisión más alta
que su antecesor, aunque con márgenes de error permisibles importantes.

 Clase C: La más avanzada dentro de las tres en materia de precisión y confiabilidad.

 De acuerdo con la investigación de los archivos de instalación de medición de la


empresa, entre los años 2005 y 2009, esta clase de medidores fue empleada para todas
las nuevas conexiones y reemplazos de equipos.

 Clase R160: En los últimos 3 años, la empresa viene incorporando la Clase R160,
acorde con los avances y desarrollo tecnológico del mercado. Esto influenciado en gran
parte por lo establecido en la norma tercera actualización de la Norma Técnica
comentada anteriormente, en el numeral 5.1 Características Metrológicas. Por lo tanto,
en la actualidad, es esta la tecnología que se aplica para la medición del consumo.

2.2.3 CURVA CARACTERÍSTICA DE ERROR.

Los medidores de agua se designan en litros por hora, de acuerdo con el caudal mínimo Q1, el
caudal de transición Q2, el caudal permanente Q3 y el caudal de sobrecarga Q4.

Todo Micromedidor tiene un error de medición. En la Figura 4 se muestra una curva típica de
error en la cual debe funcionar un medidor nuevo.

El medidor no registra consumos en caudales muy bajos, desde un determinado caudal el


medidor inicia su movimiento con un error de medición de registro alto, este caudal delimita el
caudal de arranque del medidor. A medida que el caudal se incrementa el medidor registra una
reducción del error de medición llegando a tomar errores positivos de registro hasta llegar a
equilibrarse, marcando el error máximo permisible de Q1. Entre Q1 y Q2 se reduce el nivel de
error para ajustarlo al nivel del error de funcionamiento que es el registro entre el Q2 y el Q4.

17
Figura 5 Curva característica de error de un medidor de agua potable.
Fuente: Norma NMP 005 1
Clave [7]
X Caudal
Y Error de indicación del flujo volumétrico %
1 Condiciones límite (CL)
2 Condiciones nominales de funcionamiento (CNF)
3 Condiciones límite (CL).

Nótese que en la figura 5, la curva no arranca desde 0, ya que los medidores desde su
fabricación implícitamente traen un margen de error que para las clases C y R160 es del + - 2%.
De otro lado, en la figura se aprecia que la zona marcada en rojo indicaría el patrón óptimo en el
cual un medidor deberá comportarse a lo largo de una serie de pruebas que se registren a
distintas presiones hidráulicas, caudales y periodos de tiempo, por lo tanto, si en el ejercicio de
estas la curva sale de la zona, el laboratorio determinará que el medidor no está en condiciones
para ser operado, ya sea por sub - medición o sobre - medición.

18
Capítulo 3
Estado del Arte

En este capítulo se va a realizar un resumen sobre el estado del arte de las diferentes
tecnologías implicadas en el desarrollo del proyecto, las cuales podremos asociar con el término
‘internet de las cosas’. Se trata de los sistemas de comunicaciones GSM, GPRS, y la utilización
de Comandos Hayes (o comandos AT).

3.1. EL INTERNET DE LAS COSAS

La expresión “Internet de las Cosas” hace referencia a la interconexión entre objetos de


consumo o de uso cotidiano (electrodomésticos, ropa, libros, productos alimenticios, etc.) a
través de ciertos dispositivos capaces de conectarlos a la red. En la figura 6 se resume el
concepto de IoT.

19
Figura 6. Concepto del “Internet de las cosas”
Fuente: Google

Las utilidades del Internet de las Cosas pueden considerarse prácticamente infinitas. Cada vez
son más los medios que tenemos a nuestra disposición para implementar, de manera no muy
compleja, un posible dispositivo capaz de dotar a cierto objeto o función de una conexión a la
red, ya sea por medio de una tecnología u otra.

La llegada de IPv6 supone un factor clave en el desarrollo del concepto IoT. Gracias a este
nuevo protocolo (diseñado para reemplazar a IPv4) se evitará que el crecimiento de Internet
quede restringido, y hará posible la gestión de direccionamiento de innumerables dispositivos.

Por otro lado, ya son muchas las aplicaciones móviles y servicios en la nube que nos permiten la
conexión a todos estos dispositivos, y proporcionan una vía para el tratamiento de una inmensa
cantidad de datos en tiempo real (sistemas ‘Big Data’), facilitando la integración de infinidad de
sensores aplicables prácticamente a cualquier tipo de necesidad. [9]

Figura 7. Expectativas de crecimiento de dispositivos inteligentes interconectados


Fuente: Sistemas de control de temperatura a través de Arduino y tecnología GPRS/GSM

20
Sin ir tan lejos, Arduino ha marcado un punto de inflexión en este sentido, convirtiéndose en la
herramienta ideal para llevar a cabo multitud de prototipos y obtener nuevos caos de uso.

Gracias a su bajo coste, sencillez y a la variedad de modelos que podemos encontrar, resulta una
herramienta de gran ayuda a la hora de implementar ideas y soluciones de ámbito doméstico.
Además, existen multitud de sensores y actuadores compatibles con esta plataforma, mediante
los cuales podemos recopilar datos de nuestro entorno, analizarlos, y actuar en consecuencia,
incluso conectar con otros dispositivos a través de las distintas tecnologías de comunicación
(GSM/GPRS, 3G, Bluetooth, RFID, etc.) aprovechando toda una variedad de shields de
expansión.

3.2. GSM

GSM es la abreviatura de ‘Sistema Global para las comunicaciones Móviles’ (en inglés, Global
System for Mobile communications). A comienzos del siglo XXI, es el estándar más utilizado
de Europa. [10] Conocido como estándar de segunda generación (2G), su principal diferencia
respecto a la primera generación de teléfonos móviles es que sus comunicaciones son totalmente
digitales.

En Europa, el sistema GSM utiliza las bandas de frecuencia de 850, 900 y 1800 MHz, mientras
que en los Estados Unidos se usa la banda de frecuencia de 1900 MHz. En consecuencia, los
dispositivos de comunicaciones móviles que pueden operar tanto en Europa como en Estados
Unidos se conocen como cuatribanda (Quadband).

El estándar GSM permite transmisiones digitales de voz y datos, como mensajes de texto (SMS)
o mensajes multimedia (MMS).

Respecto a su arquitectura de red, en GSM todo terminal móvil debe estar constituido por una
tarjeta SIM (Módulo de identificación de abonado) y el propio dispositivo, normalmente un
teléfono móvil. [11]

La tarjeta SIM es la encargada de identificar en la red al usuario y al terminal móvil. Estos


dispositivos se identifican gracias a un número exclusivo de identificación denominado IMEI
(Identificador internacional de equipos móviles), compuesto por 15 dígitos.

Por otro lado, cada tarjeta SIM también posee un número de identificación único denominado
IMSI (Identificador internacional de abonados móviles).

3.3. GPRS

El estándar GPRS o Servicio General de Paquetes vía Radio (en inglés, General Packet Radio
Service) es una evolución del sistema GSM. Es también conocido como GSM++, pero dado que

21
se trata de un estándar de telefonía móvil intermedio entre la segunda generación (2G) y la
tercera (3G), a menudo recibe la nomenclatura de 2.5G. [12] GPRS extiende la arquitectura del
estándar GSM para permitir la transferencia de datos mediante conmutación de paquetes con
velocidades de transferencia que rondan los 114 Kbps.

Al contrario de lo que ocurre en conmutación de circuitos, en el estándar GPRS, gracias a su


modo de transferencia de paquetes, las transmisiones de datos sólo utilizan la red cuando es
necesario, permitiendo la tarificación por volumen de información transmitida en lugar de por
tiempo de conexión, por lo tanto, el usuario puede permanecer conectado sin costo adicional, ya
que sólo utilizará la red cuando envíe o reciba un paquete de datos.

Para el acceso a la red de datos, el estándar GPRS utiliza el protocolo IP, mientras que para el
transporte de voz, emplea la arquitectura de la red GSM.

A parte de actualizar algunos servicios con los que ya contaba GSM, la tecnología GPRS admite
otra serie de características que no estaban disponibles en 2G:

 Servicios de mensajes cortos (SMS)

 Servicios de mensajes multimedia (MMS)

 Servicio punto a punto (PTP); para la conexión cliente-servidor en una red IP

 Servicio punto a multipunto (PTMP); para el envío de multidifusión.

3.4. COMANDOS AT

Los comandos AT, también conocidos como comandos Hayes (en honor a su desarrollador
Dennis Hayes), son una serie de instrucciones que conforman un interfaz de comunicación entre
usuario y modem. Su abreviatura AT por la que son mundialmente conocidos estos comandos
proviene de la palabra “attention”.

Aunque la finalidad principal de los comandos AT fue la comunicación con módems, la


telefonía móvil GSM/GPRS también adoptó este lenguaje como estándar de comunicación.

En la actualidad, todos los terminales móviles GSM poseen una serie específica de comandos
AT que nos permiten configurarlos por medio de estas instrucciones e indicarles una serie de
acciones que queremos que ejecuten, tales como marcar un número de teléfono, enviar o leer un
SMS, consultar el estado de conexión a la red, leer o escribir en la agenda de contactos, etc.

Gracias a que la transmisión de comandos AT no depende del canal de comunicación a través


del cual estos sean enviados (cable, infrarrojos, Bluetooth, etc.), podremos utilizar nuestra placa
Arduino para transmitir dichos comandos a un módulo GPRS/GSM que sea capaz de
interpretarlos y actuar en consecuencia. Como son muchos los comandos existentes (véase el
manual de comandos AT oficial de nuestro módulo GSM/GPRS (SIM900) [13]), únicamente

22
vamos a mencionar junto con una breve descripción, aquellos que puedan resultarnos de
principal interés en el desarrollo del proyecto:

 AT – Con este comando verificaremos que el módulo está recibiendo nuestras


instrucciones. Si todo es correcto, tras enviarlo debe responder con un “OK”. En caso
contrario no obtendremos respuesta alguna.

 AT+CPIN? – Utilizaremos esta instrucción para comprobar si nuestra tarjeta SIM está
desbloqueada o si por el contrario, requiere introducir el código PIN para proceder con
el desbloqueo de la misma. Cuando la SIM esté operativa responderá con un “ready”.

 AT+CPIN= “****” – En el caso de que necesitemos introducir el PIN, éste es el


comando que debemos enviar, escribiendo los 4 dígitos correspondientes al código de
desbloqueo en el lugar de los asteriscos, delimitado entre comillas.

 AT+CREG? – Con este comando estamos preguntando por el estado de conexión a la


red. La respuesta recibida seguirá la siguiente notación: +CREG: <n>,<stat>, donde:

 AT+CMGF=<f> – Selecciona el formato del mensaje SMS, donde:

<f> = 0 => modo PDU

<f> = 1 => modo texto

 AT+CMGS=”num_movil” – A través de este comando marcaremos el número de móvil


al que queremos hacer llegar el SMS. Irá delimitado por comillas.

NOTA: Para el envío de cualquiera de los comandos AT a través de Hyperterminal o del entorno
de desarrollo de Arduino, debemos seleccionar siempre los caracteres fin de línea y retorno de
carro.

23
Capítulo 4
La Plataforma de Arduino

Comenzaremos con una breve presentación de lo que es en sí esta plataforma, y


analizaremos los diferentes modelos de placas disponibles en el mercado. También se evaluarán
las distintas shields (módulos de expansión) GSM/GPRS compatibles con esta plataforma, y los
principales sensores de temperatura que tenemos a nuestra disposición.

24
¿Qué es Arduino? - Arduino es una plataforma electrónica de hardware libre basada en una
placa con un microcontrolador. Con software y hardware flexibles y fáciles de utilizar,

Arduino ha sido diseñado para adaptarse a las necesidades de todo tipo de público, desde
aficionados, hasta expertos en robótica o equipos electrónicos. También consta de un simple,
pero completo, entorno de desarrollo, que nos permite interactuar con la plataforma de manera
muy sencilla. [14]

Figura 8. Fotografia de la placa Arduino UNO


Fuente: Google

A través de Arduino podemos recopilar multitud de información del entorno sin excesiva
complejidad. Gracias a sus pines de entrada, nos permite jugar con toda una gama de sensores
(temperatura, luminosidad, presión, etc.) que nos brindan la capacidad de controlar o actuar
sobre ciertos factores del entorno que le rodean, como por ejemplo: controlando luces,
accionando motores, activando alarmas…y muchos otros actuadores.

Gracias a que la plataforma es de hardware libre, las placas Arduino pueden ser hechas a mano
por cualquier aficionado o compradas ya montadas de fábrica.

Respecto al software, es totalmente gratuito, y está disponible para la descarga por cualquier
interesado en la propia página web de Arduino [15]. El entorno de desarrollo dispone de un
propio lenguaje de programación para el microcontrolador de la placa Arduino, basado en
Processing/Wiring.

Una de los principales motivos por el cual resulta muy interesante la utilización de la plataforma
Arduino para determinados proyectos, se basa en su independencia respecto a tener que
mantenerse conectado a un PC.

4.1 ENTORNO DE DESARROLLO EN ARDUINO

El entorno de desarrollo en Arduino (IDE) es el encargado de la gestión de la conexión entre el


PC y el hardware de Arduino con el fin de establecer una comunicación entre ellos por medio de
la carga de programas. Como podemos ver en la figura 3.16, el IDE de Arduino se compone de:
[12]

 Un editor de texto.- donde escribir el código del programa.

25
 Un área de mensajes.- a través del cual el usuario tendrá constancia en todo momento
de los procesos que se encuentren en ejecución, errores en código, problemas de
comunicación, etc.

 Una consola de texto.- mediante la que podremos comunicarnos con el hardware


Arduino y viceversa.

 Una barra de herramientas.- donde podremos acceder a una serie de menús y a los
botones con acceso directo a las principales funcionalidades de Arduino.

A través de la IDE de Arduino, podemos escribir el código del programa software y crear lo que
se conoce por "sketch" (programa). ¿Por qué lo llamamos sketch y no programa? Pues porque el
IDE de Arduino viene de Processing, y en este lenguaje de programación enfocado al mundo
gráfico, cada código es considerado un boceto, en inglés “sketch”.

El sketch permite la comunicación con la placa Arduino. Estos programas son escritos en el
editor de texto, el cual admite las posibilidades de cortar, pegar, buscar y remplazar texto.

En el área de mensajes se muestra, tanto la información mientras se cargan los programas, como
los posibles errores que tengamos a la hora de compilar, ya sea por problemas en el código del
sketch, por fallo en la detección de nuestro Arduino en el puerto USB, o por cualquier otro
problema que sea detectado.

Figura 9. Entorno de desarrollo en Arduino


Fuente: Elaboración propia

26
A continuación pasamos a describir la utilidad de cada uno de los iconos que aparecen en la
pantalla principal del entorno de desarrollo de Arduino:

“Verificar”.- Esta funcionalidad se encarga de verificar el código del sketch en busca de


posibles errores. A través del área de mensajes se le notificará al usuario el resultado de dicha
verificación. En el caso de que se detecten errores en el código, éstos se detallarán junto con el
número de línea en la que han sido detectados. Sólo cuando la comprobación resulta libre de
errores podremos proceder a la carga del código en nuestra placa Arduino.

“Cargar”.- Permite compilar el código del sketch y lo carga en Arduino. Cuando la carga
a terminado se informa al usuario a través del área de mensajes, y podremos proceder a la
apertura del monitor serial.

“Nuevo”.- Para la creación de un nuevo sketch. Abre una nueva hoja de texto donde
escribiremos el código correspondiente al sketch.

“Abrir”.- Permite abrir un sketch ya existente que ha sido previamente guardado.

También puedes abrir cualquiera de los sketches que trae instalados por defecto el IDE de
Arduino.

“Guardar”.- Esta funcionalidad nos permite almacenar el sketch que estemos


desarrollando en ese momento. Te permite elegir la ruta en la que quieres guardarlo, y te crea
automáticamente una carpeta con el mismo nombre que le des al sketch, guardando éste dentro
de la misma.

“Monitor Serial”.- Al pinchar sobre este icono, el entorno de desarrollo de Arduino abre
una nueva ventana a través de la cual podemos ver la comunicación establecida por el puerto
serie entre la placa Arduino y el PC durante la ejecución del programa. Contiene una barra de
escritura mediante la que podemos comunicarnos con Arduino a través de su puerto serie, por
ejemplo, para seleccionar distintas opciones que contemple un posible menú creado por el
usuario dentro de un código, o para enviar directamente comandos AT a una shield GPRS/GSM
que tengamos montada sobre el Arduino.

4.2 SHIELDS GPRS/GSM

Si queremos ampliar las funcionalidades de nuestra plataforma Arduino, siempre podemos


recurrir a una gran variedad de shields compatibles prácticamente con cualquiera de sus
modelos. De este modo, podemos dotar al dispositivo de funciones adicionales dedicadas
específicamente a ofrecer algún tipo de servicio concreto.

Un shield es un módulo de expansión en forma de placa impresa que se puede conectar a la


parte superior de la placa Arduino para ampliar sus capacidades, permitiendo además ser
apiladas unas encima de otras manteniendo un diseño modular, tal como podemos ver en la
Figura 10.

27
Figura 10. Tarjeta GPRS/GSM SIM900
Fuente: Google

Figura 11. Conexión entre el SIM900 y Arduino


Fuente: Google

En la figura 12 podemos observar con detalle cada uno de los pines, puertos y distintos
elementos que conforman esta placa:

28
Figura 12. Diagrama de conexiones del módulo SIM900
Fuente: Google

No cabe duda de que se trata de uno de los módulos más baratos que podemos encontrar en el
mercado de las Shields para el uso de sistemas de comunicaciones móviles. No sólo encaja con
nuestro presupuesto, sino que nos ofrece todos los servicios que necesitamos para poder llevar a
cabo el desarrollo de nuestro dispositivo.

Finalmente, puesto que se trata de la placa con mejor relación precio-prestaciones que hemos
podido encontrar, nos decantamos por este modelo para integrarlo en nuestra plataforma.

4.3 SENSOR DE FLUJO DE AGUA (CAUDAL)

El sensor de flujo está constituido por un cuerpo de plástico, un rotor de agua, y un


sensor de efecto Hall. Utiliza un sensor con aspas para medir la cantidad de líquido que
se ha movido a través de él. El molino de viento 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 que se
efectúa, esto genera impulsos de salida a una velocidad proporcional a la velocidad de
flujo.

Este sensor es el adecuado para el uso en sistemas de conservación de agua, tanques de


almacenamiento, aplicaciones domésticas de reciclaje de agua, sistemas de riego y
mucho más. La salida de cables que posee hace que sea más fácil conectarlo a un
microcontrolador para el control de consumo de agua y el cálculo de la cantidad de agua
que queda en un tanque y mucho más.

29
Figura 13. Sensores de flujo de agua de la marca Saier
Fuente: Google

A continuación veremos las características técnicas de este sensor, que nos brinda la
marca de SAIER [16].

El precio de este sensor es sumamente barato y accesible.

Tabla 1. Detalles del modelos del sensor

30
Figura 14. Conexión del sensor con Arduino, Donde Amarillo: Señal sensada
Rojo: Alimentación 5v. Negro: Tierra
Fuente: Google

El principio de funcionamiento es el efecto Hall, descubierto por Edwin C. Hall en 1879,


consiste en la producción de una caída de voltaje a través de un conductor o semiconductor con
corriente, bajo la influencia de un campo magnético externo. Para esto es necesario que la
dirección del campo magnético sea perpendicular a la dirección de flujo de la corriente. [17]

Figura 15. Diagrama de bloque del Sensor


Fuente: Guía de Laboratorio Efecto Hall

Figura 16. Sensor Magnético


Fuente: Google

En la figura 16 muestra como está compuesto por dentro el Sensor de flujo de agua.

31
Sus especificaciones técnicas son:

Tabla 2. Especificaciones Técnicas del sensor

Capítulo 5
Planteamiento del Problema

La medición del caudal de agua, a pesar que la tecnología avanzó exponencialmente, y


el concepto del Internet de las cosas, que también ha tenido un gran logro en los proyectos de

32
domótica, no tuvo mucha auge, ya que la instalación de medidores inteligentes son bastante
caros.

Como se pudo aclarar en el capítulo anterior, en Lima ya se inició con ciertos lugares la
instalación de estos equipos de medición inteligente, sin embargo estos equipos son altamente
caros como para que el usuario común y corriente pueda acceder a estas tecnologías.

Cabe recalcar que también en otros países ya se implementaron este tipo de tecnología, con
diferentes metodologías de comunicación (Bluetooth, WiFi, Zigbee, Infrarrojo, Micro Ondas).
Esto fue una gran oportunidad para poder trabajar en la implementación del medidor digital, con
una comunicación GPRS/GSM, esto con el fin de disminuir los costos del proyecto.

El problema surge a partir de la toma de medición del consumo de agua y el contrato de


personal que tienen las empresas que dan el servicio de agua. SEDAPAR es un ejemplo, este
posee personales que tienen la tarea de ir hasta el domicilio del usurario y tomar los datos del
medidor, este acto no es tan preciso ya que podría tener un margen de error en el momento de
que este técnico tome los datos correspondiente, y esto sin contar el tiempo que demorará en ir y
tomar los datos de cada medidor de agua en las viviendas.

Figura 17. Personal de una empresa que brinda agua potable


Fuente: Google

5.1 SOLUCIÓN 1 – ARAD GROUP

El Grupo Arad, compañía de Israel, posee el más moderno sistema de gestión de metro de red
inalámbrica, con tecnología avanzada en telemetría para el agua, saneamiento, sinergia y
distribución de gas. Las lecturas que estos brindas son automatizadas, sin embargo exige
bastante inversión en estos equipos costosos y el contrato con esta empresa que le suele brindar
por el servicio.

Tabla 3: Costo de inversión de Equipo Arad


Fuente: El sistema Dialog 3g y su influencia en la optimización del proceso de lectura y facturación de
Sedapal, caso condominio nuevo cercado del distrito de lima

33
Es la supervisión, gestión y control de redes de distribución de servicios de saneamiento,
energía, gas y agua.

Las soluciones de gestión de datos de medidores pueden basarse en Internet, para ayudar
empresas de servicios públicos y de suministro de agua a supervisar, gestionar y controlar sus
redes de medidores.

Figura 18. Lectura Automática de Medidores e Infraestructura de Medición Avanzada


Fuente: http://arad.co.il

También poseen un software que forma parte del sistema DIALOG 3G de la compañía del
Grupo Arad, que recolecta informes y análisis estadísticos, ofreciendo alertas específicas de
localización en tiempo real sobre violaciones, fugas y sospecha de robo, siendo de esta manera
una manera sencilla de interconexión con sistemas de software automatizados de alguna
empresa.

Sin embargo como se dijo, todo esto involucra una fuerte inversión en los costos del cliente o la
empresa que dese a trabajar en asociación en este sistema, que en si es buena pero con un costo
que exige bastante inversión del que esté interesado en este sistema.

Por ello es el motivo de una implementación de un sistema que posea, las principales
características de este tipo de tecnología que brindó la empresa de Arad Israelí. Que a
continuación se da a conocer.

5.2 SOLUCIÓN 2 – DISEÑO DE UN SISTEMA DEDICADO

La solución 2 nace a partir de los conocimientos adquiridos en la formación universitaria


tecnológica adquirida en el centro de estudios.

Viendo este problema desde el punto de vista electrónico y de ingeniería. Podemos ver la
programación y equipos que se utilizarán para la elaboración, tales son:

Equipos Cantidad Precio (S/.)


Sensor 1 30
Componentes X 20
Módulos Arduino 1 30
SIM900 1 80
Mano de Obra X 340

34
Total 500
Tabla 4: Costo de inversión en el Equipo sugerido
Fuente: Elaboración propia

Las características de este módulo son las siguientes:

 Módulo alcanzable

 Botones para accionar y controlar el tiempo del equipo

 Display para mostrar el sensado del caudal de agua

 El módulo GPRS/GSM posee la capacidad de trabajar con datos por ende con Internet

 Posee una batería recargable la cual también es controlada por el microcontrolador

Se plantea hacer el uso de una tarjeta de desarrollo muy comercial la cual es ya muy conocida:
Arduino, que ya se mencionó anteriormente en la tabla 4.

Aproximadamente y a groso modo, la propuesta de ingeniería luce mejor. Ahora viene el reto de
implementar y probar si el sistema es factible y se puede realizar.

Capítulo 6
Desarrollo Experimental

35
En este apartado se exponen paso a paso cada una de las etapas por las que se han ido
pasando hasta alcanzar el objetivo final del proyecto, incluyendo: pruebas realizadas, problemas
que han ido surgiendo en el desarrollo de las mismas, códigos de programación
correspondientes a cada una de las funciones que se han ido probando, y por supuesto, la
descripción del sistema que finalmente ha sido diseñado, junto con las pruebas a las que ha sido
sometido para evaluar su correcto funcionamiento.

6.1 COMENZANDO CON ARDUINO. HOLA MUNDO

A partir de este momento comenzamos a adentrarnos de verdad en la parte experimental del


proyecto. Como es lógico, hasta llegar a construir un dispositivo de cierta complejidad debemos
pasar previamente por una serie de etapas más sencillas hasta lograr alcanzar el objetivo final.

Para irnos familiarizando con el entorno de desarrollo de Arduino e ir cogiendo la mecánica


para la carga y ejecución de programas, comenzamos por el sketch (programa) más sencillo, el
llamado “Hola Mundo” de Arduino. [18] Consiste en hacer parpadear un LED de acuerdo a
unos intervalos de tiempo predefinidos por el usuario en el código del sketch.

Las únicas herramientas con las que debemos contar para seguir este primer ejercicio son: una
placa Arduino y un LED.

En nuestro caso, contamos con el modelo Arduino UNO. Esta versión está diseñada para que
hacer parpadear un LED sea muy sencillo, de hecho ya incorpora un LED integrado en la propia
placa, pero también permite conectar uno externamente utilizando el pin digital 13.

Para conectar un LED a otro pin digital que no sea éste, se recomienda intercalar una resistencia
externa de 1kΩ.

Como podemos ver en la figura 19, el montaje no supone ninguna complicación, simplemente
debemos identificar el ánodo y el cátodo del LED, y conectarlos directamente en el pin 13 y
GND respectivamente.

Figura 19. Esquema de montaje para hacer parpadear un LED con Arduino

36
A continuación, debemos generar el código con las instrucciones que queremos que lleve a cabo
el Arduino. Para este ejemplo ni siquiera es necesario que escribamos el código, pues podemos
importarlo directamente desde los ejemplos que incluye por defecto el IDE de

Arduino. Basta con acceder al menú “Archivo”, seleccionar “Ejemplos”, luego “01.Basics”, y
por último “Blink” (en inglés, parpadear). La siguiente figura 20 refleja los pasos a seguir sobre
la pantalla principal del entorno de desarrollo de Arduino.

Figura 20. Selección de códigos de ejemplo incluidos en el IDE de Arduino

Tras seguir estas instrucciones se abrirá una nueva pestaña que contiene el sketch
correspondiente al programa para hacer parpadear un LED. En la figura 21 podemos ver que el
código es bastante sencillo:

37
Figura 21. Código correspondiente al sketch Blink

Una característica aplicable a todos los sketch, es que siempre deben estar incluidas las
funciones “void setup()” y “void loop()”, sin ellas cuando compilemos el código siempre nos
dará un error, y no podremos proceder con la carga en Arduino.

Una vez que tenemos escrito el código correspondiente al programa, le damos a “Verificar”, y
dará paso a la compilación del sketch en busca de posibles errores.

Si todo es correcto, procederemos con la carga del programa, clicando sobre la opción “Cargar”.
(Nota: No olvidemos tener conectado nuestro Arduino al puerto USB)

Tal y como se muestra en la figura 4.6, durante la carga, en el área de mensajes aparecerá la
palabra “Subiendo”, a medida que avanza la barra de progreso. Cuando ésta llegue al final, ya
tendremos cargado nuestro programa, y el LED debería comenzar a parpadear.

Figura 22. Proceso de carga del sketch en Arduino

6.2 EVALUACIÓN DE LOS DISTINTOS SENSORES DE TEMPERATURA

38
A continuación procedemos a evaluar el comportamiento de los distintos sensores de
temperatura que presentamos anteriormente en el apartado “4.3 Sensores de Temperatura”.

Aunque se va a realizar el proyecto sobre un sensor de temperatura, es un ejemplo que podría


aplicarse a la mayor parte de los sensores existentes, como sensores de luminosidad, humedad,
presencia, etc., ofreciendo un amplio abanico de posibilidades de cara a la expansión de nuestro
sistema o para su adaptación a otro tipo aplicaciones relacionadas con el sector IoT (Internet of
Things).

 SENSOR DE FLUJO DE AGUA “HZ21WA”

Lo primero que debemos hacer es llevar a cabo el esquema de montaje correspondiente a este
modelo de sensor (véase el apartado “4.3. Sensores de Temperatura”). El resultado de la
conexión en nuestra placa Arduino queda reflejado en la siguiente figura 23:

Figura 23. Montaje del sensor de flujo de agua “HZ21WA” sobre la plataforma Arduino
UNO

A continuación pasamos a generar un código que calcule el valor del caudal de agua y nos lo
envíe constantemente a través del puerto serie de Arduino .

En este caso el código lo obtuvimos de la página Tutorial sensor de flujo de agua. [19].

A continuación se adjunta el código correspondiente a nuestro sketch en la Figura 24:

39
Figura 24. Código del sensor de flujo de agua

40
Figura 25. Interface del Monitor Serie de Arduino

Mencionar nuevamente que el valor no es exacto, una forma de verificar es, con el flujo casi
constante, llenar un recipiente durante 1 minutos, debería coincidir con el caudal en L/min,
ejemplo si nuestro caudal es de 8L/min, entonces en un minuto debería de obtenerse 8L.
Si la medición no es correcta una forma de corregir es aumentar o disminuir el factor de
conversión hasta lograr una medición más precisa.

En nuestro caso se realizó bastantes pruebas para calibrar la precisión de medición de flujo de
agua a través del sensor.

6.2.1 CALIBRANDO NUESTRO SENSOR DE FLUJO:

Para tener una medición más exacta es necesario calcular el valor del factor de conversión que
es el que nos sirve para pasar de Frecuencia de pulsos a caudal de agua

La variable que podemos medir con exactitud es la cantidad de pulsos (usando el Arduino), y
con ayuda de un recipiente con graduación podemos medir la cantidad o volumen de agua.

Estas dos variables podemos medirlas con exactitud, para calcular el factor de conversión con
estas dos variables podemos usar la siguiente formula:

n o Pulsos
K=
Volumen ×60

Donde K es el factor de conversión, n° Pulsos son la cantidad de pulsos medidos con el sensor
correspondientes al volumen que pasa por el sensor, dicho volumen debemos medirlo con ayuda
de recipientes con graduación.

Para calcular la cantidad de pulsos del sensor usamos el siguiente sketch que se muestra en la
Figura 26:

41
Figura 26. Programa para calibrar la medición de caudal

Fuente: Elaboración propia

En la siguiente Figura 27, se muestra la evaluación del número de pulsos que hay cuando se
adquiere 1Litro de agua.

Figura 28. Interface del Monitor Serie de Arduino midiendo los pulsos
Fuente: Elaboración propia

42
Figura 29. Calibrando en 1 Litro el número de pulsos
Fuente: Elaboración propia

En la tabla 5. Mostramos las mediciones que se realizaron para poder escoger el factor K que
nos ayudará a que el sensado sea más preciso como se mencionó anteriormente.

LITROS PULSOS K
2 1038 8.65
1 530 8.83
2 1074 8.95
1 503 8.38
2 1016 8.47
2 1024 8.53
1 532 8.87
Suma de K 60.68
Promedio 8.67

Tabla 5. Anotes de las mediciones que se realizaron

Con estos datos, escogimos el factor k=8.67 y lo incluimos en el código del programa.

6.3 LCD

43
Por lo general este tipo de pantallas LCD tiene una interfaz que se controla a 16 pines, por lo
cual el microcontrolador debe manipular varios puertos a la vez para lograr mostrar los
caracteres en la pantalla.

Por consiguiente pines de control son los siguientes:

 (R/S) SELECTOR DE REGISTRO.- Controla la memoria del LCD si muestra


caracteres, posición del cursor o tomar datos en la pantalla para un comando de control
para saber que hacer a continuación.

 (R/W) lectura/escritura.- Selecciona el modo de lectura o escritura

 (E) habilitar.- Permite la escritura de los registros

 (D0-D7) pines de datos.- Los estados de estos pines (altas o bajas) son los bits que usted
está escribiendo a un registro al escribir, o los valores que usted está leyendo cuando
lees.

 (Vo) voltaje variable.- Así que con la ayuda de un potenciómetro puedes ajustar el
contraste de la pantalla

 (VDD) voltaje de alimentación.- Por lo tanto se conecta una fuente de +5V

 (VSS) Ground.- Así que se conecta 0V(GND)

 (VLSS) alimentación de LED de iluminación de – Cátodo 0V(GND)

 (VLED) alimentación de LED de iluminación de – Ánodo

Figura 30. Identificación de pines LCD 16×2

6.3.1 CÓDIGO FUENTE LCD 16×2 ARDUINO

44
En cuanto a la programación haremos uso de la biblioteca con la que cuenta nuestro Arduino
llamada LiquidCrystal.h, esta biblioteca ya está incluida en el software de nuestro compilador
por lo tanto no es necesario agregar más bibliotecas.

Figura 31. Código del LCD prueba.


Fuente: Elaboración Propia

6.3.2 CONEXIÓN LCD 16×2 ARDUINO

Para empezar la conexión de nuestro Arduino UNO con la LCD 16×2 Arduino se hace
respecto a la siguiente Figura 32.

Figura 32. Diagrama de conexión LCD 16×2


Fuente: Google

45
Ahora solo queda compilar y cargar el código en el Arduino UNO. Quedaría de la
siguiente forma:

Figura 32. Texto en Pantalla


Fuente: Elaboración Propia

6.4 SHIELD GPRS/GSM

Por fin entramos en la parte más interesante del proyecto, donde trabajaremos con los sistemas
de comunicaciones GPRS/GSM.

Recordamos que el módulo escogido para nuestro proyecto fue el “GPRS/GSM QUADBAND
MODULE FOR ARDUINO (SIM900)”, el cual se muestra en la figura 33.

Figura 33. Módulo GPRS/GSM (SIM900)


Fuente: Google

Junto con el módulo, se debe adquirir una antena y una fuente de alimentación externa, ya que
los 5V de Arduino pueden no ser suficientes para alimentar tanto al módulo como a los
componentes que conectemos a nuestra plataforma. Adquirimos también por tanto los siguientes
ítems: [20]

46
• Antena GPRS/GSM:

 Frecuencia: 900 MHz-2.1 GHz-1800 MHz

 Impedancia: 50 Ohms

 Polarización: vertical

 Ganancia: 0 dBi

 VSWR: <2:1

 Potencia: 25W

 Conector: UFL

 Tamaño: 35mm x 6mm

 Temperatura de funcionamiento: de -40°C a +85°C

Sistema de Control de Temperatura a través de Arduino y GPRS 61

• Fuente de alimentación externa 18V:

 Tensión de entrada = 100-240 V

 Tensión de salida = 18 VDC

 Corriente máxima = 1,2 A

 Diámetro del conector = 2,1

 Diámetro del conector = 2,1 mm

 Diámetro de la cubierta del conector = 5,5 mm

Una vez que tuvimos claro todos los elementos que eran necesarios para poder integrar la
Shield GPRS/GSM con la placa Arduino, realizamos el pedido.

A los pocos días ya contábamos con el módulo junto con el resto de accesorios, antena
GPRS/GSM y fuente de alimentación.

La verdad es que desde el principio nuestra experiencia con este módulo ha pasado por
varios baches importantes hasta llegar a aportar el rendimiento que se esperaba desde un primer
momento.

Prácticamente desde que recibimos la placa junto con el resto de ítems que acabamos de
comentar, comenzaron a surgir los problemas. Más adelante iremos entrando en detalle sobre
todos los impedimentos que nos han ido surgiendo en el desarrollo práctico .

47
6.4.1 CONEXIONES Y PUESTA EN MARCHA

Lo primero tendremos que colocar la tarjeta SIM que vayamos a usar. El adaptador para las
tarjetas es del tamaño de las SIM normales, que en su mayoría han sido sustituidas por
MicroSIM y NanoSim, así que tendremos que hacernos con una o enganchar una de estas
últimas en un adaptador (el módulo que utilizamos en la sesión y que podéis conseguir en la
tienda de esta página incluye adaptadores para todos los tamaños de tarjeta). Con un poco de
paciencia y de pericia también podríamos colocar una nano o una micro directamente, pero en
correremos peligro de que se mueva y deje de hacer contacto.

Antes de conectar nada al Arduino, vamos a colocar los jumpers que tiene la tarjeta de forma
que utilicemos para comunicarnos los pines 7 y 8, como se muestra en la siguiente Figura 34.

Figura 34. Movemos el Jumper a los pines D7 y D8


Fuente: https://www.prometec.net/gprs-llamar-enviar-sms/#

Ahora bien, debemos conectar la alimentación externa al Shield GPRS y alimentamos el


Arduino con el USB o una fuente aparte, sólo tendremos que unir los pines 7 y 8 para la
comunicación serie y el GND entre ambas tarjetas.

Figura 35. Conexión externa al módulo SIM900


Fuente: Google

Para encender el Shield tenemos que colocar el interruptor en la posición correcta. Las dos
posiciones corresponden a cada uno de los tipos de conexión que hemos explicado arriba. Una
vez hagamos esto se encenderán dos LEDs

48
Para activar la alimentación de la tarjeta SIM también nos encontramos con dos opciones.

Podemos hacerlo manualmente presionando el pulsador que hay en uno de los laterales durante
uno o dos segundos y veremos que se enciende otro LED, y que uno de los que se había
encendido antes empieza a parpadear una vez por segundo. Este parpadeo nos indica que está
buscando la red. Cuando la encuentre y se conecte cambiará la frecuencia de parpadeo y lo hará
cada 4 o 5 segundos. Eso sí, no se conectará hasta que no metamos el PIN de la SIM, que ya
veremos ahora cómo hacerlo.

Los elementos que son imprescindibles reconocer se muestran en la Figura 36.

Figura 36. Elementos que son imprescindibles del SIM900

También podemos activarla por programa, pero antes tendremos que realizar una soldadura en el
pad “R13” que está justo al lado de la regleta de pines roja “J16”. Y una vez hecho esto la
activaremos mandando un pulso de 1 segundo al pin 9 de la tarjeta. Este se muestra en la Figura
37.

Figura 37. Soldadura en el pad “R13”

49
6.4.2 ENVÍO DE SMS A TRAVÉS DE ARDUINO

Para poder comunicarnos con el módulo GPRS/GSM a través de Arduino y conseguir enviar un
SMS tendremos que generar un código compuesto por las mismas instrucciones (comandos AT),
por lo tanto debemos comunicarnos con el módulo utilizaremos comandos AT, pero lo primero
que haremos será incluir la librería SoftwareSerial.h y configurar la comunicación por los pines
7 y 8.

El módulo utiliza una velocidad de comunicación de 19200KHz, así que en el setup


configuraremos el puerto serie para el SIM900 y para Arduino a esa velocidad.

Primero usaremos el comando AT+CMGF=1\r para indicarle al módulo GPRS que vamos a
mandar un mensaje, y a continuación introducimos el número al que va dirigido con el comando
AT+CMGS = “966 222 588”. En nuestro caso es ese número.

Una vez hecho esto, simplemente le enviamos el contenido del mensaje y lo finalizamos con el
caracter ^Z. La función quedaría así:

50
Figura 38. Código para enviar SMS desde Arduino
Fuente: Elaboración propia

Figura 39. Interfaz Monitor Serie que muestra el envío de SMS


Fuente: Elaboración propia

El programa comenzará a ejecutarse, y si todo ha ido bien, tras unos segundos recibiremos el
SMS en nuestro móvil, tal y como se muestra en la figura 40.

51
Figura 40. Recepción del SMS en el teléfono móvil
Fuente: Elaboración propia

Llegados a este punto, damos por finalizadas las pruebas referentes al comportamiento del
módulo GPRS/GSM, y pasaremos a la integración de las distintas funciones en el programa
correspondiente a la aplicación general para el sensado de flujo de agua.

6.5 DESARROLLO DE APLICACIONES Y EVALUACIÓN DEL SISTEMA

Por fin nos adentramos en la fase final del proyecto, donde se llevará a cabo el desarrollo de las
aplicaciones para la implementación del sistema.

En primer lugar se va a diseñar una aplicación capaz de integrar las distintas funcionalidades
evaluadas hasta el momento (sensor de flujo de agua, sistema que muestra el sensado, el control
de Tiempo y el envío de mensajes al usuario final).

Una vez que tenemos claro todo el material que vamos a utilizar, comenzamos con el
planteamiento del sketch correspondiente a la aplicación. Para ello se diseña un diagrama de
flujo con los pasos que principalmente se pretende que siga el programa. A partir del mismo
podremos comenzar a programar el código, siempre con la ayuda de los distintos sketches que
se han ido generando en las pruebas individuales para cada uno de los ítems (obtener valor del
caudal a partir del sensor, LCD que muestre los datos obtenidos por el sensor, envío de SMS).

En la figura 41 se muestra el diagrama de flujo correspondiente a la aplicación:

52
Figura 42. Diagrama de flujo correspondiente al sistema de gestión remota
Fuente: Elaboración propia

6.5.1 MONTAJE Y PRUEBA

A continuación se muestran los equipos que se utilizaran para implementar el proyecto


planteado.

Figura 43. Equipos a utilizar


Fuente: Elaboración propia

53
En la siguiente Figura 42. Se muestra la pantalla LCD y el módulo Arduino junto con el sensor
de efecto Hall.

Figura 44. Implantación de equipo Sensor de caudal


Fuente: Elaboración propia

Figura 45. Equipo Listo para el Sensado de agua

6.5.2 EVALUACIÓN DEL SISTEMA DE GESTIÓN LOCAL

En primer lugar se adjunta una fotografía con el resultado del montaje del sistema al completo.
Como vemos en la imagen correspondiente a la figura 44, el montaje se lleva a cabo con la
ayuda de una placa de pruebas (‘Protoboard’), aunque la idea es fabricar una pequeña placa de
circuito impreso en la que integrar los distintos componentes y eliminar el siempre antiestético
cableado, reduciendo el tamaño del sistema, dotándole de otro aspecto, y en definitiva,
convirtiendo al sistema en una única plataforma de diseño modular más compacta y robusta.

54
Figura 46. Implementación del Equipo poniendo a Prueba.

Estos son los materiales que se utilizaron para la respectiva prueba en el armado de Sensor de
efecto Hall.

Figura 47. Materiales usados en la prueba

A continuación conectamos el sistema al puerto USB del PC, y procedemos con la carga del
programa (no debemos olvidar colocar los jumpers en modo “gateway” durante el proceso de
carga).

55
6.5.3 RESULTADOS

Una vez instalado proseguimos a sensar el flujo de agua. La prueba se muestra en el video
adjuntado al archivo.

Figura 48. Sensado y envía de SMS al usuario final

Figura 49. Mensaje recibido en el Usuario final

Finalmente hasta la fecha de presentación del primer prototipo, se obtuvo que el sistema era
autónomo y las condiciones satisfacen las peticiones del cliente.
A pesar de eso hubo percances que se esperan solucionar en el módulo final. Uno de los
problemas fue la medición precisa del flujo de agua cuando el grifo emanaba gotas lo cual el
sensor clásico si nota estos pequeños cambios. Esto se puede solucionar cambiando de sensor u
otro mucho más precisos y sensibles.

56
Capítulo 7
Conclusiones y Recomendaciones
CONCLUSIONES

 El proceso de Lectura de Sedapal a cada lugar para leer un contador, es de forma


manual, por lo que se incide en automatizar mediante la Infraestructura Avanzada de
Medición, para minimizar el tiempo de recolección de datos.

 Para determinar con mayor aproximación el valor del agua que se deja de medir por los
Micromedidores instalados en la prueba, se debería adelantar un estudio de
determinación de curvas metrológicas a una muestra representativa de medidores de
agua viejos.

 Las placas Arduino, el microcontrolador usado en estas y el conjunto de recursos


gratuitos disponibles, permite aprender todo lo relativo a un proyecto de electrónica y
software embebido de una manera progresiva y sin perder visibilidad en ningún punto.
Se puede definir un camino formativo que pase desde el diseño de la placa, su
funcionalidad y algoritmo de control; hasta las optimizaciones del compilador.

 El desempeño de estas librerías o extensiones no siempre es el más óptimo y hay veces


es necesario realizar modificaciones. Pero incluso en estos, el soporte que se puede
encontrar en la comunidad del usuario es muy grande y no debe suponer un gran escollo

57
para la realización del proyecto. En cualquier caso, siempre podemos crear nuestras
propias librerías, dando así soporte a nuevas funcionalidades o mejoras de rendimiento.

 En base a los resultados obtenidos en las pruebas, podemos apreciar que el sistema
desarrollado tiene un grado de precisión aceptable y estamos convencidos que estas
desviaciones se debieron principalmente al margen de error del sensor de flujo
utilizado.

 Algunos medidores digitales utilizados en otros estudios no poseen almacenamiento del


caudal consumido por un usuario a los largo de toda una semana, por lo que se
recomienda utilizar aparatos de medición que permitan registrar y almacenar todas estas
cantidades, de los cual el proyecto realizado si cumple con estas expectativas. Sin
embargo, la ambición de este proyecto más adelante es, trabajar con la interfaz del
internet lo cual el módulo SIM900 posee.

RECOMENDACIONES

Se sugiere cambiar el sensor de efecto Hall por otro mucho más preciso ya que no es tan
sensible como el medidor clásico.

Aun no se trabajó con el envío de datos a través del internet, es un reto que aun seguirá en el
final y conclusión exitosa de este proyecto que se tiene pensado hacer para más adelante.

El estudio del consumo de energía no se puedo concluir por el motivo de tiempo, esto será
subsanado con la conclusión al final de la presentación de la tesis para optar por el título de
Ingeniero Electrónico.

58
Bibliografía

[1] Tesis, “Diseño De Un Sistema Móvil Para La Lectura De Medidores Mediante


Tecnología Bluetooth”. Disponible en web:
http://sisbib.unmsm.edu.pe/bibvirtual/publicaciones/indata/v16_n1/pdf/a16v16n1.pdf

[2] Artículo científico, “Medición Del Consumo De Agua Domiciliaria Utilizando Tecnología
Inalámbrica Zigbee”. Disponible en web:
http://revistas.utp.edu.co/index.php/revistaciencia/article/viewFile/3151/1913

[3] Tesis, “El Sistema DIALOG 3G y su Influencia en la Optimización Del Proceso de


Lectura
Facturación de SEDAPAL, Caso Condominio Nuevo Cercado Del Distrito de Lima”.
Disponible en web: http://repositorio.utp.edu.pe/bitstream/UTP/119/6/1012190.pdf

[4] Artículo científico, “Determinación de Consumos Reales de Agua Potable en Usuarios


Residenciales”. Disponible en web: http://investigacionesyproyectoshidraulicos.com/web/
Material%20Cientifico/Articulos/Mas%20de%201000%20Articulos/118.pdf

[5] Revista, Manual de Mantenimiento de Medidores. Disponible en web:


http://www.sedaloreto.com.pe/transparencia/planeaorganizacion/manuales/
12.ManttoMedid.pdf

[6] Arregui de la Cruz, Francisco. Tesis Doctoral “Propuesta de una Metodología Para el

59
Análisis y Gestión del Parque de Contadores de Agua en un Abastecimiento”.
Universidad Politécnica de Valencia, Departamento de Ingeniería Hidráulica y Medio
Ambiente. Valencia España. 1998. Disponible en web: http://docplayer.es/33281686-
Caracterizacion-de-las-perdidas-hidraulicas-y-financieras-del-parque-de-medidores-en-el-
area- urbana-de-la-ciudad-de-tunja-documento-de-tesis-de-grado.html

[7] Norma NMP 005 1 Metrológica Peruana 2011. Disponible en web:


http://www.inacal.gob.pe/inacal/files/metrologia/normas-metrologicas-peruanas/NMP_
005-1_2011.pdf

[8] Tesis, “Caracterización de las Pérdidas Hidráulicas y Financieras del Parque de Medidores
en el Área Urbana de la Ciudad de Tunja”. Disponible en web:
http://docplayer.es/33281686-Caracterizacion-de-las-perdidas-hidraulicas-y-financieras-
del-parque-de-medidores-en-el-area-urbana-de-la-ciudad-de-tunja-documento-de-tesis-
de-
grado.html

[9] Consulta a página Web: https://www.xively.com/

[10] Consulta a página Web: https://es.wikipedia.org/wiki/Sistema_global_para_las_


comunicaciones_m%C3%B3viles

[11] Consulta a página Web: http://ocw.upm.es/teoria-de-la-senal-y-comunicaciones-


1/comunicaciones-moviles-digitales/contenidos/Presentaciones/GSM-07.pdf

[12] Consulta a página Web: https://es.wikipedia.org/wiki/Servicio_general_de_paquetes_


v%C3%ADa_radio

[13] Manual de comando SIM900. Disponible en Web: http://www.cooking-hacks.com/skin/


/frontend/default/cooking/pdf/SIM900_AT_Command_Manual.pdf

[14] Consulta a página Web: https://www.arduino.cc/

[15] Consulta a página Web: https://www.arduino.cc/en/Main/Software

[16] Consultar a página Web: https://spanish.alibaba.com/product-detail/sen-hz21wa-flow-


sensor-liquid-level-sensor-magnetic-water-flow-sensor-60539487700.html

[17] Guía de práctica. Disponible en Web: http://www0.unsl.edu.ar/~interfases/labs/lab09.pdf

[18] Tutorial Arduino. Disponible en Web: https://www.arduino.cc/en/Tutorial/Blink

[19] Tutorial Arduino- Sensor. Disponible en Web: http://www.naylampmechatronics.com/


blog/47_tutorial-sensor-de-flujo-de-agua.html

[20] Artículo Científico. “Instituto Tecnológico de Tapachula”. Disponible en Web:


https://es.slideshare.net/nicolasgonzalesespinosa/ proyectos-y-automatizacion

60
ANEXO
#include <LiquidCrystal.h>
#include <TimerOne.h>
#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8); // Configura el puerto serial para el SIM900
LiquidCrystal lcd(10, 9, 3, 4, 5, 6);// rs,en, d4, d5, d6, d7

//////////VARIABLES Y CONFIGURACION DEL SENSOR////////////////////////


const int sensor = 2; // Pin digital para el sensor de flujo
int litros_Hora; // Variable que almacena el caudal (L/hora)
volatile int pulsos = 0; // Variable que almacena el número de pulsos
unsigned long tiempoAnterior = 0; // Variable para calcular el tiempo transcurrido
unsigned long pulsos_Acumulados = 0; // Variable que almacena el número de pulsos acumulados
float litros; // // Variable que almacena el número de litros acumulados
void flujo()
{
pulsos++; // Incrementa en una unidad el número de pulsos
}

///VARIABLES DEL RELOJ///////////////////////////////////


const int PULSADOR_MODO = A1;
const int PULSADOR_UP = A2;
const int PULSADOR_DOWN = A3;

int horas=0;
int minutos=0;
volatile int segundos=0;
volatile boolean actualizar=true;

char texto[10];
int modo = 0;
const int N=3;

///////////////////////////////////////////////////////////////////////////////////////////////////
void setup(){
//////SETTING OF SENSOR PARTE 1*****************************************************************
pinMode(sensor, INPUT_PULLUP); // Pin digital como entrada con conexión PULL-UP interna
lcd.begin(16,2);

61
lcd.clear();

/////SETTING OF SIM900****************************************************************
SIM900.begin(19200); //Configura velocidad del puerto serie para el SIM900
delay(1000); //Tiempo para que encuentre una RED
//************************************************************************************

// SETTING OF SENSOR PARTE 2**********************************************************


interrupts(); // Habilito las interrupciones
// Interrupción INT0, llama a la ISR llamada "flujo" en cada flanco de subida en el pin digital 2
attachInterrupt(0, flujo, RISING);
tiempoAnterior = millis(); // Guardo el tiempo que tarda el ejecutarse el setup
Intro();

// SETTING OF RELOJ********************************************************************
pinMode(PULSADOR_MODO, INPUT);
pinMode(PULSADOR_UP, INPUT);
pinMode(PULSADOR_DOWN, INPUT);
Timer1.initialize(1000000);
Timer1.attachInterrupt(manejadoraTimer);}

//*************************************************************************************
/////////////////////CONFIGURACION DE FUNCIONES DE SENSOR
//****************************************************************************************
void LCD_16x2()
{
lcd.setCursor(9,0);
// Imprimo el caudal en L/hora
lcd.print(litros_Hora,DEC);
lcd.print("L/H ");

lcd.setCursor(0,1);
// Imprimo el número de litros acumulados
lcd.print(litros);
lcd.print("L ");}

void calculo(){
// Cada segundo calculamos e imprimimos el caudal y el número de litros consumidos
if(millis() - tiempoAnterior > 1000)
{
tiempoAnterior = millis(); // Actualizo el nuevo tiempo
pulsos_Acumulados += pulsos; // Número de pulsos acumulados
litros_Hora = (pulsos * 60 / 8.67); // Q = frecuencia * 60/ 8.67 (L/Hora)
litros = pulsos_Acumulados*1.0/450; // Cada 450 pulsos son un litro
pulsos = 0;} // Pongo nuevamente el número de pulsos a cero
}

//***************************************************************************************************
//////////////////////TODA CONFIGURACION DEL RELOJ//////////////////////////////////////////////////
//*****************************************************************************************************

void manejadoraTimer(){
segundos++;
actualizar=true;}

void actualizarReloj(){
minutos += segundos / 60;
segundos = segundos % 60;
horas += minutos / 60;
minutos = minutos % 60;
horas = horas % 24;}

void incrementarHoras(){
horas ++;
horas = horas % 24;
actualizar=true;}

void decrementarHoras(){
horas --;
if(horas<0){
horas = 23;}
actualizar=true;}

62
void incrementarMinutos(){
minutos ++;
minutos = minutos % 60;
actualizar=true; }

void decrementarMinutos(){
minutos --;
if(minutos<0){
minutos = 59;}
actualizar=true;}

void fijarCursorModo(){
switch(modo){
case 0:
lcd.noBlink();
break;
case 1:
lcd.setCursor(0, 0);
lcd.blink();
break;
case 2:
lcd.setCursor(3, 0);
lcd.blink();
break;}
}
void Reloj(){
if(digitalRead(PULSADOR_MODO)==HIGH){
modo++;
modo = modo % N;
fijarCursorModo();
while(digitalRead(PULSADOR_MODO)==HIGH);}

switch(modo){
case 1:
if(digitalRead(PULSADOR_UP)==HIGH){
incrementarHoras();
while(digitalRead(PULSADOR_UP)==HIGH);}
if(digitalRead(PULSADOR_DOWN)==HIGH){
decrementarHoras();
while(digitalRead(PULSADOR_DOWN)==HIGH);}
break;
case 2:
if(digitalRead(PULSADOR_UP)==HIGH){
incrementarMinutos();
while(digitalRead(PULSADOR_UP)==HIGH);}
if(digitalRead(PULSADOR_DOWN)==HIGH){
decrementarMinutos();
while(digitalRead(PULSADOR_DOWN)==HIGH);}
break;}
if(actualizar == true){
actualizarReloj();
lcd.clear();
lcd.noBlink();
lcd.setCursor(0,0);
sprintf(texto, "%02d:%02d:%02d",horas,minutos, segundos);
lcd.print(texto);
actualizar = false;
fijarCursorModo();}}

//********************************************************************************************
////////////////CONFIGURACION DEL MODULO SIM900//////////////////////////////////////////////
//********************************************************************************************
void mensaje_sms()
{
while(horas==00 && minutos==00 && segundos==0)
{
lcd.setCursor(10,1);
lcd.println("En.SMS");//enviamos el mensaje
SIM900.print("AT+CMGF=1\r"); //Comando AT para mandar un SMS
delay(1000);
SIM900.println("AT+CMGS=\"966222588\""); //Numero al que vamos a enviar el mensaje
delay(1000);
SIM900.println("Su consumo de agua en el dia es =");//texto sms
SIM900.println(litros);// Texto del SMS
SIM900.println("Litros acumulados");

63
delay(100);
SIM900.println((char)26);//Comando de finalizacion ^Z
delay(100);
SIM900.println();
delay(5000); // Esperamos un tiempo para que envíe el SMS
lcd.setCursor(10,1);
delay(100);
lcd.println("SMS En");
delay(1000);} }
////**********************************************************************************
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop(){
Reloj();
calculo();
LCD_16x2();
mensaje_sms();
}
//***********************funcion de presentacion del proyecto******************************
///////////////////////////////////////////////////////////////////////////////////////////
void Intro()
{
lcd.print("CAUDALIMETRO DIG"); // Imprime "LCD Tutorial" sobre el LCD
delay(1000); // 0.5 segundos de espera
lcd.clear(); // Limpia la pantalla
delay(1000);
lcd.print(" PRESENTADO");
lcd.setCursor(0,1);// Seteamos la ubicacion texto 0 linea 1 que sera escrita sobre el LCD
lcd.print(" POR");
delay(1500);
lcd.clear(); // Limpia la pantalla
lcd.print(" Gustavo");
lcd.setCursor(0,1);
lcd.print("Zevallos Carlos");
delay(2000);
lcd.clear(); // Limpia la pantalla
delay(1500);
}

64

You might also like