CD 4463
CD 4463
CD 4463
ELECTRONICA Y TELECOMUNICACIONES
gaboman85@hotmail.com
patricio.carrasco@epn.edu.ec
Yo, GONZÁLEZ MORENO VÍCTOR GABRIEL, declaro bajo juramento que el trabajo aquí
descrito es de mi autoría; que no ha sido previamente presentada para ningún grado o
calificación profesional; y, que he consultado las referencias bibliográficas que se incluyen en
este documento.
GONZALEZ MORENO
VICTOR GABRIEL
CERTIFICACIÓN
Certifico que el presente trabajo fue desarrollado por GONZALEZ MORENO VICTOR
GABRIEL, bajo mi supervisión.
DIRECTOR DE PROYECTO
DEDICATORIA
Dedico este trabajo a mi madre, gracias por todo, y al Ing. Patricio Carrasco, por sus
sabios conocimientos.
CONTENIDO
Resumen i
Antecedentes iii
CAPITULO I 1
1. FUNDAMENTACIÓN TEÓRICA. 1
Capitulo II 45
2. Construcción de la interfaz de control 45
Conclusiones 62
Recomendaciones. 63
ANEXO A v
TABLA DE CODIGOS DE CONTROL ASCCI
ANEXO B viii
PROGRAMAS DE LOS MICROCONTROLADORES
ANEXO C xIv
DATASHEET DEL 4N25
ANEXO D xIvii
DIAGRAMAS CIRUITALES DE LAS PLACAS DEL SISTEMA
ANEXO E I
MANUAL DE USUARIO.
Bibliografía y Web grafía. Ixi
i
RESUMEN
A continuación del capitulo 2, se incluyen los anexos; los cuales contienen las
tablas de los códigos de control ASCCI, se presenta además el código fuente
de los microcontroladores, los diagramas que componen el circuito, las hojas
de datos de los dispositivos electrónicos utilizados, y finalmente se presenta el
manual de usuario de la aplicación.
iii
ANTECEDENTES
Por esta razón este proyecto esta dirigido al área de seguridad, con la finalidad
de desarrollar un sistema que pueda ser controlado remotamente.
CAPITULO 1
1 FUNDAMENTACIÓN TEÓRICA.
1
1.1.1 INTRODUCCIÓN .
El servicio de mensajería corta consiste en el intercambio de mensajes de texto
que pueden incluir letras, números, y otros caracteres a través de la red GSM.
SMS apareció en escena en 1991 en Europa, donde la tecnología inalámbrica
digital echo raíces.
El servicio de transmisión de datos (SMS) permite transferir un mensaje de
texto entre una estación móvil (MS) y otra entidad (SME), a través de un
centro de servicio (SC).El servicio final ofrecido es una comunicación extremo a
extremo entre la estación móvil (MS) y la entidad (SME). La entidad puede ser
otra estación móvil o puede estar situado en una red fija. En la figura 1.1 se
aprecia lo mencionado.1
1
Flores Christian,Rivadeneira José Luis , Tesis Escuela Politécnica Nacional, Diseño e
Implementación de un Sistema Microprocesado Para Adquisición de Datos en Forma Remota
de un Medidor Digital de Consumo de Energia Electrica Tipo Industrial Mediante Telefonia
Celular,pag 24,2006.
2
1
FIG 1.1: servicio sms
SMS también garantiza la entrega de los mensajes cortos por la red. Errores
temporales son identificados y el mensaje es guardado en la red hasta que el
destino este disponible.
2
1.1.2 EVOLUCIÓN DE LA TELEFONÍA CELULAR .
La telefonía móvil ha evolucionado a partir de las nuevas necesidades del
usuario, su evolución se la puede explicar en cuatro generaciones que se
describen a continuación.
Primera generación.
Segunda generación.
Aparece en el año de 1990. La generación 2G constituye un cambio de
telefonía móvil analógica a digital. 2
2
Estrada Juan, Reinos Diego, Tesis Escuela Politécnica Nacional, Diseño E Implementación De
Un Prototipo De Monitoreo Remoto De Contaminación Ambiental Utilizando Tecnología GSM,
,2009,pag 2.
3
Tercera generación.
La tercera generación fue desarrollada para ofrecer al usuario una mayor
velocidad y conexión multimedia, soportar altos niveles de tráfico desde 144
kbps hasta mayores a 2Mbps.
Permite servicios para transferencia de voz y datos, como también aplicaciones
de descarga de programas, correo electrónico, mensajería instantánea entre
otros. 3
Entre las ventajas de 3G está una mayor velocidad de acceso, con la ayuda de
IP se logra la implementación de servicios multimedia y nuevas aplicaciones de
banda ancha, como video-telefonía y video-conferencia.
4
Cuarta generación.
Los sistemas 4G se enfocan a servicios de video de alta calidad, con tasas de
transferencia de datos de alrededor de 100 Mbps en una estación móvil, y 1
Gbps en una estación fija. 4G reensambla y converge algunas tecnologías
existentes (GPRS, EDGE, WLAN, HIPERLAN).
LTE (Long Term Evolution) es una tecnología en estado de prueba, esta podría
ser considerada como el estándar 4G. LTE alcanza tasas entre 16 y 154 Mbps.
3
1.1.3 ARQUITECTURA DE LA RED GSM
Todas las redes GSM se pueden dividir en cuatro partes fundamentales y bien
diferenciadas:
La Estación Móvil o Mobile Station (MS): Consta a su vez de dos elementos
básicos que debemos conocer; por un lado el terminal o equipo móvil, y por
otro lado el SIM o Subscriber Identity Module. Con respecto a los terminales
poco tenemos que decir ya que los hay para todos los gustos, lo que si
tenemos que comentar es que la diferencia entre unos y otros radica
fundamentalmente en la potencia que tienen, esta va desde los 20 watios
(generalmente instalados en vehículos), hasta los 2 watios de nuestros
terminales.
El SIM es una pequeña tarjeta inteligente que sirve para identificar las
características de nuestro terminal. Esta tarjeta se inserta en el interior del
cellular y permite al usuario acceder a todos los servicios que tenga disponibles
por su operador,4sin la tarjeta SIM el terminal no nos sirve de nada por que no
podemos hacer uso de la red.
El SIM esta protegido por un número de cuatro dígitos que recibe el nombre de
PIN o Personal Identification Number.
3
Estrada Juan, Reinos Diego, Tesis Escuela Politécnica Nacional, Diseño E Implementación De
Un Prototipo De Monitoreo Remoto De Contaminación Ambiental Utilizando Tecnología
GSM,pag 6,2009
5
- Home Location Registrer (HLR): El HLR es una base de datos que contiene
información sobre los usuarios conectados a un determinado MSC. Entre la
información que almacena el HLR tenemos fundamentalmente la localización
del usuario y los servicios a los que tiene acceso. El HLR funciona en unión con
en VLR que vemos a continuación.
6
3
FIG 1.2: arquitectura de la red gsm
7
4
1.1.4 TIPOS DE SMS .
Los SMS pueden clasificarse según el número de destinatarios en: Mensajes
punto a punto y punto multipunto.
Punto a punto
En este tipo de mensajes el destinatario es único, y se pueden clasificar según
la dirección de envío en: Mobile Originated y Mobile Terminated.
Mobile Originated
Son los mensajes que se originan en el SME. El mensaje es transportado
desde el SME hasta el SMSC (SMS-SUBMIT), el destino puede ser otro
usuario móvil o una aplicación. Se puede configurar el SME para que el SMSC
envíe un reporte de confirmación del mensaje recibido (SMS-SUBMIT-
REPORT). El mensaje puede ser enviado a un número corto (Ej. 5039), que
previamente ha sido contratado a las operadoras móviles por parte de las
empresas que prestan servicios utilizando SMS. 6
Este tipo de mensajes son los que se emplean para participación en concursos,
votaciones, petición de alertas o de recepción de información en el móvil.
En la figura 1.3 se muestra un esquema de este tipo de SMS.
4
FIG 1.3: mo (mobile originated)
Mobile Terminated
Son los mensajes que se envían a un SME. El mensaje es enviado desde el
SMSC hasta el terminal móvil (SMS-DELIVER), la fuente puede ser otro
usuario móvil o una aplicación. Una vez que el mensaje llega al terminal móvil
un reporte confirma al SMSC que la entrega fue completada (SMS-DELIVER-
REPORT).En la figura 1.4 se puede observar un esquema de este tipo de
SMS.
4
Estrada Juan, Reinos Diego, Tesis Escuela Politécnica Nacional, Diseño E Implementación De
Un Prototipo De Monitoreo Remoto De Contaminación Ambiental Utilizando Tecnología
GSM,pag 19,2009
8
4
FIGURA 1.4: mt (mobile terminated)
Punto multipunto
En este tipo, el mensaje es enviado a un conjunto de usuarios. A este tipo
corresponde Cell broadcast. Permite el envío simultáneo de mensajes a
múltiples usuarios en un área geográfica específica. El destino del mensaje
está descrito en términos de identificadores de celda utilizados por la BSC para
enrutar el contenido del mensaje a los usuarios de la BTS.
1.1.5 BENEFICIOS
Los beneficios que traen los SMS son:
Servicios de notificación.Permite el envío de mensajes a un grupo de
usuarios, los cuales constan en una base de datos específica, por ejemplo:
clientes de compañías de televisión, clubs deportivos, supermercados y otros
minoristas, aerolíneas y bancos. Estos mensajes pueden ser publicitarios, de
notificación, entre otros.8
Servicios de localización.
Aplicado a la localización de vehículos, integra un sistema de posicionamiento
global (GPS). Los datos de longitud y latitud son transferidos a un terminal
móvil. El terminal por medio de un SMS envía estos datos a un servidor, en
donde se procesan para indicar la localización actual del vehículo en un mapa
geográfico.
Supervisión remota.
El servicio de mensajería corta puede usarse para gestionar máquinas en
ambientes de supervisión remota. Esta aplicación proporciona valiosa
información sobre el estado o el suceso de algún evento, ocurrido sobre la
máquina que el usuario precisa saber.
9
Comercio electrónico.
Se pueden llevar a cabo transacciones financieras a través del terminal móvil,
para la cual será necesario tener convenios con algunas instituciones
bancarias.
59
FIGURA 1.5: Esquema de comunicación entre un computador y un celular
5
Figura y texto tomados de: www.zonabot.com
10
Comandos de Configuración.
Mediante este tipo de comandos se puede cambiar la configuración interna del
Modem del teléfono celular; enviar un mensaje de texto, leer el estado de la
batería, etc.
Comando de Atención.
Este comando de Atención, tiene la función de garantizar una buena conexión
en el canal de comunicación, cuando existe una buena conexión el teléfono
responde OK..La tabla 1.1 indica el comando y su respuesta. 10
6
TABLA 1.1: Respuesta al comando atención
6
Figura tomada de : www.zonabot.com
11
6
TABLA 1.2: Tabla de comandos para lectura de un sms
6
TABLA 1.3: Tabla de comandos para enviar un sms
11
Para utilizar los comandos de la tabla 1.3 de forma correcta, se debe seguir el
siguiente orden:
- AT+CMGS [ENTER<CR>]
-ESCRIBIR MENSAJE
-CTRL+Z
Comando para lectura del estado de la batería.
Es posible obtener un dato que muestre la cantidad de carga que tiene la
batería del celular en un momento determinado. La tabla 1.4 indica la
información que despliega este comando.
12
7
1.2.2 CÓDIGOS DE CONTROL ASCCI .
7
Texto tomado de www.wikipedia.com/codigosascci.html
13
8
1.2.4 COMUNICACIÓN SERIE .
Es un protocolo de comunicación entre dispositivos, y toma este nombre debido
a que los bits se reciben uno detrás de otro o en serie.
El nivel lógico "1", representa un estado de tensión o corriente denominado
marca, el nivel lógico "0", representa un estado de tensión o corriente
denominado espacio. En la figura 1.6 se aprecia un ejemplo de esta forma de
comunicación.
813
FIG 1.6: Formato de la comunicación serie
8
Texto e imagen tomados de :www.edudevices.com.ar
14
La norma RS232.
TTL 5V 0
8
FIG 1.7: Conectores seriales y su descripción de pines
15
a. 300
b. 600
c. 1200
d. 2400
e. 4800
f. 9600
g. 19200
RS232 en el PC.
Por tanto en un PC se utilizan conectores DB9 macho, de 9 patillas, por los que
se conectan los dispositivos al puerto serie. Los conectores hembra que se
enchufan tienen una colocación de patillas diferente, de manera que se
conectan la patilla 1 del macho con la patilla 1 del hembra, la patilla 2 con el 2,
etc. Normalmente, las comunicaciones serie en el PC tienen los siguientes
parámetros: 9.600 baudios, 1 bit de arranque, 8 bits de Datos, 1 bit de parada y
sin paridad.En la figura 1.8 se puede ver un ejemplo de la transmisión en TTL
del dato binario 01011001. La línea en reposo está a nivel lógico alto (+5
voltios).
9
www.microchip.com.
17
9
FIG 1.10: Arquitectura Harvard
1.3.2 DESCRIPCIÓN.
El PIC 16F877 es un circuito integrado, en cuyo interior posee toda la arquitectura
de un computador, CPU, memoria RAM, memoria EPROM y circuitos de entrada y
salida. La figura 1.11 muestra un esquema de dispositivos externos conectados al
microcontrolador.
18
9
FIG 1.11: Conexión de dispositivos externos al PIC
9
FIG 1.12: PIC 16F877
1.3.3 CARACTERÍSTICAS
El número de pines que posee este PIC son 40.La figura 1.13 tienen su
descripción de pines.
19
9
FIG 1.13: Distribución de pines del PIC 16F877
CPU:
-Tecnología RISC
- Sólo 35 instrucciones que aprender
- Todas las instrucciones se ejecutan en un ciclo de reloj, excepto los saltos
que requieren dos
- Frecuencia de operación de 0 a 20 MHz (200 nseg de ciclo de instrucción)
- Opciones de selección del oscilador
Memoria:
- Hasta 8k x 14 bits de memoria Flash de programa.
- Hasta 368 bytes de memoria de datos (RAM).
- Hasta 256 bytes de memoria de datos EEPROM.
- Lectura/escritura de la CPU a la memoria flash de programa.
- Protección programable de código.
Reset e interrupciones:
- Hasta 14 fuentes de interrupción
- Reset de encendido (POR)
- Timer de encendido (PWRT)
- Timer de arranque del oscilador (OST)
- Sistema de vigilancia Watchdog timer.
20
Otros:
- Modo SLEEP de bajo consumo de energía.
- Rango de voltaje de operación de 2.0 a 5.5 volts
- Alta disipación de corriente de la fuente: 25mA.
- Rangos de temperatura: Comercial, Industrial y Extendido.
- Bajo consumo de potencia.
9
FIG 1.14: Bancos de memoria del PIC 16F877
22
El reloj.
Para que el PIC pueda procesar las instrucciones, es necesario un reloj, cuya
frecuencia es parámetro fundamental en el momento de establecer la velocidad
de ejecución de las instrucciones, y en el consumo de energía.
El tiempo en que tarda en ejecutarse una instrucción se llama ciclo de
instrucción, en los PIC’s un ciclo de instrucción emplea cuatro periodos de reloj.
Todas las instrucciones del PIC se realizan en un ciclo de instrucción, salvo las
de salto que tardan el doble.
1.3.4 VENTAJAS
-El PIC 16F877 de 40 pines usa tecnología flash (EEPROM) que permite un
borrado rápido y reprogramación para acelerar la depuración de programas.
-Disponen de memoria de datos no volátil que puede ser usada para archivar
variables y otros parámetros.
-Sus distintos modelos, contienen todos los recursos que se precisan en las
aplicaciones de los microcontroladores de 8 bits.
-El TMR1 que hay en esta gama, tiene un circuito oscilador que puede trabajar
asincrónicamente, y que puede incrementarse aunque el microcontrolador se
halle en el modo de reposo (sleep), posibilitando la implementación de un reloj
en tiempo real.
10
1.3.5.1 El lenguaje microcode
BUSCADOR DE CODIGO
ENCABEZAMIENTO
COMENTARIOS
PROGRAMA
10
Texto tomado de : www.frino.com
25
como buscador de líneas, para esto basta con dar un clic en el nombre de la
línea que se desea encontrar y automáticamente indica.
Al finalizar la escritura del programa, éste debe ser guardado utilizando el icono
de la barra de herramientas de MICROCODE para obtener el archivo “.bas”,
Para compilar se utiliza la opción en la barra de herramientas, el compilador
despliega un mensaje de inicialización y procesa el archivo, al aceptar esta
acción se crea un archivo de código fuente ensamblado con extensión “.asm” ,
y automáticamente se invoca al ensamblador para completar la tarea.
11
FIG 1.16: Grabador PICKIT-USB
Para Importar un fichero HEX debemos dar un clic en File Import Hex, y se
abre la clásica caja de dialogo que nos permitirá localizar el fichero HEX
deseado. Una vez seleccionado, cargamos su contenido sobre los buffers de
memoria del software PICkit-2, para su posterior grabación sobre la memoria
física del controlador.
11
Texto tomado de : www.frino.com
28
12
Texto y figura tomados de: circuitos electronicos.com.
30
I = 10 V = 0.5mA
ȍ
Con 0.5 mA en la entrada del PIC no existe riesgo de que este se dañe.
Para la transmisión desde el PIC hacia el PC se coloca una resistencia de 220
ȍ, para regular la corriente de entrada al puerto serie.El calculo de esta
corriente se presenta a continuación.
I= 5V = 22mA
ȍ
Una corriente de 22mA, UHJXODGD FRQ OD UHVLVWHQFLD GH ȍ, es el mismo
valor de amperaje que se obtiene utilizando el MAX232.
FIG 1.23: Conexión entre el PIC y el puerto serie sin utilizar el MAX 232.
31
13
1.4.2 EL LCD .
Es un dispositivo visualizador, utilizado para mostrar mensajes que indican al
operario el estado de la maquina, o para dar instrucciones de manejo. El LCD
permite la comunicación entre las maquinas y los humanos, este puede
mostrar cualquier carácter ASCII, y consume mucho menos que los displays
de 7 segmentos, el mas popular es el 2X16, 2 líneas de 16 caracteres cada
una. En la a figura 1.24 se aprecia la LCD.
13
FIG 1.24: Pantalla LCD 2X16 .
13
FIG 1.25. Distribución de pines del LCD
13
Texto y grafico tomados de www.X-ROBOTICS.com
32
uno de los dos registros internos (RS). Por lo tanto se puede controlar el
display con 8+3=11 bits.
14
1.4.3 EL TECLADO .
Es un dispositivo de entrada de datos, consta de 16 teclas o pulsadores,
dispuestos e interconectados en filas y columnas. Dispone de un conector SIL
(Single In Line) de 8 pines, que corresponden con las 4 filas y las cuatro
columnas de las que dispone. La figura 1.27 muestra el teclado utilizado en el
equipo.
14
Texto y grafico tomados de www.X-ROBOTICS.com
34
15
FIG 1.29: Cable serie .
La conexión interna del cable debe ser directa: En la figura 1.30, aparecen las
conexiones entre los pines de cada uno de los conectores DB9.
FIG 1.30: Conexiones del cable utilizado para la comunicación entre el PIC y el
pc.22
15
Figura tomada de ; www.carlosvolt.com.ar
35
PUERTO DE COMUNICACIONES
16
FIG 1.32: Teléfono Motorota C115
FIG 1.33: Distribución de pines del conector (Jack) a través del cual
16
intercambian datos el PIC y el celular .
16
Figura tomada de ; www.carlosvolt.com.ar
37
17
FIG 1.34: Conexión eléctrica entre el mini jack y el PIC .
La unidad central de proceso esta compuesta por los PICs 16F877 y 16F628A,
el teclado permite al usuario ingresar una clave para poner al sistema en modo
alerta, el LCD muestra la información necesaria para la interacción con el
usuario; el celular recibe comandos AT desde la unidad central de proceso y
devuelve información para decidir si alguno de los reles es activado o
17
Figura tomada de : www.carlosvolt.com.ar
38
desactivado. Los reed switchs dan la señal para que la unidad central de
proceso pueda saber si la seguridad fue violada, en este caso se ordena al
celular enviar un SMS de alerta a los números de celular almacenados en la
memoria del PIC 16F628A.
Para que el sistema realice estas funciones, se requiere que a cada puerto del
PIC se le asigne una función específica, por lo tanto los pórticos que tiene el
PIC16F877A serán utilizados de la siguiente manera:
18
El PIC 16F628A .
Es un microcontrolador que maneja 8 bits en el bus de datos, este pertenece a
la misma familia que el PIC 16F877, por lo que sus características son casi
similares.En la figura 1.36 se aprecia al PIC 16F628A.25
18
Texto y gráficos tomados de: www.microchip.com.
39
18
FIG 1.36: PIC 16F628A
1826
FIG 1.37 Distribución de pines del PIC 16F628A
PORTA: RA0-RA7:
PORTB: RB0-RB7:
Otros pines
Para este proyecto los pines de este PIC tienen las siguientes funciones:
-La segunda función es; recibir un dato (carácter ASCII) desde el PIC principal
y activar un rele, para permitir el paso de los datos desde el celular hacia el
PIC 16F877, luego de 2 segundos desactiva el rele y el PIC 16F877 detecta
esta acción como un cambio de estado de 3.3 voltios a cero voltios, de esa
manera el PIC principal puede continuar ejecutando las siguientes
instrucciones.
El PIC 16F877 activará cualquiera de los pines (RA3, RA5 o RE1), con el
propósito de activar el circuito que controla las luces de la casa prototipo, sí el
microcontrolador a leído un nuevo mensaje de texto con el código de
activación correcto.
Siempre que se quiera aislar eléctricamente las entradas del PIC, se debe
utilizar un opto acoplador como el 4N25 o similares, las características de este
dispositivo están en el anexo C.
IMAN
SENSOR
1927
FIG 1.39: Reed switch
19
Figura tomada de : www.ico-Ecuador.com
43
5 9 ȍ§ȍ
0.025 A
Esto quiere decir que la resistencia mínima D FRORFDUVH HV GH ȍ SDUD
estar al limite de la capacidad que soporta el PIC, pero no es aconsejable
trabaja con los limites, por lo que se recomienda utilizar una resistencia de 4.7k
para limitar la corriente de entrada al PIC. La corriente obtenida es la siguiente:
I= 5V = 1 mA
ȍ
Con un miliamperio ingresando al PIC no hay problema, considerando que
este soporta 25 mA como máximo en sus entradas.
El PIC 16F877 siempre esta solicitando el estado de la batería al celular, si se
detecta un estado igual al 50 por ciento de carga, el PIC satura un transistor y
así activa un rele que conecta el cargador al celular.
44
I= 5V = 1 mA
ȍ
Con 1 miliamperio la base del 2N3904 este dispositivo se satura normalmente.
En la figura 1.41 se aprecia el circuito para la conexión del cargador del
celular.
20
FIG 1.42: Diagrama de la fuente del sistema
20
Diagrama tomado de : circuitoselectronicos.com.
46
20
FIG 1.43: Trayecto de la corriente de la batería marcado en azul .
CAPITULO 2
mediciones en el tiempo de respuesta ante una alarma, y corregir las fallas que
se presenten.
21
2.1.1 DESARROLLO DEL DIAGRAMA CIRCUITAL EN PROTEUS .
PROTEUS es un entorno de desarrollo, el cual integra diversas herramientas
de software para las tareas más comunes, en el desarrollo de proyectos
electrónicos tales como: captura de esquemáticos, fabricación de circuitos
impresos y simulaciones. La figura 2.2 muestra la ventana principal del
software proteus.30
21
Texto y grafico tomados de : www.labcenter.com
48
21
FIG 2.2: Ventana principal del programa proteus .
El diagrama del equipo fue realizado en proteus, por la flexibilidad que posee
en la simulación, diseño, y construcción de placas de circuito impreso.
En el anexo D se encuentran los diagramas que componen el equipo.
FIG 2.7: Placa madre del sistema con sus elementos terminada.
FIG 2.8: Placa de reles que encienden las luces en la casa prototipo.
22
Texto y gráficos tomados de: Curso Completo de Visual Basic 6.0, Escuela Superior de
Ingenieros Industriales, UNIVERSIDAD DE NAVARRA ,Javier García de Jalón · José Ignacio
Rodríguez
53
Esto quiere decir que un gran número de tareas se realizan sin escribir código,
simplemente con operaciones gráficas realizadas con el ratón sobre la pantalla.
Es una excelente herramienta de programación que permite crear aplicaciones
propias (programas) para Windows 95/98/ XP/ o Windows Vista.
2233
FIG 2.12: Pantalla principal de visual Basic 6.0
22
FIG 2.13: Barra de menú de Visual Basic 6.0
22
FIG 2.14: Barra de herramientas de Visual Basic 6.0
Formularios (Forms).
Los formularios son las zonas de la pantalla sobre las que se diseña el
programa, y sobre los que sitúan los controles o herramientas del Toolbox. Al
ejecutar el programa, el Form se convertirá en la ventana de la aplicación
donde aparecerán los botones, las cajas de texto, los gráficos, etc. En la figura
2.16 se puede apreciar el form de visual Basic 6.0.
55
22
FIG 2.16: Formulario de diseño .
El Code Editor.
El Editor de Código de Visual Basic 6.0 es la ventana en la cual se escriben las
sentencias del programa.
56
22
FIG 2.18: Ventana para editar el código del programa .
Luego saldrá una pantalla con una lista de componentes y buscamos Microsoft
Com Control 6.0, seleccionamos y damos un clic en aceptar. Esto se aprecia
en la figura 2.20
La casa prototipo tiene instaladas luces que funcionan con 110 VAC en las
ventanas y el techo.
60
FIG 2.25: Borneras con las conexiones entre la casa prototipo y el sistema de
alarma.
Aparte de este error el programa pasó las pruebas sin más novedades.
El hardware cumplió todas las funciones programadas sin problemas, tanto
con corriente alterna, como con la batería de respaldo sin presentar
novedades.
2.6.1 TIEMPO DE RESPUESTA ANTE UNA ALARMA.
Para este análisis se debe tomar en cuenta que este sistema de seguridad
trabaja en base a la red GSM, por lo tanto el tiempo de respuesta ante una
alarma, depende mayormente de la cantidad de señal celular que exista en el
lugar donde este instalado.
Una vez que tenemos claro esto, empezamos revisando cuales son los
procesos que el microcontrolador ejecuta constantemente.
Cuando el sistema de alarma se encuentra en modo alerta este realiza
internamente la ejecución de los siguientes procesos:
Después que el equipo detecta una zona abierta, durante 6 segundos enciende
y apaga las luces de la casa prototipo; luego el microcontrolador tarda 6.4
segundos en enviar las señales necesarias hacia el celular, para que éste
envíe el primer mensaje de alerta; luego hace una pausa de 5 segundos ,y
después tarda otros 6.4 segundos en enviar el segundo mensaje de alerta
.Por lo tanto el tiempo que transcurre desde que una zona es abierta hasta que
el SMS de alerta llega al primer usuario es aproximadamente 9 segundos, y
para el segundo usuario el tiempo será aproximadamente 19 segundos.
El análisis descrito anteriormente es valido para las zonas 2 y 3, ya que la zona
1 tiene un tiempo de 10 segundos de espera, para que el usuario desarme el
sistema sin que ocurra una alarma, por lo tanto, si llega ha ocurrir una alarma
en la zona 1, el tiempo que demoran en llegar los SMS a los usuarios es 10
segundos mas largo; 19 segundos para el primer usuario y 29 segundos para el
segundo usuario.
usuario envía mas de un SMS para activar las luces de la casa prototipo , el
equipo no responde , ya que los SMS se encuentran retenidos en la red GSM
hasta que el dispositivo este listo, y cuando la red despacha los SMS retenidos,
estos llegan casi al mismo tiempo, y el microcontrolador no alcanza a leer la
información necesaria para activar cualquiera de las luces.
También se observo que si la batería del celular tiene una carga menor al 50%,
los comandos enviados por el microcontrolador hacia el MODEM no funcionan
en su totalidad, solo un 10% de ellos funcionó correctamente.
CONCLUSIONES
El momento en que exista una caída en la red GSM este equipo queda
inhabilitado para la transmisión de una alarma.
Este sistema es una solución de bajo costo, por lo que puede competir en el
mercado con otros dispositivos similares.
RECOMENDACIONES.
Instalar este equipo en lugares donde exista una buena cobertura celular, para
no tener problemas en la transmisión de alarmas.
ANEXO A
TABLA DE
CÓDIGOS DE
CONTROL ASCCI
v
vi
vii
ANEXO B
PROGRAMAS DE LOS
MICROCONTROLADORES
16F877 Y 16F628A
viii
A VAR portd.7
B VAR portd.6
C VAR portd.5
D VAR portd.4
T1 VAR BYTE
T2 VAR BYTE
T3 VAR BYTE
T4 VAR BYTE
CLP1="5"
CLP2="5"
CLP3="5"
CLP4="5"
W="G"
NUM0="0"
m="D"
N="D"
O="D"
B0 VAR BYTE
C1 VAR BYTE
C2 VAR BYTE
C3 VAR BYTE
C4 VAR BYTE
C5 VAR BYTE
C6 VAR BYTE
C7 VAR BYTE
C8 VAR BYTE
C9 VAR BYTE
C0 VAR BYTE
D1 VAR BYTE
D2 VAR BYTE
D3 VAR BYTE
D4 VAR BYTE
D5 VAR BYTE
D6 VAR BYTE
D7 VAR BYTE
D8 VAR BYTE
D9 VAR BYTE
D0 VAR BYTE
E1 VAR BYTE
E2 VAR BYTE
E3 VAR BYTE
E4 VAR BYTE
E5 VAR BYTE
E6 VAR BYTE
E7 VAR BYTE
E8 VAR BYTE
E9 VAR BYTE
E0 VAR BYTE
F1 VAR BYTE
F2 VAR BYTE
F3 VAR BYTE
xii
F4 VAR BYTE
F5 VAR BYTE
F6 VAR BYTE
F7 VAR BYTE
F8 VAR BYTE
F9 VAR BYTE
F0 VAR BYTE
G1 VAR BYTE
G2 VAR BYTE
G3 VAR BYTE
G4 VAR BYTE
G5 VAR BYTE
G6 VAR BYTE
G7 VAR BYTE
G8 VAR BYTE
G9 VAR BYTE
G0 VAR BYTE
H1 VAR BYTE
H2 VAR BYTE
H3 VAR BYTE
H4 VAR BYTE
H5 VAR BYTE
H6 VAR BYTE
H7 VAR BYTE
H8 VAR BYTE
H9 VAR BYTE
H0 VAR BYTE
I1 VAR BYTE
I2 VAR BYTE
I3 VAR BYTE
I4 VAR BYTE
I5 VAR BYTE
I6 VAR BYTE
I7 VAR BYTE
xiii
I8 VAR BYTE
I9 VAR BYTE
I0 VAR BYTE
J1 VAR BYTE
J2 VAR BYTE
J3 VAR BYTE
J4 VAR BYTE
J5 VAR BYTE
J6 VAR BYTE
J7 VAR BYTE
J8 VAR BYTE
J9 VAR BYTE
J0 VAR BYTE
K1 VAR BYTE
K2 VAR BYTE
K3 VAR BYTE
K4 VAR BYTE
K5 VAR BYTE
K6 VAR BYTE
K7 VAR BYTE
K8 VAR BYTE
K9 VAR BYTE
EMPEZAR:
for x=0 to 20
HIGH ledrojo
high ledverde
HIGH bip
pause 50
low ledrojo
low ledverde
low bip
pause 50
next
xiv
PAUSE 15000
high ledverde
serout portb.5,N2400,["C"]
SERIN portb.4,N2400,NUMA1;NUMERO 1 DEL CELULAR
SERIN portb.4,N2400,NUMB1
SERIN portb.4,N2400,NUMC1
SERIN portb.4,N2400,NUMD1
SERIN portb.4,N2400,NUME1
SERIN portb.4,N2400,NUMF1
SERIN portb.4,N2400,NUMG1
SERIN portb.4,N2400,NUMH1
SERIN portb.4,N2400,NUMA2;NUMERO 2 DEL CELULAR
SERIN portb.4,N2400,NUMB2
SERIN portb.4,N2400,NUMC2
SERIN portb.4,N2400,NUMD2
SERIN portb.4,N2400,NUME2
SERIN portb.4,N2400,NUMF2
SERIN portb.4,N2400,NUMG2
SERIN portb.4,N2400,NUMH2
SERIN portb.4,N2400,CLA1
SERIN portb.4,N2400,CLA2
SERIN portb.4,N2400,CLA3
SERIN portb.4,N2400,CLA4
LOW ledverde
pause 100
serout2 PORTB.0,84,["AT",13]
PAUSE 2000
serout2 PORTB.0,84,["AT",13]
PAUSE 1000
HIGH ledverde
xv
high bip
PAUSE 1000
DEFINE LCD_DREG PORTC
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTC
DEFINE LCD_RSBIT 3
DEFINE LCD_EREG PORTC
DEFINE LCD_EBIT 2
PAUSE 500
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$80,"CONECTE EL"
LCDOUT $FE,$C0,"CELULAR"
PAUSE 5000
LOW ledverde
low bip
pause 2000
LCDOUT $FE,1
LCDOUT
$FE,$80,NUMA1,NUMB1,NUMC1,NUMD1,NUME1,NUMF1,NUMG1,N
UMH1
LCDOUT
$FE,$C0,NUMA2,NUMB2,NUMC2,NUMD2,NUME2,NUMF2,NUMG2,N
UMH2
PAUSE 15000
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$80,CLA1,CLA2,CLA3,CLA4
PAUSE 5000
LCDOUT $FE,1
xvi
PAUSE 200
LCDOUT $FE,$82,"CONTROL-SMS"
PAUSE 1000
HIGH ledrojo
pause 1000
HIGH RELE1
PAUSE 1000
LOW RELE1
PAUSE 1000
HIGH RELE2
PAUSE 1000
LOW RELE2
PAUSE 1000
HIGH RELE3
PAUSE 1000
LOW RELE3
PAUSE 1000
HIGH ledverde
serout2 PORTB.0,84,["AT",13]
PAUSE 1000
serout2
PORTB.0,84,["AT+CPMS=",34,"SM",34,44,34,"SM",34,44,34,"SM",34,1
3]
pause 2000
serout2
PORTB.0,84,["AT+CPMS=",34,"ME",34,44,34,"ME",34,44,34,"ME",34,1
3]
PAUSE 2000
xvii
PAUSE 5000
serout2 PORTB.0,84,["AT",13]
PAUSE 1000
serout2
PORTB.0,84,["AT+CPMS=",34,"SM",34,44,34,"SM",34,44,34,"SM",34,1
3]
pause 2000
serout2
PORTB.0,84,["AT+CPMS=",34,"ME",34,44,34,"ME",34,44,34,"ME",34,1
3]
PAUSE 2000
serout2 PORTB.0,84,["AT+CMGF=1",13];MODO TEXTO
PAUSE 500
serout2
PORTB.0,84,["AT+CMGS=",34,NUM0,NUMA2,NUMB2,NUMC2,NUMD
2,NUME2,NUMF2,NUMG2,NUMH2,34,13]
PAUSE 300
SEROUT2 PORTB.0,84,["BIENVENIDO-",m,n,o,26]; ENVIAR
PAUSE 300
serout2
xviii
PORTB.0,84,["AT+CMGS=",34,NUM0,NUMA2,NUMB2,NUMC2,NUMD
2,NUME2,NUMF2,NUMG2,NUMH2,34,13]
PAUSE 300
SEROUT2 PORTB.0,84,["BIENVENIDO",m,n,o,26]; ENVIAR
PAUSE 300
low ledverde
INICIO:
serout2
PORTB.0,84,["AT+CPMS=",34,"SM",34,44,34,"SM",34,44,34,"SM",34,1
3]
pause 2000
serout2
PORTB.0,84,["AT+CPMS=",34,"ME",34,44,34,"ME",34,44,34,"ME",34,1
3]
PAUSE 2000
serout2 PORTB.0,84,["AT+CMGD=1",13]
PAUSE 500
serout portb.5,N2400,["A"]
PAUSE 100
serout2 PORTB.0,84,["AT+CBC",13]
serIN2 PORTB.1,84,[A1]
serIN2 PORTB.1,84,[A2]
serIN2 PORTB.1,84,[A3]
serIN2 PORTB.1,84,[A4]
serIN2 PORTB.1,84,[A5]
serIN2 PORTB.1,84,[A6]
serIN2 PORTB.1,84,[A7]
serIN2 PORTB.1,84,[A8]
serIN2 PORTB.1,84,[A9]
serIN2 PORTB.1,84,[A0]
serIN2 PORTB.1,84,[B1]
serIN2 PORTB.1,84,[B2]
xix
serIN2 PORTB.1,84,[B3]
serIN2 PORTB.1,84,[B4]
serIN2 PORTB.1,84,[B5]
serIN2 PORTB.1,84,[B6];DATO PARA LEER
serIN2 PORTB.1,84,[B7]
serIN2 PORTB.1,84,[B8]
serIN2 PORTB.1,84,[B9]
serIN2 PORTB.1,84,[B0]
serIN2 PORTB.1,84,[C1]
serIN2 PORTB.1,84,[C2]
serIN2 PORTB.1,84,[C3]
serIN2 PORTB.1,84,[C4]
serIN2 PORTB.1,84,[C5]
serIN2 PORTB.1,84,[C6]
serIN2 PORTB.1,84,[C7]
serIN2 PORTB.1,84,[C8]
PAUSE 500
Y=1
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$80,"INGRESE SU CLAVE"
PROG:
HIGH A
IF UNO=1 THEN T="1" :high bip:pause 500:low bip:GOSUB SIGNUM
IF DOS=1 THEN T="2" :high bip:pause 500:low bip:GOSUB SIGNUM
IF TRES=1 THEN T="3" :high bip:pause 500:low bip:GOSUB SIGNUM
LOW A
HIGH B
IF UNO=1 THEN T="4" :high bip:pause 500:low bip:GOSUB SIGNUM
IF DOS=1 THEN T="5" :high bip:pause 500:low bip:GOSUB SIGNUM
IF TRES=1 THEN T="6" :high bip:pause 500:low bip:GOSUB SIGNUM
LOW B
HIGH C
IF UNO=1 THEN T="7" :high bip:pause 500:low bip:GOSUB SIGNUM
IF DOS=1 THEN T="8" :high bip:pause 500:low bip:GOSUB SIGNUM
IF TRES=1 THEN T="9" :high bip:pause 500:low bip:GOSUB SIGNUM
LOW C
HIGH D
IF UNO=1 THEN :high bip:pause 500:low bip:GOTO ERRORCOD
IF DOS=1 THEN T="0" :high bip:pause 500:low bip:GOSUB SIGNUM
IF TRES=1 THEN :high bip:pause 500:low bip:GOTO COMPROBACION
LOW D
pause 10
GOTO PROG
SIGNUM:
IF Y=1 THEN T1=T:Y=Y+1 :GOTO PROG
IF Y=2 THEN T2=T:Y=Y+1 :GOTO PROG
IF Y=3 THEN T3=T:Y=Y+1 :GOTO PROG
IF Y=4 THEN T4=T:Y=Y+1 :GOTO PROG
xxi
ERRORCOD:
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$80,"CLAVE ERRONEA"
FOR X=0 TO 30
HIGH bip
pause 100
low bip
pause 100
next
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$82,"CONTROL-SMS"
goto INICIO
COMPROBACION:
if y=5 then goto COMPROBACION1
goto ERRORCOD
COMPROBACION1:
IF T1=CLP1 THEN PROG1
IF T1=CLA1 THEN CONTINUE1
GOTO ERRORCOD
CONTINUE1:
IF T2=CLA2 THEN CONTINUE2
GOTO ERRORCOD
CONTINUE2:
IF T3=CLA3 THEN CONTINUE3
GOTO ERRORCOD
xxii
CONTINUE3:
IF T4=CLA4 THEN CONTINUE4
GOTO ERRORCOD
PROG1:
IF T2=CLP2 THEN PROG2
GOTO ERRORCOD
PROG2:
IF T3=CLP3 THEN PROG3
GOTO ERRORCOD
PROG3:
IF T4=CLP4 THEN NUEVAINF
GOTO ERRORCOD
NUEVAINF:
serout portb.5,N2400,["B"]
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$82,"CONECCION-PC"
SERIN portb.4,N2400,NUE
IF NUE="L" THEN GOTO TERMINADO
TERMINADO:
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$82,"NUEVOS DATOS"
for x=0 to 10
high bip
pause 80
low bip
pause 80
next
pause 2000
xxiii
goto EMPEZAR
ERRORZONA:
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$80,"ZONA ABIERTA"
for x=0 to 30
high bip
PAUSE 100
low bip
PAUSE 100
next
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$82,"CONTROL-SMS"
goto INICIO
CONTINUE4:
if ZONA1=1 THEN GOTO SIGZONA
GOTO ERRORZONA
SIGZONA:
if ZONA2=1 THEN GOTO SIGZONA1
GOTO ERRORZONA
SIGZONA1:
if ZONA3=1 THEN GOTO SIGZONA2
GOTO ERRORZONA
SIGZONA2:
high bip ;10 SEGUNDOS DE TIEMPO DE SALIDA
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$80,"TIEMPO DE SALIDA"
PAUSE 10000
LOW bip
if ZONA1=1 THEN GOTO CONTINUA
xxiv
GOTO ERRORZONA
CONTINUA:
if ZONA2=1 THEN GOTO CONTINUA1
GOTO ERRORZONA
CONTINUA1:
if ZONA3=1 THEN GOTO CONTINUA2
GOTO ERRORZONA
CONTINUA2:
T1="0"
T2="0"
T3="0"
T4="0"
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$80,"SISTEMA ARMADO"
GOTO ARMADO
ARMADO:
W="H"
IF ZONA2=0 THEN GOTO ALARMA
IF ZONA3=0 THEN GOTO ALARMA
IF ZONA1=0 THEN GOTO TIEMPO
GOTO MENSAJES
ALARMA:
W="G"
FOR X= 0 TO 5
HIGH bip
high RELE1
high RELE2
high RELE3
PAUSE 800
LOW bip
LOW RELE1
xxv
LOW RELE2
LOW RELE3
PAUSE 800
NEXT
PAUSE 1000
HIGH ledverde
serout2 PORTB.0,84,["AT",13]
PAUSE 1000
serout2
PORTB.0,84,["AT+CPMS=",34,"SM",34,44,34,"SM",34,44,34,"SM",34,1
3]
pause 2000
serout2
PORTB.0,84,["AT+CPMS=",34,"ME",34,44,34,"ME",34,44,34,"ME",34,1
3]
PAUSE 2000
serout2 PORTB.0,84,["AT+CMGF=1",13];MODO TEXTO
PAUSE 500
serout2
PORTB.0,84,["AT+CMGS=",34,NUM0,NUMA1,NUMB1,NUMC1,NUMD
1,NUME1,NUMF1,NUMG1,NUMH1,34,13]
PAUSE 300
SEROUT2 PORTB.0,84,["INGRESO NO AUTORIZADO",26]; ENVIAR
PAUSE 300
serout2
PORTB.0,84,["AT+CMGS=",34,NUM0,NUMA1,NUMB1,NUMC1,NUMD
1,NUME1,NUMF1,NUMG1,NUMH1,34,13]
PAUSE 300
SEROUT2 PORTB.0,84,["INGRESO NO AUTORIZADO",26]; ENVIAR
PAUSE 5000
serout2 PORTB.0,84,["AT",13]
PAUSE 1000
xxvi
serout2
PORTB.0,84,["AT+CPMS=",34,"SM",34,44,34,"SM",34,44,34,"SM",34,1
3]
pause 2000
serout2
PORTB.0,84,["AT+CPMS=",34,"ME",34,44,34,"ME",34,44,34,"ME",34,1
3]
PAUSE 2000
serout2 PORTB.0,84,["AT+CMGF=1",13];MODO TEXTO
PAUSE 500
serout2
PORTB.0,84,["AT+CMGS=",34,NUM0,NUMA2,NUMB2,NUMC2,NUMD
2,NUME2,NUMF2,NUMG2,NUMH2,34,13]
PAUSE 300
SEROUT2 PORTB.0,84,["INGRESO NO AUTORIZADO",26]; ENVIAR
PAUSE 300
serout2
PORTB.0,84,["AT+CMGS=",34,NUM0,NUMA2,NUMB2,NUMC2,NUMD
2,NUME2,NUMF2,NUMG2,NUMH2,34,13]
PAUSE 300
SEROUT2 PORTB.0,84,["INGRESO NO AUTORIZADO",26]; ENVIAR
PAUSE 300
low ledverde
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$82,"CONTROL-SMS"
GOTO INICIO
TIEMPO:
Y=1
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$80,"INGRESE SU CLAVE"
xxvii
for x=0 to 10
high bip
pause 50
low bip
pause 50
next
SIGNUM1:
IF Y=1 THEN T1=T:Y=Y+1 :RETURN
IF Y=2 THEN T2=T:Y=Y+1 :RETURN
IF Y=3 THEN T3=T:Y=Y+1 :RETURN
IF Y=4 THEN T4=T:Y=Y+1 :RETURN
IF Y=5 THEN goto ALARMA
DESARMAR:
IF T1=CLA1 THEN DES1
GOTO ALARMA
DES1:
IF T2=CLA2 THEN DES2
GOTO ALARMA
DES2:
IF T3=CLA3 THEN DES3
GOTO ALARMA
DES3:
IF T4=CLA4 THEN DES4
GOTO ALARMA
DES4:
W="G"
FOR X=0 TO 2
HIGH bip
pause 50
low bip
pause 50
NEXT
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$82,"CONTROL-SMS"
xxix
goto INICIO
MENSAJES:
PAUSE 2000
serout portb.5,N2400,["A"]
PAUSE 100
serout2 PORTB.0,84,["AT+CNMI",13]
serIN2 PORTB.1,84,[A1]
serIN2 PORTB.1,84,[A2]
serIN2 PORTB.1,84,[A3]
serIN2 PORTB.1,84,[A4]
serIN2 PORTB.1,84,[A5]
serIN2 PORTB.1,84,[A6]
serIN2 PORTB.1,84,[A7]
serIN2 PORTB.1,84,[A8]
serIN2 PORTB.1,84,[A9]
serIN2 PORTB.1,84,[A0]
serIN2 PORTB.1,84,[B1]
serIN2 PORTB.1,84,[B2]
serIN2 PORTB.1,84,[B3]
serIN2 PORTB.1,84,[B4]
serIN2 PORTB.1,84,[B5]
serIN2 PORTB.1,84,[B6]
serIN2 PORTB.1,84,[B7]
serIN2 PORTB.1,84,[B8]
serIN2 PORTB.1,84,[B9]
serIN2 PORTB.1,84,[B0]
serIN2 PORTB.1,84,[C1]
serIN2 PORTB.1,84,[C2]
serIN2 PORTB.1,84,[C3]
serIN2 PORTB.1,84,[C4]
serIN2 PORTB.1,84,[C5] ;NUM1
serIN2 PORTB.1,84,[C6] ;NUM2
serIN2 PORTB.1,84,[C7] ;NUM3
serIN2 PORTB.1,84,[C8] ;NUM4
xxx
serIN2 PORTB.1,84,[G3]
serIN2 PORTB.1,84,[G4]
serIN2 PORTB.1,84,[G5]
serIN2 PORTB.1,84,[G6]
serIN2 PORTB.1,84,[G7]
serIN2 PORTB.1,84,[G8]
serIN2 PORTB.1,84,[G9]
serIN2 PORTB.1,84,[G0]
serIN2 PORTB.1,84,[H1]
serIN2 PORTB.1,84,[H2]
serIN2 PORTB.1,84,[H3]
serIN2 PORTB.1,84,[H4]
serIN2 PORTB.1,84,[H5]
serIN2 PORTB.1,84,[H6]
serIN2 PORTB.1,84,[H7]
serIN2 PORTB.1,84,[H8]
serIN2 PORTB.1,84,[H9]
serIN2 PORTB.1,84,[H0]
serIN2 PORTB.1,84,[I1]
serIN2 PORTB.1,84,[I2]
serIN2 PORTB.1,84,[I3]
serIN2 PORTB.1,84,[I4]
serIN2 PORTB.1,84,[I5]
serIN2 PORTB.1,84,[I6]
serIN2 PORTB.1,84,[I7]
serIN2 PORTB.1,84,[I8]
serIN2 PORTB.1,84,[I9]
serIN2 PORTB.1,84,[I0]
serIN2 PORTB.1,84,[J1]
serIN2 PORTB.1,84,[J2]
serIN2 PORTB.1,84,[J3]
serIN2 PORTB.1,84,[J4]
serIN2 PORTB.1,84,[J5]
serIN2 PORTB.1,84,[J6]
xxxii
serIN2 PORTB.1,84,[J7]
serIN2 PORTB.1,84,[J8]
serIN2 PORTB.1,84,[J9]
serIN2 PORTB.1,84,[J0]
serIN2 PORTB.1,84,[K1]
serIN2 PORTB.1,84,[K2]
serIN2 PORTB.1,84,[K3] ;COD1
serIN2 PORTB.1,84,[K4] ;COD2
serIN2 PORTB.1,84,[K5] ;COD3
serIN2 PORTB.1,84,[K6]
serIN2 PORTB.1,84,[K7]
serIN2 PORTB.1,84,[K8]
serIN2 PORTB.1,84,[K9]
pause 100
PASO5:
IF C0=NUMF1 THEN PASO6
IF C0=NUMF2 THEN PASO6
GOTO INICIO
PASO6:
IF D1=NUMG1 THEN PASO7
IF D1=NUMG2 THEN PASO7
GOTO INICIO
PASO7:
IF D2=NUMH1 THEN PASO8
IF D2=NUMH2 THEN PASO8
GOTO INICIO
PASO8:
IF K3="R" THEN RELES
GOTO INICIO
RELES:
IF K4="A" THEN ACTIVAR
IF K4="D" THEN DESACTIVAR
GOTO INICIO
ACTIVAR:
IF K5="1" THEN high RELE1:GOTO INICIO
IF K5="2" THEN high RELE2:GOTO INICIO
IF K5="3" THEN high RELE3:GOTO INICIO
GOTO INICIO
DESACTIVAR:
IF K5="1" THEN LOW RELE1:GOTO INICIO
IF K5="2" THEN LOW RELE2:GOTO INICIO
IF K5="3" THEN LOW RELE3:GOTO INICIO
GOTO INICIO
END
xxxiv
define OSC 20
INCLUDE "modedefs.bas"
cmcon=7
EEPROM 0,["8","0","2","2","0","4","9","8"]
EEPROM 9,["8","9","0","4","3","9","6","2"]
EEPROM 18,["1","2","3","4"]
READ 0,NUMA1
READ 1,NUMB1
READ 2,NUMC1
READ 3,NUMD1
READ 4,NUME1
READ 5,NUMF1
READ 6,NUMG1
READ 7,NUMH1
READ 9,NUMA2
READ 10,NUMB2
READ 11,NUMC2
READ 12,NUMD2
READ 13,NUME2
READ 14,NUMF2
READ 15,NUMG2
READ 16,NUMH2
FOR X=0 TO 10
HIGH ledamarillo
pause 20
low ledamarillo
xxxvi
pause 20
next
PAUSE 1000
INICIO:
serin portb.0,N2400,SMS
IF SMS="C" THEN GOTO COMUNICACION
IF SMS="A" THEN GOTO ATENTO
IF SMS="B" THEN GOTO NUEVOINF
ATENTO:
HIGH ledamarillo
HIGH RELE
PAUSE 1500
LOW ledamarillo
low RELE
GOTO INICIO
COMUNICACION:
HIGH ledamarillo
READ 51,G
IGUAL:
SEROUT portb.1,N2400,[NUMA1]
PAUSE 100
SEROUT portb.1,N2400,[NUMB1]
PAUSE 100
SEROUT portb.1,N2400,[NUMC1]
PAUSE 100
xxxvii
SEROUT portb.1,N2400,[NUMD1]
PAUSE 100
SEROUT portb.1,N2400,[NUME1]
PAUSE 100
SEROUT portb.1,N2400,[NUMF1]
PAUSE 100
SEROUT portb.1,N2400,[NUMG1]
PAUSE 100
SEROUT portb.1,N2400,[NUMH1]
PAUSE 100
SEROUT portb.1,N2400,[NUMA2]
PAUSE 100
SEROUT portb.1,N2400,[NUMB2]
PAUSE 100
SEROUT portb.1,N2400,[NUMC2]
PAUSE 100
SEROUT portb.1,N2400,[NUMD2]
PAUSE 100
SEROUT portb.1,N2400,[NUME2]
PAUSE 100
SEROUT portb.1,N2400,[NUMF2]
PAUSE 100
SEROUT portb.1,N2400,[NUMG2]
PAUSE 100
SEROUT portb.1,N2400,[NUMH2]
PAUSE 100
SEROUT portb.1,N2400,[CLA1]
PAUSE 100
SEROUT portb.1,N2400,[CLA2]
PAUSE 100
SEROUT portb.1,N2400,[CLA3]
PAUSE 100
SEROUT portb.1,N2400,[CLA4]
PAUSE 100
xxxviii
low ledamarillo
GOTO INICIO
ACTUALIZADO:
READ 28,NUMA1
READ 29,NUMB1
READ 30,NUMC1
READ 31,NUMD1
READ 32,NUME1
READ 33,NUMF1
READ 34,NUMG1
READ 35,NUMH1
READ 37,NUMA2
READ 38,NUMB2
READ 39,NUMC2
READ 40,NUMD2
READ 41,NUME2
READ 42,NUMF2
READ 43,NUMG2
READ 44,NUMH2
READ 46,CLA1
READ 47,CLA2
READ 48,CLA3
READ 49,CLA4
SEROUT portb.1,N2400,[NUMA1]
PAUSE 500
SEROUT portb.1,N2400,[NUMB1]
PAUSE 500
SEROUT portb.1,N2400,[NUMC1]
PAUSE 500
SEROUT portb.1,N2400,[NUMD1]
xxxix
PAUSE 500
SEROUT portb.1,N2400,[NUME1]
PAUSE 500
SEROUT portb.1,N2400,[NUMF1]
PAUSE 500
SEROUT portb.1,N2400,[NUMG1]
PAUSE 500
SEROUT portb.1,N2400,[NUMH1]
PAUSE 500
SEROUT portb.1,N2400,[NUMA2]
PAUSE 500
SEROUT portb.1,N2400,[NUMB2]
PAUSE 500
SEROUT portb.1,N2400,[NUMC2]
PAUSE 500
SEROUT portb.1,N2400,[NUMD2]
PAUSE 500
SEROUT portb.1,N2400,[NUME2]
PAUSE 500
SEROUT portb.1,N2400,[NUMF2]
PAUSE 500
SEROUT portb.1,N2400,[NUMG2]
PAUSE 500
SEROUT portb.1,N2400,[NUMH2]
PAUSE 500
SEROUT portb.1,N2400,[CLA1]
PAUSE 500
SEROUT portb.1,N2400,[CLA2]
PAUSE 500
SEROUT portb.1,N2400,[CLA3]
PAUSE 500
SEROUT portb.1,N2400,[CLA4]
PAUSE 500
low ledamarillo
xl
goto INICIO
NUEVOINF:
serin portb.2,N9600,SMS1
IF SMS1="O" THEN GOTO CELL1
IF SMS1="P" THEN GOTO CELL2
IF SMS1="R" THEN GOTO ALARMA
IF SMS1="Z" THEN GOTO FIN
goto NUEVOINF
CELL1:
HIGH ledamarillo
serin portb.2,N9600,NUMA1
IF NUMA1="T" THEN GOTO CELL1
serin portb.2,N9600,NUMB1
IF NUMB1="T" THEN GOTO CELL1
serin portb.2,N9600,NUMC1
IF NUMC1="T" THEN GOTO CELL1
serin portb.2,N9600,NUMD1
IF NUMD1="T" THEN GOTO CELL1
serin portb.2,N9600,NUME1
IF NUME1="T" THEN GOTO CELL1
serin portb.2,N9600,NUMF1
IF NUMF1="T" THEN GOTO CELL1
serin portb.2,N9600,NUMG1
IF NUMG1="T" THEN GOTO CELL1
serin portb.2,N9600,NUMH1
IF NUMH1="T" THEN GOTO CELL1
serin portb.2,N9600,SMS2
IF SMS2="V" THEN GOTO FINCELL1
IF SMS2="T" THEN GOTO CELL1
FINCELL1:
WRITE 28,NUMA1
xli
WRITE 29,NUMB1
WRITE 30,NUMC1
WRITE 31,NUMD1
WRITE 32,NUME1
WRITE 33,NUMF1
WRITE 34,NUMG1
WRITE 35,NUMH1
serOUT portb.3,N9600,["9"]
LOW ledamarillo
GOTO NUEVOINF
CELL2:
high ledamarillo
serin portb.2,N9600,NUMA2
IF NUMA2="T" THEN GOTO CELL2
serin portb.2,N9600,NUMB2
IF NUMB2="T" THEN GOTO CELL2
serin portb.2,N9600,NUMC2
IF NUMC2="T" THEN GOTO CELL2
serin portb.2,N9600,NUMD2
IF NUMD2="T" THEN GOTO CELL2
serin portb.2,N9600,NUME2
IF NUME2="T" THEN GOTO CELL2
serin portb.2,N9600,NUMF2
IF NUMF2="T" THEN GOTO CELL2
serin portb.2,N9600,NUMG2
IF NUMG2="T" THEN GOTO CELL2
serin portb.2,N9600,NUMH2
IF NUMH2="T" THEN GOTO CELL2
serin portb.2,N9600,SMS2
IF SMS2="T" THEN GOTO CELL2
IF SMS2="V" THEN GOTO FINCELL2
FINCELL2:
xlii
WRITE 37,NUMA2
WRITE 38,NUMB2
WRITE 39,NUMC2
WRITE 40,NUMD2
WRITE 41,NUME2
WRITE 42,NUMF2
WRITE 43,NUMG2
WRITE 44,NUMH2
serOUT portb.3,N9600,["9"]
low ledamarillo
GOTO NUEVOINF
ALARMA:
high ledamarillo
serin portb.2,N9600,CLA1
IF CLA1="T" THEN GOTO ALARMA
serin portb.2,N9600,CLA2
IF CLA2="T" THEN GOTO ALARMA
serin portb.2,N9600,CLA3
IF CLA3="T" THEN GOTO ALARMA
serin portb.2,N9600,CLA4
IF CLA4="T" THEN GOTO ALARMA
serin portb.2,N9600,SMS2
IF SMS2="V" THEN GOTO FINALARMA
IF SMS2="T" THEN GOTO ALARMA
FINALARMA:
WRITE 46,CLA1
WRITE 47,CLA2
WRITE 48,CLA3
WRITE 49,CLA4
serOUT portb.3,N9600,["9"]
low ledamarillo
GOTO NUEVOINF
xliii
FIN:
serOUT portb.3,N9600,["S"]
SEROUT portb.1,N2400,["L"]
WRITE 51,"I"
GOTO INICIO
END
xliv
ANEXO C
DATASHEET DEL
OPTOACOPLADOR
4N25
xlv
ANEXO D
DIAGRAMAS DE LAS
PLACAS QUE
COMPONEN EL
SISTEMA
xlvii
DIAGRAMA DE LA FUENTE
xlix
ANEXO E
MANUAL DE USUARIO.
l
MANUAL DE USUARIO.
El siguiente documento explica los pasos que el usuario debe seguir para
manejar el equipo tanto el hardware como el software.
El primer paso es enchufar el equipo a una toma de 110 VAC, luego presionar
el botón de encendido que es de color negro y se encuentra al costado derecho
de la caja, al encender el equipo este emite varios pitidos durante 2 segundos,
luego de esto, los leds verde y amarillo se encenderán al mismo tiempo, esto
indica que entre los dos pics se esta intercambiando información.
Se debe conectar el jack que tiene la placa madre al puerto de audio del
celular, tal como se indica en la siguiente figura.
Ahora la Pantalla LCD muestra los números de celular que pueden recibir el
mensaje de alarma, y también con un SMS pueden encender las luces de la
casa. Esto se aprecia en la siguiente figura.
Después el LCD indica la clave con la que se pone al sistema en modo alerta,
esto se muestra en la siguiente imagen. El modo alerta se refiere a que el
sistema esta monitoreando la apertura de la puerta o ventanas; y si esto
ocurre comienza el proceso de alarma.
Si todas las zonas están cerradas pero el usuario ingreso mal la clave
entonces el LCD muestra el mensaje “CLAVE ERRONEA”:
Durante 10 segundos el usuario debe cerrar todos los accesos y pasado este
tiempo el sistema se pone en modo alerta, el usuario observara en el LCD el
siguiente mensaje:
El SMS de alerta que llega a los usuarios tiene el siguiente texto “ INGRESO
NO AUTORIZADO”.
Para desactivar el sistema, el usuario debe conocer como están distribuidas las
zonas, esto se aprecia en la siguiente tabla:
lv
NOTA: Cuando el sistema esta en modo alerta el usuario puede controlar las
luces con los SMS normalmente.
Como este sistema utiliza uno de los puertos serie del computador para la
comunicación, es necesario conocer los puertos COM disponibles en el PC.
El botón finalizar se utiliza para desconectar el equipo del computador, una vez
terminada la programación. Al dar un clic sobre este botón, aparece una
ventana con el mensaje “AHORA PUEDE DESCONECTAR EL EQUIPO”;
seguido a esto, el equipo se reinicia, y en el proceso de arranque el LCD
mostrara los nuevos datos que fueron almacenados.
lxi
BIBLIOGRAFÍA
WEB GRAFÍA.
1 www.Microchip.com
2 www.mecanique.co.uk
3 http://picbasic.com/
4 http://es.wikipedia.org/w/index.php?title=Reed_switch
5 www.mobilesms.com
6 www.frino.com
7 www.datasheet.com
lxii
8 www.carlosvolt.com.ar
9 www.edudevices.com.ar
10 www.microcontroladores.com
11 http://www.todobaterias.com/optima_az.html
12 http://www.motorola.com
13 http://www.gsmserver.com
14 www.X-ROBOTICS.com
15 www.labcenter.com
16 www.ico-Ecuador.com
17 www.wmlclub.com/articulos/fundamentosgsm.html
18 www.amena.com/presentacion/particulares/telefonos/gprs/
19 www.zonabot.com
20 www.wikipedia.com/codigosascii.html