Está en la página 1de 9

UNIVERSIDAD CATÓLICA DE SANTA MARÍA

FACULTAD DE CIENCIAS E INGENIERÍAS FÍSICAS Y


FORMALES
PROGRAMA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

_______________________ SEGUNDA FASE – DÉCIMO SEMESTRE_______________________

TRABAJO:

AVANCE II DEL PROYECTO DE TESIS

CURSO:

PROYECTO DE TESIS

ALUMNO:

ZEVALLOS CARLOS, GUSTAVO

DOCENTE:

ING. VICTOR HUGO RIVERA CHAVEZ

AREQUIPA-PERÚ

2017

1
TÍTULO DEL PROYECTO DE TESIS

DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA


MEDIDOR ELECTRÓNICO DE AGUA DOMICILIAR
MEDIANTE TECNOLOGÍA GSM/GPRS

2
Resumen:
En este informe de avance de tesis se hará un breve resumen del porque elegí trabajar con la comunicación
GSM, y comparar con la comunicación más usada que es el Xbee en estos últimos años, también se dará a
conocer los materiales que se tiene pensado utilizar, el software, códigos que se tienen que quemar (subir)
al micro Controlador y los módulos q nos servirán de guía.

Así también dar a conocer los pasos que se realizaron durante este proceso de implementación del proyecto,
como el sensado de caudal de agua, la comunicación entre el micro Controlador y el módulo SIM900.

Introducción:
Como se estudió anteriormente, las diferentes formas de implentacion, que fueron ya elaborados, este
proyecto de sensar y medir el consumo de agua potable en la viviendas. Obté por trabajar con la
comunicación por GSM, ya que esta me facilita tambien enviar los datos a la nube (Internet). Esto mediante
el modulo SIM900, a continuacion veremos en la Figura 1, la foma de comunicación que se da entre el
sensor, usuario, celular, y por que no, anvicionar con la comunicación de datos entre la central (SEDAPAR)
y el medidor electronico domiciliar.

Fig. 1

Es una forma mucho más directa de tomar los datos sensados y llevarlos a la nube para que estos sean
verificados tanto por el usuario como por la empresa de SEDAPAR.

Tambien se presenta otra opcion, que es el trabajar con modulos Xbee, ya que estos presentan muy bajo
consumo de energia que a la larga estos tendrán más ciclo de vida util. Esto es una de sus ventajas muy
considerables que presenta. Sin embargo estos solo sirven de comunicación de punto a punto o punto a
multipuno, más no tienen la capacidad de poder interactuar con la nube (Internet). A continuacion, en la
figura 2 se muestra la forma como esta ya han sido implementadas para este tipo de proyecto.

3
Fig. 2

Estos modelos de Red ya fueron y están siendo utilizados en muchas partes del mundo, uno de ellos es la
ciudad de Lima (Lima metropolitana, San Juan de Lurigancho, Comas, y otros más).

Como se notó esta forma de trabajar, exige necesariamente muchos modulos Xbee los cuales son: Esclavo
(enviar los datos), Esclavo-Coordinador (el que junta los datos y vuelve a enviar) y el Coordinador
(Centro de control). Esto exige más gastos en el momento de la implementación, cave recalcar que cada
módulo esta por encima de los 100 nuevos soles.

Por estas razones escogí trabajar con la tecnología GSM la cual solo me exige un solo modulo y el valor
con la que se puede encontrar en el mercado está en el rango de los 80 – 160 nuevos soles, esto
dependiendo del modelo con el cual se desea trabajar.

Cronograma de actividades:
Bueno, durante estas últimas semanas me tomé la molestia de archivar cada paso que daba en la
implementación del proyecto. A continuación veremos los pasos que seguí para la construcción sistema
de sensado.

Implementación del proyecto:


27/10/2017 jueves
1. Se compró los componentes
 Modulos (arduino uno, SIM900)
 Pantalla LCD
 Componentes externos para implementar sin el módulo arduino (atm328p micro
Controlador)
2. Se implementó el software en arduino para trabajar con el LCD haciendo las conexiones
correspondientes.
3. Se implementó el ATMega328p fuera del módulo arduino, para luego instalarlo en el
protoboard.

