Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Diseño de Un Sistema de Seguridad y Alarma Con
Diseño de Un Sistema de Seguridad y Alarma Con
FACULTAD DE TECNOLOGÍA
CARRERA MECÁNICA AUTOMOTRIZ
PROYECTO DE GRADO
NIVEL LICENCIATURA
LA PAZ – BOLIVIA
2018
DEDICATORIA
Pág.
CAPÍTULO 1. INTRODUCCIÓN
El motivo de este diseño es para la sociedad que cuente con una movilidad, además
para estudiantes y técnicos del área automotriz, que les sirva como guía para tener
un mayor conocimiento en sistemas de seguridad antirrobo y para que se
introduzcan en la rama de automatización de equipos.
1
1.1. ANTECEDENTES
El diseño de este tipo de sistemas como, por ejemplo, circuitos integrados en llaves,
encendido y control por comandos de voz, además de sistemas inmovilizadores por
huellas digitales; han sido implementados en vehículos de gama media por motivos
de seguridad.
El detector de huellas no solo es un sistema innovador sino que también brinda más
seguridad y es confiable; al utilizar las técnicas de la biometría se aprovechan las
características únicas y fijas del cuerpo humano. La misión del sistema de encendido
es permitir desviar o interrumpir el curso de una corriente eléctrica a través del
SWITCH, a los sistemas de arranque y de carga y así producir el encendido del
vehículo. (Estefania, 2014).
2
Según Cando (2011) en el proyecto de grado “bloqueo electrónico en el encendido
de un vehículo, para proporcionar un sistema de seguridad contra robos” explica que
la seguridad en el parque automotor es indispensable y para ello se han utilizado
sistemas biométricos de huellas dactilares, además es de gran importancia contar
con un sistema de bloqueo electrónico que permitirá tener un mejor control.
3
celular con sistema operativo ANDROID para motocicletas utilizando módulos y
SHIELDS para ARDUINO ya que estos cuentan con excelentes micro controladores.
4
1.3. OBJETIVOS
5
1.4. JUSTIFICACIÓN
Con el sensor de movimiento PIR se brindara un segundo factor ya que activara una
alarma, también el sim900 de mensajería aporta un mayor control ya que enviara un
mensaje y realizara una llamada a un celular cuando la alarma se active.
6
1.4.3. Justificación social
Este proyecto es de gran ayuda para la sociedad y representa una mayor seguridad
al costo más bajo además va dirigido para toda la sociedad que cuente con vehículos
y necesiten un sistema de seguridad eficaz y eficiente.
7
CAPÍTULO 2.
MARCO TEÓRICO
8
En la figura 2.1 se muestra la configuración del sistema de encendido convencional
con todos sus componentes, desde la bobina hasta las bujías y distribuidor.
Fuente: http://www.taringa.net/posts/autos-motos/19300193/Sistema-de-encendido-
automotriz.html
En los primeros tiempos del automóvil se utilizo el encendido por magneto. Más tarde
se desarrollo el encendido por batería al ser necesario esta para otros servicios y
con la intención de facilitar el arranque de los motores. La magneto da sus mejores
prestaciones con las altas velocidades, pero puede plantear problemas al arrancar.
La razón estriba en que ella misma se genera, como un pequeño alternador, la
propia corriente del circuito primario y si esta es insuficiente la chispa será también
muy pobre. El encendido por batería y delco, al tener una corriente primaria notable a
bajas velocidades, soluciono el problema y tubo difusión total hasta nuestros días,
pero hoy también se ve amenazado por los elevados regímenes de marcha, donde la
magneto respondería mejor, viendo su campo invadido por la electrónica. (Arias,
2004).
9
Los sistemas de encendido se pueden encuadrar dentro de seis grupos:
Encendido convencional, Encendido transistorizado., Encendido electrónico,
Encendido electrónico integral, Encendido electrónico programado, Encendido
electrónico estático.
Fuente: http://mecanica-cars.blogspot.com/2012/10/sistema-de-encendido-encendido.html
10
2.1.2. ELEMENTOS DEL SISTEMA DE ENCENDIDO
2.1.2.1. BATERÍA
Fuente: http://www.autodaewoospark.com/funciones-bateria-automovil.php
11
En el automóvil, la batería tiene la misión de recoger y almacenar la energía eléctrica
que produce el generador, para suministrarla a los diferentes órganos que la
necesiten en un momento determinado. En los automóviles se utilizan
fundamentalmente los acumuladores de plomo, capaces de transformar la energía
eléctrica en química mediante una reacción, para dejarla almacenada mientras no
sea necesaria su utilización, pudiendo igualmente deshacer la reacción para obtener
nuevamente energía eléctrica. (Alonso.J.M, 1998).
El tipo de acumulador más usado, dado su bajo costo, es la batería de plomo y ácido
sulfúrico con electrolito líquido. En ella, los dos electrodos están hechos de plomo y
el electrolito es una solución de agua destilada y ácido sulfúrico. Cuando la batería
está cargada, el electrodo positivo tiene un depósito de dióxido de plomo y el
negativo es plomo. Al descargarse, la reacción química que toma lugar hace que,
tanto la placa positiva como la negativa, tengan un depósito de sulfato de plomo.
(Bateria de Plomo Acido, 2013).
12
terminales, las conexiones de las celdas y de las placas son hechas de plomo. Las
aberturas de las conexiones de las celdas en las divisorias son selladas. Un proceso
de union en alta temperatura es usado para sellar la tapa permanentemente a la caja
de la batería, lo que resulta en el sellado superior de la batería. En las baterías
convencionales, cada celda posee su propia bombona de llenado.
Ella es usada para el llenado inicial de la batería y la salida de gas oxi‑hidrógeno
durante el proceso de recarga. Muchas veces, las baterías sin mantenimiento
parecen estar totalmente selladas, pero ellas también poseen agujeros de ventilación
y, a veces, tapas roscadas, pero no se puede acceder a estas. (Manual de Baterias
Bosch, 2014).
La figura 2.4 muestra los componentes o partes esenciales de una batería de acido
plomo.
Figura 2.4: Partes del acumulador de plomo.
Fuente: https://es.slideshare.net/evemar/las-bateras-automotrices
13
entre sí, y comienza a circular electricidad por el circuito a este proceso se denomina
descarga. (TOYOTA).
2.1.2.4. DESCARGA
= +
Ánodo: Pb (s) + HSO4 (aq) + H (aq) ⇒ PbSO4 (s) + H2 (g)
= +
Cátodo: PbO2(s) + HSO4 (aq) + H (aq) ⇒ PbSO4 (s) + H2O (l) + ½ O2
Para compensar esta pérdida de capacidad por auto descarga, la batería puede ser
puesta en carga de mantenimiento cuando no se usa.
14
2.1.2.6. CARGA
- +
Cátodo: 2 H2O (l) ⇒ O2 (g) + 4 e + 4H (aq)
+ -
Ánodo: 2 H (aq) + 2 e ⇒ H2 (g)
15
de alta tensión en la bujía de encendido. La bobina secundaria está envuelta
alrededor del núcleo, su constitución es hecha de placas de hierro delgado en capas
unidas. Sobre esto, la bobina primaria está enrollada. La corriente es enviada
intermitentemente a la bobina primaria de acuerdo con la abertura y cierre de los
puntos en el distribuidor, y la bobina secundaria enrollada alrededor del núcleo
genera el alto voltaje entregado por la bobina. (Crouse, 1993).
La bobina está compuesta por un núcleo de hierro en forma de barra, constituido por
laminas de chapa magnética, sobre el cual esta enrollado el bobinado secundario,
16
formado por gran cantidad de espiras de hilo fino de cobre (entre 15.000 y 30.000)
debidamente aisladas entre sí y el núcleo. Encima de este arrollamiento va enrolado
el bobinado primario, formado por algunos centenares de espiras de hilo grueso,
aisladas entre sí y del secundario. La relación entre el número de espiras de ambos
arrollamiento (primario y secundario) está comprendida entre 60 y 150.
En la siguiente figura 2.5 se puede observar una bobina de encendido con sus
componentes que lo conforman tales como: bobina primaria, bobina secundaria, etc.
Fuente: http://tallerautoelectrico.com/sistema-de-encendido-convencion
El conjunto formado por ambos bobinados y el núcleo, se rodea por chapa magnética
y masa de relleno, de manera que se mantengan perfectamente sujetas en el interior
del recipiente metálico o carcasa de la bobina. Generalmente están sumergidos en
un baño de aceite de alta rigidez dieléctrica, que sirve de aislante y refrigerante.
Aunque en lo esencial todas las bobinas son iguales, existen algunas cuyas
características son especiales. Una de estas es la que dispone de dos bobinados
17
primarios. Uno de los bobinados se utiliza únicamente durante el arranque (bobinado
primario auxiliar), una vez puesto en marcha el motor este bobinado se desconecta.
Este sistema se utiliza para compensar la caída de tensión que se produce durante la
puesta en marcha del motor cuando se está accionando el motor de arranque, que
como se sabe, este dispositivo consume mucha corriente. El arrollamiento primario
auxiliar se utiliza únicamente en el momento del arranque, mediante el interruptor (I)
(llave de contacto C) que lo pone en circuito, con esto se aumente el campo
magnético creado y por lo tanto la tensión en el bobinado secundario de la bobina
aumenta. Una vez puesto en marcha el motor en el momento que se deja de
accionar la llave de arranque, el interruptor (I) se abre y desconecta el bobinado
primario auxiliar, quedando en funcionamiento exclusivamente el bobinado primario
Para paliar los efectos de caída de tensión en el momento del arranque del motor,
algunas bobinas disponen de una resistencia (R) a la entrada del arrollamiento
primario de la bobina conectada en serie con él, que es puesta fuera de servicio en el
momento del arranque y puesta en servicio cuando el motor ya está funcionando.
(Dani, 2005).
Es importante que los alambres aislados primarios de ignición estén conectados a las
terminales correctas de la bobina. Si los alambres son intercambiados, el motor
arrancara y se pondrá en operación, pero existirá una condición de de inversión de
polaridad. Con una polaridad invertida se requerirá de un 20 a 40 por ciento más de
voltaje para encender las bujías, esto puede reducir la capacidad de la bobina para
proporcionar suficiente voltaje durante la operación del motor a alta velocidad.
(Hughes, 1990).
18
tiempo que el circuito de control inicia la circulación de la corriente primaria a la
bobina de encendido en base a la velocidad del motor y distribución de encendido de
la revolución anterior es decir en el momento en el que se activa el transistor
(incorporado en el encendedor).
Cuando llega la distribución del encendido la ECU desactiva el transistor (que está
incorporado en la ECU) y emite una señal IGT, de este modo se desactiva el
transistor (que está incorporado en el encendedor) interrumpiendo la circulación de
corriente primaria y generando una alta tensión en la bobina secundaria el
encendedor emite una señal de confirmación de encendido IGF a la ECU.la ECU
detiene la inyección de combustible como función de seguridad cuando la señal IGF
no entra a la ECU. (TOYOTA MOTOR CORPORATION, 2013).
Hace algunos años, los motores de los automóviles eran puestos en marcha por
medio de una manivela que manejaba el conductor. Actualmente se dispone de un
motor eléctrico que es puesto en marcha desde el interior del vehículo por medio de
un pulsador o llave de contacto. Este motor eléctrico realiza el trabajo de mover el
motor del vehículo, hasta que éste se pone en marcha por sus propios medios,
sustituyendo así al antiguo sistema de manivela.
La misión del circuito de arranque es, pues, hacer que el motor del automóvil dé los
primeros giros hasta conseguir que funcione por sí mismo. Para conseguirlo dispone
este circuito de los siguientes elementos: batería de acumuladores, motor de
arranque y mecanismo de accionamiento o interruptor. (Alonso.J.M, 1998).
19
Figura 2.6: Circuito de arranque.
20
Figura 2.7: Componentes del sistema de arranque.
Relé de arranque: tiene dos funciones, como un relé normal, es decir para
conectar y desconectar un circuito eléctrico. También tiene la misión de
desplazar el piñón de arranque para que este engrane con la corona del
volante de inercia del motor térmico y así transmitir el movimiento del motor
de arranque al motor térmico. (Mecanica virtual, 2005).
21
Regularmente, el alambre está etiquetado o se hace referencia con un número de
calibre, seguido por las siglas "GTE", estas letras representan "American Wire
Gauge." El sistema de indexación del número de calibre se estableció inicialmente
para indicar el número de veces que un hilo de cobre sólido se pasa a través de una
matriz de estirado. Con cada paso, el diámetro del hilo disminuye. (Tipo de Calibre
del Cable Automotriz, 2016).
Recuerda que esto es importante cuando realices conexiones eléctricas ya que así
evitaras cables quemados por sobre flujo eléctrico. El numero de calibre de un cable
se refiere al diámetro del mismo, el diámetro es determinado por la AWG (American
Wire Gauge) Entre más alto sea el numero de calibre más delgado será el cable.
(Curso de Electricidad del Automovil, 2018).
En la siguiente tabla 2.1 se puede apreciar los calibres más comunes aunque cabe
mencionar que factores como la temperatura del cable y ambiente pueden afectar
estas capacidades.
22
En la siguiente tabla 2.2 se muestra el calibre de los cables automotrices con
respecto a los dispositivos electrónicos, para poder hacer conexiones seguras y
evitar errar en el tipo de cable.
Fuente: http://tallerautoelectrico.com/curso-de-electricidad-del-automovil/ley-de-ohm-en-los-
circuitos-electricos/
23
mismo. El sistema garantiza en alto grado la inviolabilidad del vehículo, utilizándose
para su funcionamiento únicamente componentes electrónicos, como son: la llave u
otros dispositivos para la puesta en marcha, la unidad de lectura, el módulo
inmovilizador y la unidad de control del motor (ECU). (aficionados a la mecanica,
2016).
Ciertos vehículos utilizan un control remoto que emite una señal para habilitar el
arranque del motor, además de abrir y cerrar las puertas, estos controles remotos no
deben confundirse con los que solo sirven para abrir y cerrar las puertas (cierres
centralizados). El control remoto puede estar incorporado en el mango de la misma
llave o puede ser un control separado, en este inmovilizador no existe antena, la
unidad lectora es un receptor del código infrarrojo a veces ubicado en el interior del
espejo retrovisor. El sistema se completa con la unidad electrónica del inmovilizador
que puede manejar o no el cierre centralizado a distancia de las puertas, el sistema
inmovilizador puede actuar sobre el bloque electrónico de la unidad de control o
solamente sobre el relay principal que inhibe al motor de arranque. (aficionados a la
mecanica, 2016).
24
Figura 2.8: Esquema de un inmovilizador con infrarrojo y la llave IR.
Fuente: http://www.aficionadosalamecanica.com/inmovilizador.htm
25
Figura 2.9: Sistema inmovilizador con desbloqueo por teclado numérico y ubicación.
Fuente: http://www.aficionadosalamecanica.com/inmovilizador.htm
26
Figura 2.10: Componentes del sistema inmovilizador con TRANSPONDER.
Fuente: http://www.aficionadosalamecanica.com/inmovilizador.htm
Una llave convencional equipada con un dispositivo que permite ser identificado
mediante señales de radio frecuencia (RFID). Operan en un rango de frecuencia de
125KHZ. El TRANSPONDER utilizado en las llaves es muy pequeño, es una pastilla
electrónica miniaturizada que contiene una memoria no volátil (no requiere de
energía constante para la retención de la información), a lo largo de la cual hay un
juego de bobinados (alambres muy finos enrollados alrededor de un tubo).
(aficionados a la mecanica, 2016).
27
Figura 2.11: Llave con TRANSPONDER.
Fuente: http://www.aficionadosalamecanica.com/inmovilizador.htm
28
2.4. COMPONENTES ELECTRÓNICOS DEL CIRCUITO
2.4.1. RELÉS
Un relé es un interruptor accionado por un electroimán. El cual está formado por una
barra de hierro dulce, llamada núcleo, rodeada por una bobina de hilo de cobre. Al
pasar una corriente eléctrica por la bobina el núcleo de hierro se magnetiza por
efecto del campo magnético producido por la bobina, convirtiéndose en un imán tanto
más potente cuanto mayor sea la intensidad de la corriente y el número de vueltas de
la bobina. Al abrir de nuevo el interruptor y dejar de pasar corriente por la bobina,
desaparece el campo magnético y el núcleo deja de ser un imán. (Rele, 2005).
En la figura 2.12 se muestra las partes que conforman a un relé, las cuales son
núcleo, armadura, bobina, terminales, etc.
29
Figura 2.12: partes del relé.
Fuente: https://www.inventable.eu/introduccion-a-los-reles/
ESPECIFICACIONES TÉCNICAS.
30
Para activar salida NO: 0 Voltios.
Entradas OPTOACOPLADAS.
Indicadores LED de activación.
La forma más sencilla de alimentar este módulo es desde VCC y GND de la placa
ARDUINO, manteniendo el Jumper en su lugar, con lo que JD-VCC = VCC. Esta
conexión tiene dos limitaciones importantes:
Fuente: autor.
31
En la figura 2.14 se puede observar la conexión del relay de cuatro entradas con la
placa ARDUINO uno mediante los pines GND y VCC.
Fuente: http://www.profetolocka.com.ar/2015/05/09/modulo-de-4-reles-para-arduino/
La identificación del modelo es muy sencilla, las dos primeras cifras corresponden a
la familia:
32
78xx para reguladores de tensión positiva.
79xx para reguladores de tensión negativa.
L = 0.1A.
M = 0.5 A.
S = 2 A.
T = 3 A.
SIN LETRA = 1 A. (Artefactos, S.A).
33
cristalina y el líquido transparente poseía propiedades ópticas y una estructura
molecular similar a la de un cristal sólido.
Inadvertidamente, entre ambos habían descubierto un nuevo estado de la materia:
las meso fases, que es un paso intermedio entre dos fases, en este caso entre la
cristalina y la líquida.
34
2.5.2. CARACTERISTICAS PRINCIPALES DE LOS MODULOS LCD
Fuente: Autor.
35
Los pines de conexión de estos módulos incluyen un bus de datos de 8 bits, un pin
de habilitación (E), un pin de selección que indica si lo que se está enviando por el
bus es un dato o una instrucción (RS) y un pin que indica si se va a leer o escribir en
el módulo (R/W). (Bolaños, 2001).
La tabla 2.3 describe en detalle los pines mencionados para la pantalla LCD sin el
modulo i2c, como se observa en esta tabla la pantalla LCD tiene muchos pines para
la comunicación con una placa de ARDUINO o ARDUINO MEGA, de las cuales la
mayoría es de vital importancia, si no se conecta una de ellas la pantalla LCD
presentara problemas de funcionamiento, por lo que la mayoría de los proyectos
usan el modulo i2c, para no tener que trabajar con tantos pines que ocupan bastante
espacio, este modulo ayuda a reducir los pines en un total de cuatro los cuales serán
explicados más adelante.
Fuente: http://www.bolanosdj.com.ar/SOBRELCD/TEORIALCDV1.pdf
36
2.5.3. MODULO I2C
El modulo i2c simplifica la conexión del LCD 16x2 mediante comunicación SCL Y
SDA puesto que por el método tradicional necesitaríamos un potenciómetro lineal de
10K además de ocupar un gran número de pines digitales con lo que el montaje del
circuito se complicaría en exceso.
Fuente: www.naylampmechatronics.com
37
2.6. TECLADO MATRICIAL
Un teclado matricial no es más que una colección de botones, a cada uno de los
cuales le asignamos un símbolo o una función determinada.
Para que nuestro ARDUINO pueda saber que tecla se pulsa, basta con poner tensión
en las filas de forma secuencial y luego leer las columnas para ver cuál de ellas tiene
HIGH. Los teclados matriciales usan una combinación de filas y columnas para
conocer el estado de los botones, cada tecla es un pulsador conectado a una fila y a
una columna cuando se pulsa una de las teclas se cierra una conexión única entre
una fila y una columna. (Prometec, 2017).
En el grafico de la figura 2.17 se puede apreciar la conexión del teclado matricial con
la placa de ARDUINO uno utilizando los pines del 9 al 6, para esto tenemos que
tomar en cuenta en la programación las filas y las columnas y no equivocarnos al
conectarlos, de lo contrario nos saldrá un error al momento de presionar las teclas.
38
Figura 2.17: Teclado matricial.
Fuente: https://electrocrea.com/blogs/tutoriales/18188479-teclado-matricial-4x4
Fuente: https://www.luisllamas.es/arduino-teclado-matricial/
39
En la siguiente imagen de la figura 2.19 se muestra la conexión de un teclado
matricial con el ARDUINO utilizando las primeras 4 líneas del teclado matricial que
corresponden a las filas se las conecta del pin 9 al pin 6 del ARDUINO
respectivamente, las 4 líneas restantes del teclado matricial que corresponden a las
columnas las cuales se conectan del pin 5 al pin 2 respectivamente. Los pines 0 y 1
del ARDUINO que corresponden al puerto serial, los dejamos libres para poder
visualizar en la terminal el carácter que corresponde a cada botón presionado.
(Chacon Diaz, 2015).
Fuente: https://hetpro-store.com/TUTORIALES/teclado-matricial-con-arduino/
La tarjeta GPRS está configurada y controlada por vía UART usando comandos AT.
Solo conecta la tarjeta al micro controlador, ARDUINO, etc., y comienza a
40
comunicarte a través de comandos AT. Ideal para sistemas remotos, comunicación
recursiva, puntos de control, mandar mensajes de texto a celulares. (Lara, 2015).
ESPECIFICACIONES TÉCNICAS.
En la imagen de la figura 2.20 se muestra la conexión del modulo GSM GPRS con la
placa de ARDUINO uno en la cual solo necesitamos los pines de transmisión TX y
recepción RX.
Fuente: https://hetpro-store.com/TUTORIALES/sim900-gsm-shieldarduino/
41
2.8. SENSOR PIR
El sensor PIR es un dispositivo piro eléctrico que mide cambios en los niveles de
radiación infrarroja emitida por los objetos a su alrededor a una distancia máxima de
6m. Como respuesta al movimiento el sensor cambia el nivel lógico de un “pin”, por lo
cual, su uso es extremadamente simple. Adicionalmente es un sensor de bajo costo
y reducido en tamaño muy utilizado en sistemas de alarmas, iluminación controlada
por movimiento y aplicaciones de robótica.
CARACTERÍSTICAS TÉCNICAS.
El sensor PIR cuanta únicamente con tres terminales. Dos de ellas se utilizan para la
alimentación y el resto es la salida de detección del movimiento. La conexión al micro
controlador requiere del uso de este solo terminal.
42
2.8.1. PRINCIPIOS DE FUNCIONAMIENTO
Todos los seres vivos e incluso los objetos, emiten radiación electromagnética
infrarroja, debido a la temperatura a la que se encuentran. A mayor temperatura, la
radiación aumenta. Esta característica ha dado lugar al diseño de sensores de
infrarrojo pasivos, en una longitud de onda alrededor de los 9.4 micrones, los cuales
permiten la detección de movimiento, típicamente de seres humanos ó animales.
Estos sensores son conocidos como PIR, y toman su nombre de „Pyroelectric
Infrared‟ ó „Passive Infrared‟.
Fuente: http://www.puntoflotante.net/MANUAL-DEL-USUARIO-SENSOR-DE-MOVIMIENTO-
PIR-HC-SR501.pdf
43
2.8.4. EL SENSOR PIR INFRARROJO
Fuente: http://www.puntoflotante.net/MANUAL-DEL-USUARIO-SENSOR-DE-MOVIMIENTO-
PIR-HC-SR501.pdf
44
2.8.5. RANGO DE DETECCIÓN DE LOS SENSORES PIR
Fuente: http://www.puntoflotante.net/MANUAL-DEL-USUARIO-SENSOR-DE-MOVIMIENTO-
PIR-HC-SR501.pdf
2.8.6. POTENCIÓMETROS
45
Figura 2.24: Ajuste de tiempo y distancia del PIR.
Fuente: http://www.puntoflotante.net/MANUAL-DEL-USUARIO-SENSOR-DE-MOVIMIENTO-
PIR-HC-SR501.pdf
ARDUINO es una herramienta para hacer que los ordenadores puedan sentir y
controlar el mundo físico a través de tu ordenador personal. Es una plataforma de
desarrollo de computación física (physical computing) de código abierto, basada en
una placa con un sencillo micro controlador y un entorno de desarrollo para crear
software (programas) para la placa.
Puedes usar ARDUINO para crear objetos interactivos, leyendo datos de una gran
variedad de interruptores y sensores y controlar multitud de tipos de luces, motores y
otros actuadores físicos. Los proyectos con ARDUINO pueden ser autónomos o
comunicarse con un programa (software) que se ejecute en tu
ordenador.(Comenzando con Arduino).
Hay muchos otros micro controladores disponibles para computación física. Todas
estas herramientas los desordenados detalles de la programación de micro
controlador y la encierran en un paquete fácil de usar. ARDUINO también simplifica
46
el proceso de trabajo con micro controladores pero ofrece algunas ventajas para
profesionales sobre otros sistemas, las placas de ARDUINO son relativamente
baratas comparadas con otras plataformas micro controladoras. El software
ARDUINO esta publicado como herramientas de código abierto disponible para
extensión por programadores experimentados. El lenguaje puede ser expandido
mediante librerías C++. (Enriquez Herrador, 2009).
La figura 2.25 nos muestra la placa de ARDUINO uno con todos sus componentes,
tanto para alimentación por PC y por fuente externa.
Fuente: http://www.robotistan.com/arduino-uno-r3-clone-with-usb-cable-usb-chip-ch340
Existen varios tipos de placas ARDUINO, cada una con características específicas
que hay que conocer para poder elegir el modelo que más nos convenga según el
caso. No obstante, existe un modelo “estándar” de placa, que es el más utilizado.
El micro controlador que lleva la placa ARDUINO UNO es el modelo ATmega328P
de la marca ATMEL. La “P” del final significa que este chip incorpora la tecnología
47
“Picopower” (propietaria de ATMEL), la cual permite un consumo eléctrico
sensiblemente menor comparándolo con el modelo equivalente sin “Picopower”, el
Atmega328 (sin la “P”). De todas formas, aunque el ATmega328P pueda trabajar a
un voltaje menor y consumir menos corriente que el Atmega328 (especialmente en
los modos de hibernación), ambos modelos son funcionalmente idénticos. En los
micro controladores que vienen incluidos en la placa ARDUINO no podemos usar
toda la capacidad de la memoria Flash porque existen 512 bytes (el llamado
“bootloader block”) ocupados ya por un código pre programado de fábrica (el llamado
“bootloader” o “gestor de arranque”), el cual nos permite usar la placa ARDUINO de
una forma sencilla y cómoda sin tener que conocer las interioridades electrónicas
más avanzadas del micro controlador. Los ATmega328P que podamos adquirir
individualmente normalmente no incluyen de fábrica este pequeño programa, por lo
que sí que ofrecen los 32 KB íntegros, pero a cambio no podremos esperar
conectarlos a una placa ARDUINO y que funcionen sin más ya que les faltará tener
grabada esa “pre configuración”. (Torrente Artero, 2013).
Memoria volátil donde se alojan los datos que en ese instante el programa (grabado
separadamente en la memoria Flash) necesita crear o manipular para su correcto
funcionamiento.
Estos datos suelen tener un contenido variable a lo largo del tiempo de ejecución del
programa y cada uno es de un tipo concreto (es decir, un dato puede contener un
valor numérico entero, otro un número decimal, otro un valor de tipo carácter…
también pueden ser cadenas de texto fijas u otros tipos de datos más especiales).
Independientemente del tipo de dato, su valor siempre será eliminado cuando se deje
de alimentar eléctricamente al micro controlador. En el caso del ATmega328P esta
memoria tiene una capacidad de 2KB.
48
Si necesitáramos ampliar la cantidad de memoria RAM disponible, siempre
podríamos adquirir memorias RAM independientes y conectarlas al micro controlador
utilizando algún protocolo de comunicación conocido por este.
Los Sistemas ARDUINO necesitan interactuar con el usuario ya sea por medios
visuales o sonidos. Un BUZZER es el elemento más usado como indicador de
sonido, puede usarse al presionar una tecla, reproducir melodías, alarmas. Agregar
un BUZZER dará a tu proyecto un nivel más profesional de diseño.
ESPECIFICACIONES TÉCNICAS.
Fuente: autor
2.11. BIOMETRÍA
Para que las características físicas y conductuales sean utilizadas como elementos
de identificación deben cumplir con los siguientes requisitos:
50
b). Singularidad: Dos personas cualesquiera son distinguibles una de la otra en base
de sus características.
c). Estabilidad: La característica tiene que ser lo suficientemente estable a lo largo
del tiempo y en condiciones ambientales diversas.
f). Rendimiento: El nivel de exactitud requerido debe ser elevado para que la
característica sea aceptable.
La huella dactilar es una característica física única que distingue a todos los seres
humanos y la ciencia que se encarga de su estudio se conoce como Dactiloscopia,
que viene de los vocablos griegos daktilos (dedos) y skopein (examen o estudio).
Todos los sistemas dactiloscópicos se basan en tres principios fundamentales:
Perennidad: Gracias al fisiólogo checo Juan Evangelista Purkinje se sabe que las
huellas dactilares se manifiestan a partir del sexto mes del desarrollo del embrión y
que están presentes a lo largo de toda la vida de los seres humanos y hasta la
descomposición del cadáver.
51
Inmutabilidad: Las huellas dactilares no se ven afectadas en sus
características por el desarrollo físico de los individuos ni por enfermedades
de ningún tipo y en caso de que llegase a presentarse un desgaste
involuntario (por ejemplo una herida o quemadura), el tejido epidérmico que la
conforma es capaz de regenerase tomando su forma original en un periodo de
15 días.
Diversidad Infinita: Las huellas dactilares son únicas e irrepetibles, cada ser
humano posee huellas dactilares con características individuales. Es un error
común pensar que los gemelos idénticos no cumplen con este principio, sin
embargo las huellas dactilares no se desarrollan debido a un proceso genético
sino a un proceso aleatorio por lo que no existe ningún tipo de correlación
entre gemelos idénticos o individuos de una misma familia.
b) Crestas: Las crestas son los bordes sobresalientes de la piel que están formados
por una sucesión de papilas, estos bordes siguen las sinuosidades de los surcos en
todas direcciones y forman una infinidad de figuras en las yemas de los dedos, son
más amplios en su base que en la cúspide, dan el aspecto de una montaña en
miniatura y reciben el nombre de crestas papilares.
52
interpapilares debido a que al entintar los dedos, la tinta no cubre completamente las
yemas, por ello al hacer la impresión de las huellas sobre cualquier superficie plana
quedan espacios en blanco.
d) Poros: Los poros son los pequeños orificios que se encuentran situados en la
cúspide de las crestas papilares o cerca de su vértice, tienen la función de segregar
el sudor. Estos poros tienen diferentes formas que pueden ser circulares, ovoidales,
triangulares, etc. Los dibujos o figuras formadas por las crestas papilares reciben el
nombre de dactilogramas. Se denominan dactilogramas papilares si provienen de los
dedos de la mano, plantares si provienen de la planta del pie y palmares cuando
provienen de la palma de la mano.
2.11.2. DACTILOGRAMAS
a) Dactilograma natural: es el que está en la yema del dedo, formado por las crestas
papilares de forma natural.
De igual forma un dactilograma se puede dividir en tres partes que se conocen como:
sistemas dactilares los cuales son el Sistema basilar, el Sistema marginal y el
Sistema nuclear.
53
grupos o clases distintas de configuraciones dérmicas según la denominada
Clasificación de Henry, pero antes debemos estudiar dos singularidades presentes
en algunas huellas denominadas Núcleo (Core) y Delta.
A continuación se detallan las seis clases propias de la clasificación de Henry:
a). Arco: Este dactilograma es uno de los tipos fundamentales, carece de puntos
delta y de núcleo. Se caracteriza porque en un comienzo las crestas son casi rectas
y paulatinamente se van arqueando para dar forma aproximada de medio círculo.
b). Presillas Internas: Se caracterizan porque las crestas que forman su núcleo nacen
en el costado izquierdo del dibujo y hacen su recorrido a la derecha, para luego dar
vuelta sobre sí mismas y regresar al mismo punto de partida. Cuentan con un punto
Delta que como se puede observar en la figura 3.6 se ubica del lado derecho del
observador.
c). Presillas Externas: Al igual que las presillas Internas, cuentan con un punto Delta,
pero éste se ubica del lado izquierdo del observador. Las crestas papilares que
forman el núcleo nacen a la derecha y su recorrido es a la izquierda para dar vuelta
sobre sí mismas y regresar al mismo punto de partida.
d). Verticilo: Se denomina verticilo debido a que sus dibujos en muchos casos son
similares a las flores; su característica más importante es que cuenta con dos puntos
Delta, uno del lado derecho y otro del lado izquierdo, sus núcleo puede adoptar
formas circulares, elípticas y espirales. Se pueden encontrar verticilos con tres deltas
llamados también trideltos, aunque esto sucede con poca frecuencia. (Biometria,
2006).
Las huellas dactilares de todas las personas se pueden clasificar en cuatro tipos:
lazo, compuesta, arco y espiral, que se pueden observar en la figura 2.27.
54
Figura 2.27: Clasificación de las huellas.
Fuente: http://centros5.pntic.mec.es/ies.victoria.kent/Rincon-C/Curiosid/Rc-57/Rc-
57a.htm
55
durante más de un siglo. Incluso características tales como una persona de paso, la
cara o la firma puede cambiar con el paso del tiempo y puede ser fabricado o
imitados. Sin embargo, una huella digital es completamente única a una persona y se
mantuvo sin cambios durante toda la vida. Esto demuestra que la exclusividad de
autenticación de huellas digitales es mucho más precisa y eficiente que cualquier
otro método de autenticación.
Este dispositivo de seguridad está encargado de detectar los relieves del dedo por
medio de luz o por medio de sensores eléctricos como se muestra en la figura 2.28,
posteriormente genera una imagen digital la cuál es enviada a la computadora y
almacenada en una base de datos en los que se le asocia con la información de una
persona. Cada vez que se coloca el dedo sobre la superficie óptica del lector, este
envía la información y la computadora determina a que persona corresponde o si se
trata de alguien no identificado.
Fuente:http://neutron.ing.ucv.ve/revistae/No6/Olguin%20Patricio/SEN_BIOMETRICOS.html
56
2.12. LENGUAJE Y PROGRAMAS DE SIMULACIÓN
ARDUINO no sólo son componentes eléctricos, sino que también es una plataforma
que combina esto con un lenguaje de programación que sirve para controlar los
distintos sensores que se encuentran conectados a la placa, por medio de
instrucciones y parámetros que nosotros establecemos al conectar la placa a un
ordenador. Este lenguaje que opera dentro de ARDUINO se llama WIRIRNG, basado
en la plataforma PROCESSING y primordialmente en el lenguaje de programación
C++, que se ha vuelto popular a tal grado de ser el más preferido para enseñar
programación. De este lenguaje derivan otros más que son muy utilizados en el
ámbito de Ingeniería y desarrollo, como C#, Java, BASIC, JavaScript, entre otros, por
lo tanto, ARDUINO soporta varios lenguajes de programación de alto nivel derivados
de C, haciendo de esto una ventaja para los diseñadores que trabajan en varios o en
1 sólo entorno de desarrollo de programación. Para poder trabajar desde el nivel
programación del procesador, debe descargarse el software que incluye las librerías
necesarias para poder utilizar el lenguaje de manera completa., ya que opera bajo
licencia libre y está disponible a todo público.
57
Al ser una herramienta que incorpora un tanto manejo de hardware y software
(circuitos eléctricos y un lenguaje de programación respectivamente) se requiere un
nivel de conocimiento básico en estas dos ramas del desarrollo para operarla.
Además, existe un simulador virtual de ARDUINO de licencia libre llamado Virtual
BreadBoard, este simulador es de gran ayuda para realizar la simulación en la
plataforma ARDUINO y se la debe utilizar antes de comenzar a operar de manera
oficial con el lenguaje de programación ARDUINO, el BreadBoard ofrece las
herramientas necesarias y el mismo soporte que esta placa, pero de manera digital.
(weebly, 2015).
2.12.3. PROTEUSS
58
La herramienta PROTEUS es un entorno integrado diseñado para la realización
completa de proyectos para construcción de equipos electrónicos en todas sus
etapas. PROTEUS el Sistema Virtual de Modelado (VSM) combina el modo mixto la
simulación de circuito de SPICE, componentes animados y modelos completos de
diseños basados en microprocesador para facilitar la co-simulación del micro
controlador. Esta herramienta dispone de los módulos conocidos por: Captura de
esquemáticos ISIS, Layout de ARES PCB y Simulador (ProSpice/VSM). Por primera
vez, es posible desarrollar y probar diseños antes de construir un prototipo físico.
(IES los viveros, 2015).
2.12.5. VSM.
59
sorprendente e importante de VSM es su capacidad de simular el software que se
ejecuta en el micro controlador y su interacción con cualquier componente
electrónico digital o analógico conectado a él. (IES los viveros, 2015).
El programa PROTEUS está conformado por dos aplicaciones llamadas Ares e Isis.
2.12.6. ISIS
Isis está diseñada para realizar esquemas de circuitos con casi todos los
componentes electrónicos que se encuentran actualmente disponibles en el mercado
de los circuitos integrados y los componentes pasivos y activos utilizados en las
aplicaciones electrónicas, además posee una aplicación de simulación que permite
comprobar la efectividad de un circuito determinado ante una alimentación de voltaje,
este voltaje en la aplicación es virtual; también permite cargar a los micro
controladores presentes en sus librerías con los programas previamente
desarrollados en los programas ensambladores y en los compiladores de basic
según sea el tipo de lenguaje elegido por el programador. Puede simularse desde el
encendido de un led hasta un gran board con un sin número de integrados digitales.
(Salina Rojas, 2008).
2.12.7. ARES
Ares es una aplicación que se utiliza para situar los componentes utilizados en el
sistema realizado en isis sobre una board virtual que luego puede ser impresa en una
impresora laser sobre papel de fax, estos últimos pueden luego ser impresos sobre la
capa de cobre para luego obtener las pistas de conducción mediante una reacción
que extrae el cobre sobrante de la board de bakelita. Los componentes pueden
encontrarse en la librería de la aplicación con los nominales de la clase de
encapsulado en el caso de los integrados y con respecto a la denominación técnica
referente a la forma física de los componentes.
60
Esta aplicación cuenta con una serie de procesos automatizados que generan
acciones de auto ruteo auto posicionamiento cuando el proyecto se carga desde isis,
de lo contrario el posicionamiento y el ruteo debe hacerse manualmente. (Salina
Rojas, 2008).
2.13. MODELO EN V
61
Capítulo 3.
INGENIERÍA DEL PROYECTO
62
la segunda acción es bloquear las señales de encendido (inmovilizador) el
cual evitara la puesta en marcha del vehículo.
la tercera acción que realiza es enviar un mensaje y una llamada de alerta al
usuario indicando que existe la presencia de personas ajenas en el vehículo.
64
CARACTERÍSTICAS GENERALES.
Este modulo sim900 GSM/GPRS necesita comandos AT que son instrucciones para
programarlos, con la utilización de estos comandos se puede comunicar y controlar
el modem GSM desde el micro controlador, para la realización de la programación
utilizaremos los siguientes comandos AT:
ATD: Este comando llama al número de teléfono solicitado.
ATH: Descuelga el teléfono.
AT+GREG: Registrarse en una red.
AT+CMSS: Enviar mensaje.
65
3.1.2.2. SENSOR DE HUELLAS DIGITALES
Para la elaboración del presente proyecto trabajaré con el lector de huellas digitales
AS606 con una comunicación serial TTL, este sensor cuenta con una memoria
interna el cual almacena hasta 162 huellas.
CARACTERÍSTICAS GENERALES.
La siguiente figura 3.3 muestra al sensor de huellas digitales conectado con la placa
ARDUINO lista para ser programada.
66
Los componentes que se utilizaran para la construcción del sistema de alarma están
detallados en la tabla 3.1 el cual muestra la cantidad de componentes que se
necesitaran así también como sus especificaciones técnicas de voltaje suministrado
a cada componente.
1
MODULO GSM 3.1v-4.8v
1
BOCINA 12v
2
REGULADORES DE 14v
VOLTAJE
1
TECLADO MATRICIAL 4X4 4v-5v
1
SENSOR DE HUELLAS 3.6v- 6v
DIGITALES
1
SENSOR PIR 3v-5v
67
3.2. FASE 2 DISEÑO GLOBAL O DE ALTO NIVEL
Esta fase muestra diseño general del sistema es decir, el sistema a grandes rasgos.
En esta sección se muestra el diseño global o total del sistema de seguridad con
todos los componentes que lo conforman, y así tener el diagrama eléctrico completo
para poder comprender mejor el funcionamiento del sistema.
68
En la figura 3.4 se observa el diagrama eléctrico del sistema de alarma con todos sus
componentes, se aprecia claramente los tres módulos con los cuales se trabaja tales
como el modulo biométrico, el modulo i2c para LCD y el modulo sim900 para
llamadas y mensajes, a la vez se observa las placas de ARDUINO UNO, los
RELAYS, el sensor PIR, el teclado matricial, el diagrama eléctrico muestra el circuito
y la conexión de los pines completo del sistema de alarma.
Este diagrama eléctrico ayudara para realizar las pruebas y reparaciones que el
sistema requiere en el futuro si es necesario y para que se realice el mantenimiento
correspondiente.
Para realizar el diseño del hardware dividiremos el circuito general del sistema de
alarma y control automatizado en partes para que se comprenda mejor.
69
En la siguiente figura 3.5 se puede apreciar la conexión del sim900 GSM /GPRS con
relación a la placa ARDUINO UNO, se puede apreciar que el modulo sim900 está
conectado con la placa ARDUINO mediante cuatro cables los cuales dos son de
alimentación y los dos restantes son de transmisión y recepción de datos, en la
conexión de estos cables se debe tener mucho cuidado de no equivocarse, ya que si
se conecta erróneamente el modulo sim900 no funcionara, presentara errores. Dicho
todo esto se debe conectar los cables de transmisión y recepción invertidos, estando
el pin de transmisión del modulo conectado con el pin de recepción de la placa
ARDUINO y viceversa con los otros dos.
70
En la figura 3.6 siguiente se puede apreciar la conexión física del modulo biométrico
con relación a la placa ARDUINO UNO, se puede observar que tiene conectado dos
cables de alimentación uno que va a tierra y otro que es voltaje de alimentación de 5
voltios, también en la parte inferior de la figura se puede apreciar la conexión de dos
cables que son transmisión y recepción de datos con el ARDUINO, estos dos cables
son muy importantes los cuales no se los debe conectar invertidos ya que si se lo
hace puede causar problemas y quemar el modulo biométrico, otra característica
importante es que al adquirir el sensor de huellas digitales este viene con dos cables
adicionales a los ya mencionados para este proyecto dichos cables se los anula ya
que no se los necesita para realizar el control y registro de las huellas dactilares.
Figura 3.6: Conexión del sensor de huellas dactilares con relación a la placa
ARDUINO UNO.
71
3.3.3. DISEÑO DEL CIRCUITO SENSOR PIR
Todos los seres vivos e incluso los objetos emite radiación electromagnética
infrarroja debido a la temperatura a la que se encuentran, esta característica es la
que origina el diseño de este sensor y en este proyecto el sensor de movimiento
infrarrojo se utilizara como dispositivo de alarma.
En la figura 3.7 se indica el circuito del sensor PIR realizado en el simulador ISIS
PROTEUS, en el cual podemos observar que los pines 2 y 3 del sensor están
conectados en GND y VCC de la placa ARDUINO uno, el pin 1 que es la transmisión
de señal del sensor a la placa ARDUINO está conectado en el pin 2 como INPUT o
recepción.
72
3.3.4. DISEÑO DEL CIRCUITO TECLADO MATRICIAL
El teclado matricial 4x4 comúnmente conocido como keypad 4x4 está compuesto por
cuatro cables que representan columnas y cuatro que representan filas, para tal
motivo la distribución de los pines digitales con relación a las filas y columnas se
detalla a continuación.
La figura 3.8 siguiente muestra la distribución de los cables del teclado matricial en
relación a la placa ARDUINO uno, como se observa en el grafico las columnas están
representadas por lo números 1 al 4 y las filas que representan las letras de A-D.
Están conectados con relación a la placa mediante los pines 2 al 9, cabe resaltar que
para la programación de los teclados en el programa de ARDUINO tenemos que
trabajar con matrices a los cuales se les debe colocar la numeración y significado
correctos.
Figura 3.8: Circuito del teclado matricial 4x4 conectado en la placa ARDUINO UNO.
A
7 8 9
SIM1
B
4 5 6 SIMULINO UNO
RX < 0
13
12
~11
~10
~9
8
7
~6
~5
4
~3
2
TX > 1
AREF
DIGITAL (PWM~)
C
1 2 3 SIMULINO
blogembarcado.blogspot.com
ARDUINO
ON
D 0 = +
www.arduino.cc
C ATMEGA328P
ATMEL
1
POWER
RESET
ANALOG IN
GND
A0
A1
A2
A3
A4
A5
5V
73
3.3.5. DISEÑO DEL CIRCUITO PANTALLA LCD
La pantalla LCD 16x2 es conocido también como DISPLAY LCD tiene diferentes
características una de las más importantes es la de representar las señales en letras
para que podamos entender la ejecución de cualquier proyecto, esto también le da
un aditivo interesante en cualquier proyecto.
La figura 3.9 siguiente muestra la conexión del LCD 16x2 con la placa ARDUINO
UNO, nos indica la ubicación de los pines del LCD conectados con los pines de
ARDUINO UNO, también se observa la conexión de un potenciómetro, este
componente se lo conecta para poder controlar la intensidad de luz que se reflejara
en el LCD, es decir para poder visualizar de una manera nítida las letras que
queremos que muestre la pantalla LCD.
7
~6
~5
4
~3
2
TX > 1
AREF
DIGITAL (PWM~)
SIMULINO
blogembarcado.blogspot.com
ARDUINO
www.arduino.cc
ATMEGA328P
ATMEL
POTENCIOMETRO
5K
POWER
RESET
ANALOG IN
GND
A0
A1
A2
A3
A4
A5
5V
LCD1
LM016L
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
1
2
3
4
5
6
7
8
9
10
11
12
13
14
En la figura 3.9 se observa que no se utilizo todos los pines del LCD ya que no son
necesarios, pero se debe tener mucho cuidado de hacer la conexión de los pines de
74
alimentación ya que si se invierte la polaridad este puede resultar dañado, por ello en
la placa del LCD el pin VSS, RW debe ir necesariamente a tierra y el pin VDD debe
alimentación positiva de 5 voltios.
75
3.4.2. CÓDIGO DE PROGRAMACIÓN UTILIZADO EN EL PROTOTIPO
La figura 3.10 describe el uso de librerías y las variables con la que inicializa además
muestra el mensaje que se enviara al celular del usuario cuando se active la alarma y
las señales de salida que controla ARDUINO (las señales ST, FP,IGF).
76
La figura 3.11 siguiente muestra la llamada del teclado matricial y las librerías de la
pantalla LCD con el modulo I2C, las variables en forma de entera con las que
comienza.
77
La siguiente figura 3.12 muestra la comunicación serial, los pines declarados como
salida y lo que nos mostrara al inicio en la pantalla LCD.
78
La siguiente 3.13 figura muestra el código que se irá repitiendo constantemente y
también podemos apreciar el código para el encendido del vehículo por teclado
marcando *100#.
79
La figura 3.14 muestra el codigo del modo de seguridad que activa el sensor PIR,
tambien se puede observar la funcion de teclado para introducir codigos de
funcionamiento.
Figura 3.14: Código del modo de seguridad controlado por el sensor PIR.
80
En la siguiente figura 3.15 se puede observar la codificación para el envió de
mensajes y llamadas (modulo sim900) a un celular local (utilizando los comandos AT
para la búsqueda de señal, para llamada y envío de SMS los cuales son AT+CREG,
ATH, AT+CMGS y se describen más adelante) esta función permite enviar
constantemente mensajes y llamadas al celular una vez que se activa la alarma,
dejara de enviar mensajes y llamadas una vez que se active el código de
desactivación de la alarma por teclado.
81
3.5. FASE 5 TEST UNITARIO
82
La figura 3.17 muestra la prueba que se realizo para verificar el correcto
funcionamiento introduciendo cinco números a lazar para ver si este era aceptado
pero con la ayuda del puerto serial nos muestra que el número o código es erróneo.
La siguiente 3.18 figura muestra los componentes para el montaje del hardware que
corresponde al sistema de alarma el cual muestra la conexión del sensor PIR, el
cable amarillo en la figura es la señal que envía el sensor infrarrojo a la placa
ARDUINO uno, los cable verde y rojo son tierra y positivo respectivamente.
83
Se procedió a realizar la evaluación individual al sensor infrarrojo PIR, para verificar
su buen funcionamiento se hizo la conexión de cuatro diodos LEDS, dos de los
cuales se encienden al principio (verde y naranja) cuando se lo energiza, pero
cuando el sensor infrarrojo PIR detecta movimiento enciende los dos leds restantes
(rojo y amarillo) y lo mantiene encendido quince segundos, si detecta movimiento se
encenderán continuamente.
La prueba salió correcta lo único que se debe calibrar es el tiempo de reacción del
sensor infrarrojo PIR lo cual se lo realiza ajustando los jumper que lleva en uno de
los lados.
84
Figura 3.20: Sensor PIR en proceso de activación.
La siguiente figura 3.21 se observa a través del puerto serial como el sensor PIR
detecta el movimiento de cualquier objeto.
85
La figura 3.22 muestra la prueba individual del sensor de huellas digitales (modulo
biométrico) para el montaje del hardware que corresponde al sistema de alarma.
Los cables rojo y negro en la figura 3.23 son positivos y tierra respectivamente, los
cables verde y rojo son TX y RX.
86
En la figura 3.24 se aprecia el funcionamiento correcto del modulo biométrico, se
puede observar que el sensor de huellas digitales esta encendido y listo para
registrar la huella digital.
87
En esta figura 3.25 también se puede apreciar la conexión de la placa ARDUINO
UNO con el sim900 que es a través de tres cables, de los cuales se utiliza el pin 7 y 8
de ARDUINO para conectar con los pines 7 y 8 en el sim900 GSM/GPRS, además
comparten un solo negativo, también cabe resaltar que el sim900 cuenta con
alimentación propia de lo contrario no podría realizar el envió de mensajes, para
activarlo necesitamos pulsar el botón que lleva en el lado derecho del sim900 el cual
está marcado con la fecha de color verde.
88
La figura 3.27 muestra la comunicación del puerto serial cuando el sistema se ha
puesto en funcionamiento, además se introduce el código de activación de la alarma
que en este caso se le puso un numero aleatorio de *911#, el cual tiene un lapso de
10 segundos para ponerse en funcionamiento, pasado este tiempo la alarma se
activara y empezara a sonar la bocina de alarma.
89
Figura 3.28: Código de desactivación de la alarma.
En esta fase se integran todos los circuitos de los componentes electrónicos tanto
hardware como software que forman el sistema de alarma y control automatizado.
Se debe comprobar todo el sistema en conjunto funcionando correctamente y si
existiera presencia de alguna anomalía en el sistema, este debe corregirse o de lo
contrario que el sistema permanezca en correcto funcionamiento a pesar de la
anomalía debido a que es un sistema de triple seguridad el cual garantiza que a
pesar de algún fallo el sistema opere correctamente.
La tabla 3.2 muestra las anomalías que se desarrollaron en las pruebas realizadas a
los módulos y sensores del sistema de alarma, se comprueba la función de cada
módulo y sensor, también se verifica la instalación del hardware en conjunto con
todos los dispositivos.
90
Tabla 3.2: Prueba de integración de sensores.
Sensor PIR.
Sensor
Sensor biométrico.
La tabla 3.3 muestra las fallas que se observaron al realizar la integración del
sistema.
91
Tabla 3.3: Prueba de integración de componentes.
ARDUINO uno.
Componentes
Teclado matricial.
La pantalla LCD con i2c y el Sim900 GSM/GPRS.
92
En la figura 3.29 se observa la falla que se desarrollo en la pantalla LCD con el
modulo I2C.
En esta fase se realizara las pruebas del sistema de alarma en el prototipo que se
instalo en un motor estacionario 4E-FE de Toyota, así también se mostrara la
construcción y las últimas pruebas realizadas.
93
3.7.1. CONSTRUCCIÓN DEL PROTOTIPO
94
Figura 3.31: Construcción de la tapa del panel de control.
Una vez construida el panel de control se procede a colocar el LCD, el sensor PIR, el
teclado matricial, el sensor biométrico y el modulo sim900, el BUZZER y el panel de
control en el que están montados los componentes electrónicos queda de la
siguiente manera el cual se puede apreciar en la figura 3.32.
95
ARDUINO el modulo sim900 los RELAYS que controlaran los dispositivos en corte
cuando se active la alarma.
96
Tabla 3.4: Calibre de cables.
Fuente:pepegreen.com/awg-que-es/
La figura 3.34 muestra los cables de calibre 22 AWG que se utilizo para realizar la
conexión en el prototipo, de los cuales se adquirió hembra-macho y macho-macho
para realizar las conexione sin mucha dificultad.
97
Para la alimentación del panel de control se utilizo otro tipo de cable que de igual
forma se tuvo que seleccionar, pero además se tuvo que utilizar reguladores de
voltajes de 5v y 8v (los cuales se explican más adelante) para alimentar las placas de
ARDUINO y el modulo sim900, para ello se realizo la medida de corriente del sistema
en conjunto, se obtuvo que el sistema consume 0.7A por lo que con este valor se
realizo la comparación en tablas AWG, y el calibre de cable es el 22 AWG, pero se
debe tomar en cuenta la corriente que va a los distintos componentes del motor
como ser la corriente de la bomba de combustible, las señales IGN, IGF, analizando
todo esto se opto por el cable de calibre 20AWG que soporta hasta 1.5 A además
para garantizar que no fluya un exceso de corriente que pueda dañar el sistema, se
puso un fusible de 1 A.
98
Una vez realizado las correcciones pertinentes, se procedió a revisar las señales que
podremos controlar con el sistema de alarma, en este caso para que encienda el
motor tendremos que controlar la señal 50 que va al motor de arranque, también
tendremos que controlar las señales IGN y la señal de la bomba de combustible, ya
que si se activa la alarma estas señales se deben cortar para que el vehículo ya no
encienda y envié una señal de alerta.
En la figura 3.36 se puede apreciar la señal IGF la cual tendremos que controlar con
el sistema de alarma.
La figura 3.37 muestra la señal IGF que ingresa al ECM del motor, es el cable de
color verde, ya que si esta señal no ingresa, el ECM cortara la inyección de
combustible.
99
En la figura 3.38 se puede apreciar la bomba de combustible y el RELAY de la
bomba, los cuales nos interesan ya que los utilizaremos como inmovilizadores
cuando se active la alarma.
100
Figura 3.40: Diagrama eléctrico general del sistema y el motor.
101
La tabla 3.5 muestra la codificación del diagrama de la figura para su mejor
comprensión.
102
Una vez realizado la instalación del prototipo del sistema de seguridad y alarma de
control automatizado, se comienza con las pruebas pertinentes para demostrar que
el sistema es óptimo y eficiente.
Las placas de ARDUINO que forman parte del panel de control pueden ser
energizadas entre un parámetro de 5v a 14v ya que las placas de ARDUINO cuentan
con un regulador de voltaje incorporado.
103
características, pero no se aconseja utilizar estos elevados voltajes ya que si se usa
prolongadamente llegaría a quemar la placa.
En la figura 3.41 se puede observar el diseño del circuito realizado con el regulador
L7808, el cual se lo hizo en el programa PROTEUS ISIS, luego se procedió a
realizar el ruteado en ARES para el quemado de la placa del regulador de voltaje.
U1
7808 regulador de voltaje 8v fijo
J1 J3
1 1 3 1
VI VO
GND
C2 C1
0.33uf 0.1uF
J2 J4
2
1 1
yelson villca
104
Una vez realizado el regulador de voltaje se procedió a efectuar las conexiones en el
panel de control, cabe resaltar que para esta prueba en primera instancia se alimento
con un voltaje de 5v las placas de ARDUINO tal como lo específica en las
características técnicas (este regulador se explicara más adelante), los resultados se
muestran en la tabla 3.6.
105
La tabla 3.6 muestra los problemas que se presentaron al realizar las pruebas con
alimentación de 5v, se debe tomar en cuenta que aun cuando todos los dispositivos
reciban una alimentación de 5v, no están recibiendo la corriente adecuada, ya que
todos están conectados en conexión paralelo, por lo que la corriente total se va
distribuyendo entre todos pero manteniéndose el voltaje constante de 5v.
VI
Esta fórmula indica que si aumentamos la corriente el voltaje también aumenta, para
ello necesariamente se debe incrementar el voltaje, de acuerdo a las
especificaciones técnicas es recomendable alimentar de 5v a 8v por lo que
realizamos el circuito utilizando el regulador L7808 que se explico anteriormente con
esto se logro aumentar la corriente de alimentación y se observó que las placas no
calientan en demasía y se logro solucionar el problema.
La tabla 3.7 muestra la solución para los problemas de alimentación hacia el panel
de control, toda la falla se solucionó debido al aumento de la corriente y el voltaje, se
opto por un regulador de 8v debido a que el regulador interno de la placa de
ARDUINO acepta este voltaje, además no circula mucha corriente por lo que el
regulador de la placa ARDUINO ya no calienta.
106
Tabla 3.7: Pruebas experimentales con alimentación de 8v.
Con todo lo que se hizo se logro alimentar las placas de ARDUINO que forman parte
del panel de control, pero aun no se logro alimentar el modulo sim900, de acuerdo a
sus especificaciones técnicas se le debe alimentar en un rango de 3v a 5v para lo
cual procedemos a realizar el diseño del regulador de voltaje utilizando el L7805 que
es un regulador de voltaje fijo de 5v.
107
Figura 3.43: Diseño del circuito de regulador L7805.
U1
7805 regulador de voltaje 5v fijo
J1 J3
1 1 3 1
VI VO
GND
C1
100uF
J2 J4
2
1 1
yelson villca
La figura 3.44 muestra el ruteado que se hizo en el programa ARES, el cual nos sirve
para realizar el quemado de la placa seguidamente del montaje de los componentes
tales como el regulador L7805 y el capacitor de 100uf.
Figura 3.44: Diseño del regulador L7805 para el montaje de los componentes.
108
Una vez realizado las pruebas de alimentación procedemos a poner en
funcionamiento el sistema de seguridad y alarma de control automatizado.
Para la puesta en marcha del motor el usuario lo puede hacer mediante dos formas,
una es mediante teclado y otra mediante el sensor biométrico.
Para dicha prueba utilizamos las huellas digitales de cuatro estudiantes de la carrera
de mecánica automotriz, procedimos a realizar el grabado de huellas, tomamos una
huella por estudiante para realizar las pruebas.
109
Figura 3.45: grabado de huellas y monitor serial.
La figura 3.46 muestra las pruebas que se realizaron para el encendido o activación
del motor mediante el sensor de huellas digitales, se hizo las pruebas con cuatro
tipos de huellas diferentes y el resultado se lo expreso en graficas de columna para
su mayor comprensión.
110
Figura 3.46: Grafico huellas correctas.
2,5
1 Tiempo de reconocimiento de
huella
0,5
0
Prueba #1 Prueba #2 Prueba #3 Prueba #4
Ahora procedemos a realizar la prueba con cuatro huellas digitales que no fueron
grabados en el sistema el cual se observa en la figura 3.47.
111
Figura 3.47: Grafica de huellas incorrectas.
0,5
0,45
0,4
0,35
Huella incorrecta
0,3
0,1
0,05
0
Prueba #1 Prueba #2 Prueba #3 Prueba #4
INTERPRETACIÓN: la grafica nos indica las pruebas realizadas con huellas que no
fueron grabadas en el sistema, por lo que no se pudo activar el motor con esto
garantizamos la seguridad y confiabilidad del proyecto, como podemos apreciar en el
grafico la barra azul que representa el reconocimiento de huellas, ya que son
incorrectas el sistema no las reconoce, la barra roja representa el tiempo de
activación del motor de arranque ya que no reconoció la huella digital el tiempo de
activación es cero y por último la barra verde representa el tiempo de reacción del
sensor biométrico.
Para el encendido del motor mediante teclado se facilita una clave de cuatro dígitos
el cual el usuario debe ingresar para activarlo, dicha clave es *100# el símbolo de #
es para que la clave ingrese al sistema actúa como si fuera la tecla ENTER, si nos
equivocáramos de números tendríamos que presionar # para que el código ingrese
ya que es el incorrecto nos pedirá que introduzcamos nuevamente la clave.
112
La figura 3.48 muestra la activación del motor mediante teclado y se puede apreciar
en la pantalla LCD el código de activación del motor.
En la figura 3.50 se muestra las pruebas realizadas al introducir por teclado el código
correcto para poner en funcionamiento el motor y los códigos incorrectos los cuales
serán rechazados y no activaran el motor.
113
Figura 3.50: Grafica de clave correcta e incorrecta.
2,5
1,5
Codigo correcto
1
114
del vehículo, pasado ese tiempo entra en funcionamiento el sensor PIR, el cual
detectara cualquier movimiento y activara la alarma.
115
La siguiente figura 3.53 muestra la prueba realizada al sensor PIR el cual detecta
cualquier movimiento encendiendo la alarma, el buzzer, enviando el mensaje y
realizando la llamada al usuario.
La figura 3.54 muestra las llamadas realizadas por el sim900 y los mensajes
enviados al celular del usuario, el sim900 realizara la llamada y el envío de mensaje
hasta que se introduzca la clave de desactivación por teclado.
116
Figura 3.54: Llamadas y mensajes enviados por el sim900.
La figura 3.55 muestra la falla que se presenta en el modulo sim900, el cual fue por
falta de cobertura, se puede observar que el led de NETLIGHT esta encendido
constante y el led de STATUS permanece inactivo, esto nos indica que el sim900 no
está conectado, por lo que el sistema tarda un tiempo mayor en conectarse.
117
La figura 3.56 muestra el tiempo de duración del envío de mensaje y llamada que se
realizan cuando se activa el sensor PIR (detección personas ajenas en el vehículo),
también se aprecia el tiempo que tarda en reaccionar el sensor PIR, debido a que
estos dispositivos tienen un margen de error al realizar las mediciones en tiempo
real.
10
9
8
7
6 tiempo de duracion de llamada
5 y mensaje
4 tiempo de reaccion del sensor
3 PIR
2
1
0
Prueba 1 Prueba 2 Prueba 3 Prueba 4
118
La figura 3.57 muestra un código erróneo para la desactivación de la alarma el cual
es rechazado y la alarma continua activa.
En nuestro país contamos con tres empresas de telefonía que son TIGO, VIVA y
ENTEL, estas tres empresas tienen diferente tipo de red o señal, ya que en ciertos
lugares la señal de una red es buenísima pero en algunos es mala debido a la
localización de edificios que obstruyen la señal por ese motivo se debe realizar esta
prueba.
La figura 3.58 muestra los tres chips con los cuales se realizara dicha prueba a la vez
muestra la inserción del chip en el modulo sim900.
119
Figura 3.58: Chips de tres empresas de telefonía para la prueba de reacción.
La tabla 3.8 indica los tiempos de reacción en la búsqueda de red que tuvo el
sim900.
120
Se realizo las pruebas y se obtuvo la tabla de resultados en el cual se observa que la
empresa de telefonía que tiene una red estable es de la empresa viva, el sim900
tardo mucho en reconocer la red de las dos empresas restantes, por lo que si se
utiliza un chip de la empresa VIVA el sistema tiene una reacción optima y eficiente.
90
80
70
60
50
VIVA (segundos)
40
TIGO (segundos)
30
ENTEL ( segundos)
20
10
0
prueba #1
prueba #2
prueba #3
prueba #4
prueba #5
121
3.7.3.8. PRUEBA DE EFICIENCIA EN CONSUMO ELECTRICO
La figura 3.60 muestra la medición del consumo de corriente total del sistema, tome
en cuenta que para la medición de la corriente se abrió circuito y se puso el
amperímetro en serie.
122
La tabla 3.9 muestra las mediciones de corriente de los diferentes componentes del
sistema implementado.
123
La prueba fue satisfactoria por lo que se garantiza un consumo óptimo.
El sistema de alarma desactiva (la bomba de combustible, la señal IGN, la señal IGF
de la bobina) cuando se activa la alarma, debido a esto el automóvil queda
inmovilizado, no volverá a encender a menos que se introduzca la clave *000# por
teclado.
La figura 3.61 muestra lo que imprime el LCD cuando se introduce por teclado la
clave de desactivación, y en cuestión de segundos el sistema activa las señales que
se interrumpieron, para encender el vehículo.
124
3.7.3.10. PRUEBA DE ENCENDIDO DE ALARMA MEDIANTE MENSAJE
La figura 3.62 muestra los mensajes enviados por el celular con la clave correcta de
activación y desactivación de la alarma, también muestra el código y la programación
para tal efecto.
125
Con todas las pruebas realizadas al prototipo se garantiza que el sistema de
seguridad y alarma con control automatizado es óptimo, confiable además es de un
costo accesible.
Todas las pruebas se lo realizo con éxito, garantizando que el sistema de alarma y
control automatizado es de triple seguridad, optimo, eficiente y que tiene un consumo
de energía aceptable el cual no contribuirá al desgaste de la batería.
126
CAPÍTULO 4.
EVALUACIÓN DE PROYECTO
127
Condiciones observadas “Sin Proyecto”
128
Se logra fusionar tres tipos de alarma en una sola, con un costo menor y con
una mayor seguridad para evitar el robo.
4.1.2. EVALUACIÓN
A partir del análisis de la situación CON y SIN Proyecto se puede establecer que la
aplicación del proyecto tendría ventajas técnicas importantes para alertar al
conductor, traducida fundamentalmente en una mayor seguridad del vehículo
disponibilidad del dispositivo y un ahorro económico emergente de una menor
frecuencia de robos y una mayor duración del vehículo (relacionado esencialmente
con el aprovechamiento completo del ciclo de vida del vehículo y sus equipos). En
este análisis, se considera como aspecto fundamental la seguridad. Esta
circunstancia, permitiría disponer del sistema de alarma y seguridad para que el
conductor pueda realizar sus viajes sin temor a que le roben su vehículo y
cumpliendo simultáneamente, con las especificaciones de funcionamiento óptimo
desde el punto de vista de la economía.
129
4.2.1. COSTO DE DISEÑO
COMPONENTES PRINCIPALES
Placa AURDUINO UNO Pza. 2 11,48 22,96
TOTAL 226,62
130
Cuadro 2. Costo de construcción.
CONSTRUCCIÓN 71,9
TOTAL 298,52
131
futuro, además cabe resaltar que el sistema propuesto es de triple seguridad y tiene
un costo económico muy bajo en comparación a los existentes en el mercado.
Menor costo
132
CAPÍTULO 5.
CONCLUSIONES Y RECOMENDACIONES
5.1. CONCLUSIONES
Como culminación del presente trabajo de grado se pueden establecer las siguientes
conclusiones:
133
Se analizó las características técnicas del sistema de seguridad por medio de
un dispositivo biométrico, sensor PIR, modulo sim900 de mensajería,
utilizando la placa ARDUINO, se realizo el análisis individual de las
características técnicas de cada sensor, modulo y se procedió a evaluar en
conjunto todo el sistema siguiendo la metodología en V que se planteo.
5.2. RECOMENDACIONES
Con base en las pruebas realizadas se considera pertinente establecer las siguientes
recomendaciones:
134
cuenta con dichas librerías será imposible que pueda cargar el código de
programación a la placa ARDUINO.
Proteger el sistema evitando que le caiga agua al panel de control, evitar que
sobrepase la temperatura especificada para el modulo biométrico.
Para la puesta en funcionamiento mediante el modulo biométrico, se debe
cubrir por completo la ventana del sensor de hullas dactilares, de lo contrario
no lo reconocerá, también evitar poner el dedo con mugre (grasa, humedad).
La tarjeta (chip) debe tenerlo siempre cargado para que realice el envió de
mensaje y la llamada.
El modulo sim900 para la puesta en marcha se debe registra el código IMEI al
igual que un celular en la empresa a la cual pertenezca (VIVA, TIGO, ENTEL).
135
BIBLIOGRAFÍA
Alberto, R. A. (2015). " tesis" Diseño de un sistema alectronico que mide el grado de alcolemia y
comprueba por biometria la identidad del conductor de un vehiculo.
Arias, P. (2004). Tipos de encendido. En P. Arias, Manual de automoviles (pág. 708). Dossat 2000 S.L.
Artefactos. (S.F de S.A). reguladores de tension 78xx y 79xx. Recuperado el 24 de mayo de 2018, de
reguladores de tension 78xx y 79xx: http://www.artefactos.leame.com
Bateria de Plomo Acido. (2013). Recuperado el 14 de FEBRERO de 2018, de Bateria de Plomo Acido:
http://www.olajedatos.com/documentos/baterias_plomo.pdf
Bolaños, D. (2001). Manejo de display LCD. Recuperado el 9 de Julio de 20017, de Manejo de display
LCD.: http://www.bolanosdj.com.ar/SOBRELCD/TEORIALCDV1.pdf
Chacon Diaz, R. (17 de julio de 2015). teclado matricial. Recuperado el 15 de febrero de 2018, de
teclado matricial: https://hetpro-store.com/TUTORIALES/teclado-matricial-con-arduino/
Comenzando con Arduino. (s.f.). Recuperado el 25 de junio de 2017, de Comenzando con Arduino:
http://www.arduino.cc/en/.
136
Crouse, W. H. (1996). Equipo electrico y electronico del automovil. Mexico: Alfaomega grupo editor,
S.A.DE C.V.
Curso de Electricidad del Automovil. (enero de 2018). Como Saber que Cable usar para Hacer
Instalaciones Electricas en el Auto. Recuperado el 15 de febrero de 2018, de Como Saber que Cable
usar para Hacer Instalaciones Electricas en el Auto: http://tallerautoelectrico.com/curso-de-
electricidad-del-automovil/ley-de-ohm-en-los-circuitos-electricos/
Dani, m. (19 de febrero de 2005). Curso de sistema de encendido para automovil. Recuperado el 25 de
junio de 2017, de Curso de sistema de encendido para automovil.:
http://mecanicavirtual.iespana.es/curso_encendido.htm
Enriquez Herrador, R. (2009). Guia de usuario de arduino. San francisco, California: Creative Commons
Atribution-Noncomercial-Share.
Flotante, P. (2017). Manual del usuario sensor de movimiento PIR-HC-SR501. Recuperado el 9 de Julio
de 2017, de Manual del usuario sensor de movimiento PIR-HC-SR501.:
http://www.puntoflotante.net/MANUAL-DEL-USUARIO-SENSOR-DE-MOVIMIENTO-PIR-HC-SR501.pdf
Hella. (2005). Reles y componentes con rele productos y aplicaciones. Alemania: Hella kga hueck &
Co.lippstadt.
Hughes, J. G. (1990). Manual de Diagnostico y Afinacion de Motores Automotrices (TOMO 2). Mexico:
Prentice-Hall, Inc.
IES los viveros. (2015). Manual de Proteus. Recuperado el 11 de Julio de 2017, de Manual de Proteus:
http://www.ieslosviveros.es
137
INTECO. (2009). Ingenieria del software: metodologia y ciclos de vida. Laboratorio nacional de calidad
del software inteco.
Lara, E. (13 de octubre de 2015). sim900 GSM GPRS con arduino uno. Recuperado el 15 de febrero de
2018, de sim900 GSM GPRS con arduino uno: https://hetpro-store.com/TUTORIALES/sim900-gsm-
shieldarduino/
Llamas, L. (2 de octubre de 2016). Usar Teclado Matricial con Arduino. Recuperado el 15 de febrero
de 2018, de Usar Teclado Matricial con Arduino: https://www.luisllamas.es/arduino-teclado-
matricial/
Mecanica virtual. (22 de febrero de 2005). Cursos de Mecanica y Electricidad del Automovil.
Recuperado el 14 de febrero de 2018, de Cursos de Mecanica y Electricidad del Automovil.:
http://www.iespana.es/mecanicavirtual/indice_cursos.html
138
S.N. (17 de 12 de 2015). tutorial lcd con i2c. Recuperado el 25 de 4 de 2018, de
www.naylampmechatronics.com: www.naylampmechatronics.com
Tipo de Calibre del Cable Automotriz. (12 de agosto de 2016). Recuperado el 15 de febrero de 2018,
de Tipo de Calibre del Cable Automotriz: http://www.autosoporte.com/blog-automotriz/item/460-
tipos-de-calibre-del-cable-automotriz
Torrente Artero, O. (2013). Arduino Curso practico de formacion. MEXICO: Alfaomega grupo editor
S.A. de C.V.
139
ANEXOS
ANEXO I. CÓDIGO PARA GRABADO DE HUELLAS EN BIOMÉTRICO
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
uint8_t getFingerprintEnroll(int id);
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup()
{
Serial.begin(9600);
Serial.println("fingertest");
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!");
} else {
Serial.println("Did not find fingerprint sensor :(");
while (1);
}
}
void loop()
{
Serial.println("Type in the ID # you want to save this finger as...");
int id = 0;
while (true) {
while (! Serial.available());
char c = Serial.read();
if (! isdigit(c)) break;
id *= 10;
id += c - '0';
}
Serial.print("Enrolling ID #");
Serial.println(id);
140
while (! getFingerprintEnroll(id) );
}
uint8_t getFingerprintEnroll(int id) {
int p = -1;
Serial.println("Waiting for valid finger to enroll");
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println(".");
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
break;
}
}
p = finger.image2Tz(1);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
141
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
Serial.println("Remove finger");
delay(2000);
p = 0;
while (p != FINGERPRINT_NOFINGER) {
p = finger.getImage();
}
p = -1;
Serial.println("Place same finger again");
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.print(".");
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
break;
142
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
break;
default:
Serial.println("Unknown error");
break;
}
}
p = finger.image2Tz(2);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
p = finger.createModel();
if (p == FINGERPRINT_OK) {
Serial.println("Prints matched!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
143
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
Serial.println("Fingerprints did not match");
return p;
} else {
Serial.println("Unknown error");
return p;
}
Serial.print("ID "); Serial.println(id);
p = finger.storeModel(id);
if (p == FINGERPRINT_OK) {
Serial.println("Stored!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
Serial.println("Could not store in that location");
return p;
} else if (p == FINGERPRINT_FLASHERR) {
Serial.println("Error writing to flash");
return p;
} else {
Serial.println("Unknown error");
return p;
}
}
144
ANEXO II. CÓDIGO PRINCIPAL DEL SISTEMA ALARMA
#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8);
int respuesta;
char aux_str[50];
char mensaje[] = "alarma encendida, auto en proceso de robo. sistemas bloqueados
\x1A \r\n";
char menaje=0;
//Indicadores
int led1 = A0; //señal IGF
int led2 = A1; //bomba de combustible
int led3 = A2; //motor de arranque
int led4 = A3;// IGN
int sensorPir = 2;
char key;
int led6 = 13;
/***************TECLADO********************************/
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
String cadena;
char char_cadena[5];
int sms;
String str_c;
int i = 0, t = 0;;
boolean finTeclado = false;
boolean modoSeguro = false;
char keys[ROWS][COLS] = {
{'1','4','7','*'},
{'2','5','8','0'},
{'3','6','9','\n'},
{'A','B','C','D'}};byte rowPins[ROWS] = {6, 5, 4, 3};
byte colPins[COLS] = {12, 11, 10, 9};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
/***************************LCD************************/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
/******************************************************************************/
unsigned long t_actual = 0;
unsigned long t_previo = 0;
unsigned long t_esperado = 3000;
145
boolean estado = true;
//Seguridad
int numEmergencias = 0;
int estadoActual = 0;
int estadoAnterior = 0;
boolean pantalla = true;
void setup(){
Serial.begin(19200);
/********************************LCD************************************/
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(3,0);
lcd.print("Bienvenido");
delay(3000);
lcd.clear();
/*****************************************************************************/
SIM900.begin(19200);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(sensorPir, INPUT);
pinMode(led6, OUTPUT);
apagar_todo();
lcd.setCursor(0,0);
lcd.print("Iniciando...");
power_on();
iniciar();}
void loop() {
if(estado){
t_esperado = 3000;
unsigned long t_actual = millis();
if ((unsigned long)(t_actual - t_previo)>= t_esperado){
estado_Auto();
t_previo = millis(); } }
key = keypad.getKey();
if (key){
estado = false;
teclado(); } if(finTeclado){
if (t <= 5){
if (str_c == "*123" ){
lcd.setCursor(0,1);
lcd.print("desac..MOTOR:)");
delay(1500);
Serial.println("MOTOR off ;)");
digitalWrite(led4, HIGH);
delay(1000); } }else{
146
digitalWrite(led4, LOW);
delay(1000); } }
if(finTeclado){
if (t <= 5){
if (str_c == "*100" ){
lcd.setCursor(0,1);
lcd.print(str_c);
delay(1500);
lcd.clear();
Serial.println("Espere...");
delay(500);
configuracion();
finTeclado = false;
estado = true;
cadena ="";
str_c = "";
t = 0;
lcd.setCursor(0,0);
lcd.print("codigo correcto:");
lcd.setCursor(0,1);
lcd.print("Activando motor :)");
delay(1500);
lcd.clear();
digitalWrite(led2, LOW);// BOMBA DE COMBUSTIBLE NORMALMENTE
CERRADO
delay ( 1000);
digitalWrite(led4, LOW); //MOTOR DE ARRANQUE
delay(500);
digitalWrite(led3, LOW); //MOTOR DE ARRANQUE
delay(1300);
digitalWrite(led3, HIGH);
delay(1000);}
else{
if (str_c == "*911" ){
lcd.setCursor(0,0);
lcd.print("*911:");
lcd.setCursor(0,1);
lcd.print("activando alarma:)");
delay(1500);
lcd.clear();
Serial.println("Espere...");
delay(500);
modo_seguridad();
finTeclado = false;
estado = true;
cadena ="";
str_c = "";
147
t = 0; }else{
estado = true;
finTeclado = false;
apagar_todo();
Serial.println("Error 404");
cadena ="";
str_c = "";
t = 0; }}
}else{
Serial.println("Se excedio");
finTeclado = false;
estado = true;
t = 0;
cadena = "";
str_c = "";
//pantalla = true;
}}
if (Serial.available()){
switch (Serial.read()){
case 'l':
mensaje_sms();
break;
case 's':
mensaje_sms();
break; }
SIM900.write(Serial.read());
}
if(SIM900.available()>0){
menaje=SIM900.read();
Serial.print(menaje);
if(menaje== 'H'){
Serial.println("==>encender ala");
lcd.setCursor(0,0);
lcd.print("activando alarma:)");
delay(1500);
lcd.clear();
modo_seguridad();
estado = true;
cadena ="";
str_c = "";
t = 0;
}else{
if(menaje== 'H'){
modo_seguridad(); } }
if(menaje== 'L'){
Serial.println("==>apagar ala");
lcd.setCursor(0,1);
148
lcd.print("desac..alarma:)");
delay(1000);
modoSeguro = false;
}}}
void teclado(){
t = t + 1;
Serial.print(key);
lcd.setCursor(0,1);
lcd.print(key);
delay(900);
lcd.clear();
sms = key;
cadena += (char) sms;
if (key =='\n'){
finTeclado = true;
cadena.toCharArray(char_cadena,5);
str_c = char_cadena;
}}
void configuracion(){
Serial.println("config");}
void modo_seguridad(){
Serial.println("Seguridad");
modoSeguro = true;
do{
estadoActual = digitalRead(sensorPir);
if ((estadoAnterior==0)&&(estadoActual == 1)){
numEmergencias = numEmergencias + 1;
Serial.println(numEmergencias);
digitalWrite(led6,HIGH);
delay(100);
digitalWrite(led6, LOW);
digitalWrite(led1, HIGH);
delay(500);
digitalWrite(led2, HIGH);
delay(500);
digitalWrite(led4, HIGH);
delay(500);
estadoAnterior = estadoActual;
lcd.setCursor(0,1);
lcd.print(numEmergencias); }
if((estadoAnterior==1)&&(estadoActual == 0)){
numEmergencias = numEmergencias;
estadoAnterior = estadoActual; }
if((SIM900.available()>0)&&(numEmergencias == 1)||(numEmergencias ==2) ||
(numEmergencias == 3) || (numEmergencias == 4) ) {
boolean estadoEmerg = false;
menaje=SIM900.read();
149
if(menaje== 'L' ){
apagar_todo();
lcd.setCursor(0,0);
lcd.print("Iniciando...");
modoSeguro = false;
estadoEmerg = false;
numEmergencias = 0;
estadoActual = 0;
estadoAnterior = 0;
estado = true;
power_on();
iniciar();
break; }}
else{ if (numEmergencias == 4){
numEmergencias = 0;
boolean estadoEmerg = true;
digitalWrite(led6, HIGH);
delay(5000);
digitalWrite(led1, HIGH);
delay(5000);
digitalWrite(led2, HIGH);
delay(5000);
do{ t_actual = millis();
t_esperado = 26000;
if((unsigned long)(t_actual - t_previo) >= t_esperado){
Serial.println("Enviando mensaje");
mensaje_sms();
if (pantalla){
lcd.setCursor(0,0);
lcd.print("Modo_seguro *");
lcd.setCursor(0,1);
lcd.print(" "); }else{
lcd.setCursor(0,0);
lcd.print("Modo_seguro");}
t_previo = t_actual;}
if (SIM900.available()) {
Serial.write(SIM900.read());}
key = keypad.getKey();
if (key){
estado = false;
pantalla = true;
teclado();}
if(finTeclado){
if (t <= 5){
if (str_c == "*000" ){
lcd.setCursor(0,1);
lcd.print("desac..alarma:)");
150
delay(1000);
Serial.println("Emergencia off ;)");
estadoEmerg = false;
finTeclado = false;
modoSeguro = false;
estado = true;
cadena ="";
str_c = "";
t = 0;
digitalWrite(led6, LOW);
delay(1000);
digitalWrite(led1, LOW);
delay(20000);
digitalWrite(led2, LOW);
delay(20000);
}else{ estado = true;
finTeclado = false;
apagar_todo();
Serial.println("Error 404");
cadena ="";
str_c = "";
t = 0; }
}else{
Serial.println("Se excedio");
finTeclado = false;
estado = true;
lcd.setCursor(0,1);
lcd.print("Se excedio ");
t = 0;
cadena = "";
str_c = "";
}} }while(estadoEmerg);}}}while(modoSeguro);}
void estado_Auto(){
lcd.setCursor(0,0);
lcd.print("Estado:");
lcd.setCursor(5,1);
lcd.print("activado :)");
delay(1500);
lcd.clear();}
void apagar_todo(){
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH); }
//Sim900
int enviarAT(char* ATcommand, char* resp_correcta, unsigned int tiempo){
int x = 0;
151
bool correcto = 0;
char respuesta[100];
unsigned long anterior;
memset(respuesta, '\0', 100);
delay(100);
while ( SIM900.available() > 0) SIM900.read(); // Limpia el buffer de entrada
SIM900.println(ATcommand);
x = 0;
anterior = millis();
do {
if (SIM900.available() != 0){
if (x < 99) {
respuesta[x] = SIM900.read();
x++;
}else Serial.println("Desbordamiento!");
if (strstr(respuesta, resp_correcta) != NULL){
correcto = 1;}}} // Espera hasta tener una respuesta
while ((correcto == 0) && ((millis() - anterior) < tiempo));
Serial.println(respuesta);
return correcto;}
void iniciar(){
digitalWrite(led3, HIGH);
delay(10);
digitalWrite(led4, HIGH);
delay(10);
Serial.println("Conectando a la red...");
lcd.setCursor(0,0);
lcd.print("Conectando red");
delay (5000);
while ( enviarAT("AT+CREG?", "+CREG: 0,1", 1000) == 0 ){ }
Serial.println("Conectado a la red.");
enviarAT("AT+CLIP=1\r", "OK", 1000); // Activamos la identificacion de llamadas
enviarAT("AT+CMGF=1\r", "OK", 1000); //Configura el modo texto para enviar o
recibir mensajes
enviarAT("AT+CNMI=2,2,0,0,0\r", "OK", 1000);
while(enviarAT("AT+COPS?\r", "+COPS: 0,0,\" CLARO\"", 1000)== 1){}
Serial.println("Conectado.");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Conectado");}
void reiniciar(){
Serial.println("Reiniciando...");
power_off();
delay (5000);
power_on();}
void power_on(){
digitalWrite(led3, HIGH);
152
delay(1000);
int respuesta = 0;
if (enviarAT("AT", "OK", 2000) == 0){
delay(2000);
while (respuesta == 0) {
respuesta = enviarAT("AT", "OK", 2000);
SIM900.println(respuesta); }}}
void power_off(){
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
digitalWrite(led1, HIGH);
delay(5000);
digitalWrite(led2, HIGH);
delay(5000);}
void mensaje_sms(){
if (enviarAT("AT+CREG?", "+CREG: 0,1", 1000) == 1){ //comprueba la conexion a la
red
Serial.println("Enviando SMS...");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enviando SMS...");
delay(500); lcd.clear();
SIM900.println("ATD74068642;");
delay(100);
SIM900.println();
delay(10000);
SIM900.println("ATH");
delay(2000);
enviarAT("AT+CMGF=1\r", "OK", 2000); //Comando AT para mandar un SMS
sprintf(aux_str, "AT+CMGS=\"74068642\"", strlen(mensaje)); //Numero al que
vamos a enviar el mensaje
if(enviarAT(aux_str, ">", 10000) == 1){
enviarAT(mensaje, "OK", 10000);}
Serial.println("SMS enviado");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("SMS enviado ");
lcd.setCursor(0,1);
lcd.print("CODIGO DE DESACT ");
delay(1000);
lcd.clear();
}else{
reiniciar();
iniciar();
}}
153
ANEXO III. CÓDIGO DE DETECCIÓN DE HUELLAS DIGITALES
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
int getFingerprintIDez();
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup()
{
pinMode(12,OUTPUT);
digitalWrite(12,HIGH);
delay(100);
pinMode(11,OUTPUT);
digitalWrite(11,HIGH);
delay(200);
Serial.begin(9600);
Serial.println("prueba de dedo");
pinMode(13,OUTPUT);//declaro el pin que usare para control
// Ajusta velocidad del sensor
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("sensor de huella encontrado!");
} else {
Serial.println("sensor no encontrado:(");
while (1);
}
Serial.println("Waiting for valid finger...");
}
void loop()
{
digitalWrite(12,HIGH);
delay(100);
getFingerprintIDez();
delay(50);
digitalWrite(13,LOW);
}
uint8_t getFingerprintID() {
uint8_t p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println("No finger detected");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
154
Serial.println("Communication error");
return p;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
return p;
default:
Serial.println("Unknown error");
return p;
}
p = finger.image2Tz();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) {
Serial.println("Found a print match!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println("Did not find a match");
return p;
} else {
Serial.println("Unknown error");
return p;
}
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
}
int getFingerprintIDez() {
155
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();
if (p != FINGERPRINT_OK) return -1;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) return -1;
/////////comparo si es el numero asignado
if(finger.fingerID==22) {
Serial.println(" bienvenido YELSON ");
{
digitalWrite(13,LOW);
delay(100);
digitalWrite(13,HIGH);
delay(100);
digitalWrite(11,LOW);
delay(100);
digitalWrite(12,HIGH);
delay(700);
digitalWrite(12,LOW);
delay(1300);
}}
if(finger.fingerID==11) {
Serial.println(" bienvenido jose ");
{
digitalWrite(13,LOW);
delay(100);
digitalWrite(13,HIGH);
delay(100);
digitalWrite(11,LOW);
delay(100);
digitalWrite(12,HIGH);
delay(700);
digitalWrite(12,LOW);
delay(1300);
}}
if(finger.fingerID==0){
Serial.println(" bienvenido wilson "); {
digitalWrite(11,HIGH);
delay(3000);
}}
Serial.print("Found ID #");
Serial.print(finger.fingerID);
Serial.print(" with confidence of ");
Serial.println(finger.confidence);
return finger.fingerID;
}
156