4
28/10/2017 viernes

4. Implementación de la fuente reguladora (LM7805) para la alimentación de 5V.


5. Con el módulo arduino UNO y junto con el LCD se hizo el censado del caudal del agua.
6. Luego se implementó en protoboard.

30/10/2017 lunes

7. Implementar el software del módulo SIM900 para llamadas y envió de “sms”


8. Hacer llamadas y a la vez mostrando la secuencia por LCD
9. Manda “sms” por el módulo SIM900 mostrando la secuencia por LCD

5
01/11/2017 miércoles

10. Se realizó el llamado celular y sms del sim900 en protoboard con LCD.
11. Se implementó la fuente para el sim900 que es 5.5V a 850mA.
12. Se implementó el temporizador con sms

02/11/2017 jueves
13. Verificación de las conexiones y los softwares del proyecto.

6
Anexo:
Programa de envio del sms mostrado por LCD

#include <SoftwareSerial.h>
#include <LiquidCrystal.h> // Incluye la Libreria LiquidCrystal
SoftwareSerial SIM900(7, 8); // Configura el puerto serial para el SIM900
LiquidCrystal lcd(11, 10, 3, 4, 5, 6); // Crea un Objeto LC. Parametros: (rs, enable, d4, d5,
d6, d7)
void setup()
{
lcd.begin(16,2); // Inicializa la interface para el LCD screen.
SIM900.begin(19200); //Configura velocidad del puerto serie para el SIM900
delay(10000); //Tiempo para que encuentre una RED
}
void mensaje_sms()
{
lcd.println("Enviando SMS...");
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("Saludos desde arduino, Gustavo");// Texto del SMS
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.clear();
delay(100);
lcd.println("SMS enviado");
}
void loop()
{
mensaje_sms(); //Envia SMS
while (1); // Espera por tiempo indefinido
}

7
Programa de Sensor de flujo mostrado por LCD

#include <Wire.h> // Librería comunicación I2C


#include <LiquidCrystal.h> // Librería LCD 16x2
LiquidCrystal lcd(11, 10, 3, 4, 5, 6); // Crea un Objeto LC. Parametros: (rs, enable, d4, d5, d6, d7)

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

// Rutina de servicio de la interrupción (ISR)


void flujo()
{
pulsos++; // Incrementa en una unidad el número de pulsos
}
void setup()
{
pinMode(sensor, INPUT_PULLUP); // Pin digital como entrada con conexión PULL-UP interna
lcd.begin(16,2); // Inicializo el LCD 16X2
interrupts(); // Habilito las interrupciones
attachInterrupt(0, flujo, RISING);
tiempoAnterior = millis(); // Guardo el tiempo que tarda el ejecutarse el setup
Intro(); // llamada la funcion que es de presentacion del proyecto
}
void loop ()
{
// Cada segundo calculamos e imprimimos el caudal y el número de litros consumidos
if(millis() - tiempoAnterior > 1000)
{
// Realizo los cálculos
tiempoAnterior = millis(); // Actualizo el nuevo tiempo
pulsos_Acumulados += pulsos; // Número de pulsos acumulados
litros_Hora = (pulsos * 60 / 7.7); // Q = frecuencia * 60/ 7.7 (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
LCD_16x2(); // Llamada a la función que muestra los resultados en el LCD
}
}
// Función que muestra los resultados en el LCD
void LCD_16x2()
{
// Imprimo la cabecera del sistema
lcd.clear();
lcd.setCursor(0,0);
// Imprimo el caudal en L/hora
lcd.print(litros_Hora, DEC);
lcd.print(" L/Hora");
lcd.setCursor(0,1);
// Imprimo el número de litros acumulados
lcd.print(litros);
lcd.print(" Litros");
}
//funcion de presentacion del proyecto
void Intro()
{

8
lcd.print("MEDIDOR DE AGUA"); // 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);
}

También podría gustarte