You are on page 1of 106

Desarrollo de Sistema de Seguridad para Automviles con IOT y Smartphone

Lina Mara Toquica Ramrez


20102005082

Michael Leandro Guzmn Ruiz


20101005063

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS


FACULTAD DE INGENIERA
INGENIERA ELECTRNICA
Bogot D.C.
2016
DESARROLLO DE UN SISTEMA DE SEGURIDAD PARA AUTOMVILES CON IoT Y
SMARTPHONE

Proyecto de Grado
Para optar por el ttulo de Ingeniero Electrnico

ING. Julin Rolando Camargo Lpez


Director del proyecto

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS


FACULTAD DE INGENIERA
INGENIERA ELECTRNICA
Bogot D.C.
2016
NOTA DE ACEPTACIN

_________________________________________________
_________________________________________________
_________________________________________________

_________________________________________________
FIRMA DEL DIRECTOR DEL PROYECTO

_________________________________________________
FIRMA DEL REVISOR

Bogot, Enero de 2016


Acuerdo 19 de 1988 del Consejo Superior Universitario Artculo 177: La Universidad Distrital
Francisco Jos de Caldas no ser responsable por las ideas expuestas en esta tesis.
Dedico este proyecto primeramente a Dios por darme la oportunidad de vivir y
por estar conmigo en cada paso que doy, por fortalecer mi corazn e iluminar mi
mente y por haber puesto en mi camino a aquellas personas que han sido mi
soporte y compaa en mi vida.
A mi madre, Luz Elena, a mis abuelos, Gerardo y Eunice, y a mis tos Andrs,
Wilson y John Jairo por haberme apoyado en todo momento, por sus consejos,
sus valores, por la motivacin constante que me ha permitido ser una persona de
bien, pero ms que nada, por su amor.
A toda mi familia y a mis amigos, de quienes he recibido siempre cario y
apoyo sincero.
Lina Mara.

Dedico este proyecto a toda mi familia, especialmente a mis padres, Clara y Misael, a mis
abuelos, Magdalena y Jos Antonio y a mi ta Paola, gracias por todo el amor y el apoyo que me
han brindado.
Michael Guzmn

No creo que haya alguna emocin ms intensa para un inventor que ver alguna de sus
creaciones funcionando. Esa emocin hace que uno se olvide de comer, de dormir, de todo
Nikola Tesla
Agradecimientos

Este proyecto es el resultado del esfuerzo conjunto de los que formamos este grupo de trabajo,
por esto agradecemos sinceramente:

A Dios, por protegernos durante todo nuestro camino y darnos la sabidura y fuerzas para
superar obstculos y dificultades.

A nuestras familias, quienes a lo largo de toda nuestras vidas han apoyado y motivado nuestra
formacin acadmica, creyeron en nosotros y no dudaron de nuestras habilidades.

A nuestros profesores, quienes se tomaron el arduo trabajo de transmitirnos sus conocimientos


y quienes nos encaminaron por el camino correcto.

A nuestros compaeros de estudio y amigos, por su compaa, sus enseanzas y brindarnos


alegras a lo largo de nuestra formacin.

Al director del proyecto, por su confianza y orientacin a lo largo del proyecto para el
cumplimiento de los objetivos.

A la Universidad Distrital Francisco Jos de Caldas, la cual abri sus puertas a jvenes como
nosotros, preparndonos para un futuro competitivo y formndonos como personas de bien.
Resumen

El presente proyecto de grado pretende desarrollar una aplicacin Smartphone para


advertir cualquier irregularidad con la integridad de un automvil utilizando el internet de las
cosas (IOT). Para alcanzar dicho objetivo se propuso trabajar en varias etapas. Inicialmente, fue
necesario identificar el problema y por medio de ste buscar una solucin prctica, econmica y
accesible. Se establecieron los objetivos y la gua de trabajo en general. Se realiz la seleccin,
pruebas de funcionamiento de los sensores que fueron utilizados en el sistema propuesto y
conexin con el sistema embebido RASPBERRY PI B+ a travs de PYTHON. Luego se
implement el algoritmo para el reconocimiento facial que fue utilizado en la apertura de
puertas, tambin realizado en PYTHON. Una vez validado el comportamiento de lo
anteriormente descrito, se elabor la aplicacin mvil para la interaccin con el usuario, a travs
de ANDROID STUDIO, el entorno de desarrollo integrado para la plataforma Android.
Finalmente, se realiz la integracin de los sensores con el sistema embebido y as, con la
aplicacin para el completo funcionamiento del sistema de seguridad. Se hicieron pruebas del
sistema ubicando la red de sensores estratgicamente en un automvil, comprobando as el
funcionamiento de cada uno de los sensores y se realiz tambin la conexin establecida con el
sistema embebido encargado de subir los datos obtenidos a la nube, finalmente se verific el
correcto funcionamiento de la aplicacin que se encarga de generar alguna accin a causa de los
datos obtenidos de la nube. Se realiz la documentacin de cada una de las etapas y procesos que
se desarrollaron. Los resultados mostraron que el sistema presenta una muy buena respuesta, ya
que la interfaz de la aplicacin permite que su manejo sea sencillo, adems enva las alertas de
forma satisfactoria y las caractersticas tanto en hardware como en software de la raspberry pi
permitieron disear el sistema de apertura de puertas planteado.

Palabras Clave: Sensores, aplicacin Android, sistema embebido, Internet de las cosas
IOT, Raspberri PI.
Abstract
This project aims to develop a Smartphone application to warn the user about any
irregularity with the integrity of an automobile by using the internet of things (IOT). To achieve
this objective, it was proposed to work in several stages. Initially, it was necessary to identify the
problem and through it, to seek a practical, affordable and accessible solution. Objectives and
guiding work in general were established. The selection, performance tests of the sensors that
were used in the proposed system and connection to the embedded RASPBERRY PI B + through
PYTHON system was performed. Then, the facial recognition algorithm was used in the opening
of doors, and it was also made in PYTHON. Once validated the behavior described above, the
mobile application for user interaction was made through ANDROID STUDIO, integrated
development environment for the Android platform. Finally, the sensors integration with
embedded system was done and thus, with the application for the complete operation of the
security system. Tests placing the sensor network strategically in a car system were made,
checking the operation of each one of the sensors and the connection was also established with
the embedded system responsible of uploading to the cloud the obtained data, finally, the proper
functioning of the application responsible for generating an action was verified because of the
cloud data. Documentation of each of the stages and processes that developed was performed.
The results show that the system has a very good response, since the application interface allows
its simple handling. Also, it sends alerts satisfactorily and its hardware and software features in
raspberry pi allowed us to design the planned opening doors system.

Keywords: Sensors, Android application, embedded system, Internet of Things,


Raspberri PI.
Tabla de contenido
Introduccin ........................................................................................................................................ 14
1. Fundamentos Preliminares .......................................................................................................... 15
1.1. PLANTEAMIENTO DEL PROBLEMA: ........................................................................... 15
1.2. JUSTIFICACIN ................................................................................................................ 16
1.3. OBJETIVOS ........................................................................................................................ 18
1.3.1. OBJETIVO GENERAL .................................................................................................. 18
1.3.2. OBJETIVOS ESPECFICOS .......................................................................................... 18
1.4. METODOLOGA: ............................................................................................................... 18
1.4.1. FASE DE DISEO. ....................................................................................................... 18
1.4.2. FASE DE IMPLEMENTACIN. ................................................................................... 18
1.4.3. FASE DE EVALUACIN. ............................................................................................ 19
2. Marco Referencial ....................................................................................................................... 21
2.1. ESTADO DEL ARTE: ......................................................................................................... 21
2.2. MARCO TERICO. ........................................................................................................... 24
2.2.1. CONVERGENCIA DEL SECTOR AUTOMOTRIZ CON EL SECTOR ELECTRNICO.
24
2.2.2. REDES DE SENSORES. ............................................................................................... 26
2.2.3. PROCESAMIENTO DIGITAL DE IMGENES. ...................................................................... 30
2.2.4. SISTEMAS EMBEBIDOS. ............................................................................................ 33
2.2.5. INTERNET DE LAS COSAS IOT ................................................................................. 35
3. DISEO .......................................................................................................................................... 39
3.1. DIAGRAMA DE BLOQUES. ...................................................................................................... 39
3.2. ALCANCES Y LIMITACIONES........................................................................................ 41
3.2.1. ALCANCES: ................................................................................................................. 41
3.2.2. LIMITACIONES ........................................................................................................... 42
3.3. RECURSOS ......................................................................................................................... 42
3.3.1. HUMANOS. .................................................................................................................. 42
3.3.2. FSICOS Y MATERIALES............................................................................................ 43
3.3.3. ECONMICOS ............................................................................................................. 43
4. Implementacin ........................................................................................................................... 44
4.1. SELECCIN Y PRUEBA DE SENSORES. ....................................................................... 44
4.1.1. SENSOR CAPACITIVO TTP223B. ............................................................................... 44
4.1.2. SENSOR DE MOVIMIENTO PIR HC-SR501. ....................................................................... 45
4.1.3. SENSOR DE ULTRASONIDO HC - SR04 .................................................................... 46
4.1.4. ACELERMETRO ADLX345 ...................................................................................... 46
4.1.5. RFID .............................................................................................................................. 47
4.2. UBIDOTS Y RASPBERRY. ................................................................................................ 48
4.2.1. UBIDOTS ...................................................................................................................... 48
4.2.2. RASPBERRRY PI. .......................................................................................................... 50
4.3. SENSORES, PYTHON Y RASPBERRY. .......................................................................... 53
4.3.1. SENSOR CAPACITIVO TTP223B. ............................................................................... 53
4.3.2. SENSOR DE MOVIMIENTO PIR HC-SR501 ............................................................... 55
4.3.3. SENSOR DE ULTRASONIDO HC - SR04 .................................................................... 56
4.3.4. ACELERMETRO ADXL345 ...................................................................................... 57
4.4. RECONOCIMIENTO FACIAL Y RFID ............................................................................ 59
4.4.1. RFID .............................................................................................................................. 59
4.4.2. RECONOCIMIENTO FACIAL...................................................................................... 61
4.5. DESARROLLO DE LA APLICACIN ANDROID. ........................................................ 66
4.5.1. HERRAMIENTAS Y TECNOLOGAS UTILIZADAS PARA LA APLICACIN. ....... 66
4.5.2. FASES DE IMPLEMENTACIN .................................................................................. 68
5. Evaluacin.................................................................................................................................... 82
5.1. UBICACIN ESTRATGICA E LA RED DE SENSORES EN EL AUTOMVIL: ..... 82
6. Anlisis de Resultados ................................................................................................................. 84
7. Conclusiones ................................................................................................................................ 87
Trabajos Futuros ............................................................................................................................. 88
Referencias............................................................................................................................................ 89
ANEXOS.............................................................................................................................................. 94
ANEXO A-LIBRERAS SENSORES PYTHON. ........................................................................... 94
ANEXO B- IMPLEMENTACIN PYTHON .............................................................................. 101
ARQUITECTURA ANDROID STUDIO...................................................................................... 105
ANEXO E- VIDEO IMPLEMENTACIN DEL SISTEMA DE SEGURIDAD EN UN
AUTOMVIL. .............................................................................................................................. 105
ndice de Figuras
FIGURA 1. AUTOMATIC [10] ......................ERROR! MARCADOR NO DEFINIDO.
FIGURA 2. FUNCIONAMIENTO DEL SENSOR ULTRASONIDO [41]. ..................... 28
FIGURA 3. FUNCIONAMIENTO INTERNO SENSOR CAPACITIVO [42]. ............... 28
FIGURA 4. SISTEMA MICRO ELECTROMECNICO PARA LA ACELERACIN EN 1
EJE [43]. ................................................................................................................... 29
FIGURA 5. SENSOR DE MOVIMIENTO [60]. ............................................................. 29
FIGURA 6. LBP 3X3 [46]. ............................................................................................. 32
FIGURA 7. VECINOS CALCULADOS CON EL OPERADOR [46]. ............................ 32
FIGURA 8. IMGENES LBP DE UNA IMAGEN MODIFICADA ARTIFICIALMENTE [46].
................................................................................................................................. 33
FIGURA 9. DIAGRAMA DE BLOQUES SIMPLIFICADO DE UN MDULO TPICO DE SE
[34]. .......................................................................................................................... 35
FIGURA 10.ESCENA DEL EMERGENTE IOT [35]. .................................................... 36
FIGURA 11. LOGO UBIDOTS [50]. .............................................................................. 37
FIGURA 12. IMAGEN OBTENIDA DE UBIDOTS [52]. .............................................. 37
FIGURA 13. DIAGRAMA DE BLOQUES FUNCIONAMIENTO DEL SISTEMA DE
SEGURIDAD PARA AUTOMVILES. .................................................................. 39
FIGURA 14. CIRCUITO DEL SENSOR TTP223B [64]. ................................................ 44
FIGURA 15. SENSOR TTP223B [64]. ........................................................................... 44
FIGURA 16. CIRCUITO DEL SENSOR HC-SR501 [64.] ... ERROR! MARCADOR NO
DEFINIDO.
FIGURA 17. SENSOR PIR HC-SR501 (VISTA SUPERIOR E INFERIOR) [65] ........... 45
FIGURA 18. PRINCIPIO DE FUNCIONAMIENTO DEL SENSOR HC - SR04 [66].ERROR!
MARCADOR NO DEFINIDO.
FIGURA 19. SENSOR HC - SR04 [66]. ......................................................................... 46
FIGURA 20. DIAGRAMA DE BLOQUES DEL ADLX345 [67].ERROR! MARCADOR NO
DEFINIDO.
FIGURA 21. ACELERMETRO ADLX345 [67]........................................................... 47
FIGURA 22. MDULO RFID-RC522 ............................................................................ 48
FIGURA 23. INTERFAZ DE INSCRIPCIN EN UBIDOTS [68].................................. 48
FIGURA 24. INTERFAZ DE CREACIN DE FUENTES [69] ...................................... 49
FIGURA 25. CREACION DE UNA VARIABLE EN UBIDOTS [70]. ........................... 49
FIGURA 26. ID DE LA VARIABLE [70]. ..................................................................... 50
FIGURA 27. ID DE LA VARIABLE [60]...................................................................... 50
FIGURA 28.RASPBERRY PI MODELO B+ [61]. ......................................................... 52
FIGURA 29.DISTRIBUCIN DE LOS PINES DE LA RASPBERRY PI [61]. .............. 52
FIGURA 30. ADAPTADOR WIFI TP-LINK TL-WN725N ............................................ 53
FIGURA 31.CONEXIN DEL SENSOR CAPACITIVO TTP223B A LA RESPBERRY PI
................................................................................................................................. 54
FIGURA 32.CDIGO EN PYTHON PARA EL SENSOR TTP223B ............................. 54
FIGURA 33.VARIABLE DEL SENSOR CAPACITIVO EN UBIDOTS ........................ 55
FIGURA 34. CONEXIN DEL SENSOR DE MOVIMIENTO HC-SR501 .................... 55
FIGURA 35. CDIGO EN PYTHON DEL SENSOR DE MOVIMIENTO HC-SR501 .. 55
FIGURA 36. VARIABLE DEL SENSOR DE MOVIMIENTO EN UBIDOTS ............... 56
FIGURA 37. CONEXIN DEL SENSOR DE ULTRASONIDO HC - SR04 .................. 56
FIGURA 38. CDIGO DEL SENSOR DE ULTRASONIDO ......................................... 57
FIGURA 39. VARIABLE DEL SENSOR DE ULTRASONIDO EN UBIDOTS ............. 57
FIGURA 40. CONEXIN DEL ACELERMETRO ADXL345 .................................... 58
FIGURA 41. CDIGO DEL ACELERMETRO ADXL345ERROR! MARCADOR NO
DEFINIDO.
FIGURA 42. VARIABLE DEL SENSOR DEL ACELERMETRO EN UBIDOTSERROR!
MARCADOR NO DEFINIDO.
FIGURA 43. MEN PARA HABILITAR I2C EN RASPBERRY PI .............................. 58
FIGURA 44. CDIGO DEL ACELERMETRO ADXL345 ......................................... 59
FIGURA 45. VARIABLE DEL SENSOR DEL ACELERMETRO EN UBIDOTS....... 59
FIGURA 46. CONEXIN DEL MDULO RFID A LA RASPBERRY PI ..................... 60
FIGURA 47. MEN PARA HABILITAR SPI EN RASPBERRY PI .............................. 60
FIGURA 48. CDIGO DEL MDULO RFID................................................................ 61
FIGURA 49. MEN DE CONFIGURACIN DE RASPBERRY PI .............................. 62
FIGURA 50. CARACTERSTICAS DE DOS RECTNGULOS (A), CARACTERSTICAS
DE TRES RECTNGULOS (B), CARACTERSTICAS DE CUATRO RECTNGULOS
(C) [72] ..................................................................................................................... 62
FIGURA 51. CDIGO PARA RECONOCER ROSTROS. ............................................. 63
FIGURA 52. EXTRACCIN DEL ROSTRO EN LA IMAGEN ..................................... 63
FIGURA 53. CDIGO PARA REALIZAR EL ENTRENAMIENTO. ............................ 64
FIGURA 54. IMGENES PARA EL ENTRENAMIENTO DEL SISTEMA DE
RECONOCIMIENTO FACIAL. ............................................................................... 64
FIGURA 55. CDIGO PARA REALIZAR LA IDENTIFICACIN. ............................. 65
FIGURA 56. PRUEBA DEL RECONOCIMIENTO FACIAL DEL PERSONAJE
ENTRENADO. ......................................................................................................... 66
FIGURA 57. DATOS PORCENTUALES SOBRE LA DISTRIBUCIN DE VERSIONES DE
ANDROID, ENERO DE 2016 [73]. .......................................................................... 67
FIGURA 58. INTERFAZ GRFICA DE BIENVENIDA. .............................................. 68
FIGURA 59. PGINA 000WEBHOST.COM ERROR! MARCADOR NO DEFINIDO.
FIGURA 60. CREACIN DE CUENTA 000WEBHOST. .............................................. 69
FIGURA 61. CARACTERSTICAS Y UTILIDADES DE LA CUENTA. ..................... 70
FIGURA 62. CREACIN DE LA BASE DE DATOS MYSQL...................................... 70
FIGURA 63. ESTRUCTURA BASE DE DATOS. .......................................................... 71
FIGURA 64. CONEXIN CON LA BASE DE DATOS. ................................................ 72
FIGURA 65. ADMINISTRADOR DE ARCHIVOS PHP. .............................................. 72
FIGURA 66. COMPROBACIN CONEXIN BASE DE DATOS. ............................... 72
FIGURA 67. ESTAMENTO SQL INSERT..................................................................... 73
FIGURA 68. COMPROBACIN INSERCIN DATOS. .... ERROR! MARCADOR NO
DEFINIDO.
FIGURA 69. CONEXIN BASE DE DATOS Y CADENA JSON PARA OBTENER DATOS.
................................................................................................................................. 73
FIGURA 70. VALIDACIN DE CADENA JSON. ........................................................ 74
FIGURA 71.USUARIO REGISTRADO EN LA BASE DE DATOS. ............................. 75
FIGURA 72. (A) INGRESO USUARIO REGISTRADO. (B) USUARIO Y CONTRASEA
INCORRECTA. ........................................................................................................ 75
FIGURA 73. (A) INTERFAZ REGISTRAR. (B) TABLA CON LOS DATOS
PROPORCIONADOS POR EL USUARIO. ............................................................. 76
FIGURA 74- INTERFAZ GRFICA ACTIVAR SISTEMA. ......................................... 76
FIGURA 75. VARIABLE ACTIVAR SISTEMA.ERROR! MARCADOR NO DEFINIDO.
FIGURA 76. LIBRERAS UBIDOTS. ............................................................................ 77
FIGURA 77. OBTENCIN DE ID DEL USUARIO. ..................................................... 77
FIGURA 78. ID DE LA VARIABLE MOVIMIENTO. ................................................... 77
FIGURA 79. PERMISOS DE USO DE INTERNET [78]. ............................................... 77
FIGURA 80. CLASE ASYNCTASK PARA OBTENCIN DE VARIABLE MOVIMIENTO.
................................................................................................................................. 78
FIGURA 81. CLASE ASYNTASK PARA EL ENVO DE VARIABLES. ..................... 78
FIGURA 82. (A) ESPECIFICACIONES DE LA VARIABLE ONOFF. (B) ULTIMOS DATOS
OBTENIDOS DESDE ANDROID............ERROR! MARCADOR NO DEFINIDO.
FIGURA 83. CDIGO PARA ENVIAR NOTIFICACIONES. ....................................... 79
FIGURA 84. NOTIFICACIN EN LA BARRA DE ESTADO SENSOR DE MOVIMIENTO
ACTIVADO ............................................................................................................. 80
FIGURA 85. INTERFAZ DE ALERTAS........................................................................ 80
FIGURA 86. OPCIN SHARE (COMPARTIR). ............................................................ 81
FIGURA 87. IMAGEN OBTENIDA EN LA APLICACIN DESDE DROPBOX. ........ 81
FIGURA 88. VARIABLE ALARMA UBIDOTS OBTENIDA DESDE ANDROID.ERROR!
MARCADOR NO DEFINIDO.
FIGURA 90. UBICACIN DEL SENSOR DE ULTRASONIDO. .................................. 82
FIGURA 91. UBICACIN DEL SENSOR CAPACITIVO. ............................................ 82
FIGURA 92. UBICACIN DEL MDULO RFID. ........................................................ 83
FIGURA 93. UBICACIN DE LA CMARA. .............................................................. 83
FIGURA 89. IMGENES DE PRUEBA DE APLICACIN PARA EL SISTEMA DE
SEGURIDAD PARA AUTOMVILES. ..ERROR! MARCADOR NO DEFINIDO.

ndice de Tablas
TABLA 1. ESPECIFICACIONES TCNICAS MDULO WIFIERROR! MARCADOR NO
DEFINIDO.
TABLA 2. COSTOS. ....................................................................................................... 43
TABLA 3. RESPUESTA DE LOS SENSORES ULTRASONIDO Y ACELERMETRO.84
TABLA 4. NIVEL DE CONFIANZA DEL RECONOCIMIENTO FACIAL. .................. 86
TABLA 5. TIEMPO DE RESPUESTA DE LOS SENSORES A LAS NOTIFICACIONES.86
Introduccin

El uso de automviles es muy comn en el mundo actual, pues existe una gran
variedad de ellos en el mercado y es por esta razn que la industria automovilstica se
renueva a pasos agigantados realizando mejoras a sus productos. La mayora de estas mejoras
estn dirigidas al campo de la seguridad garantizando la integridad del automvil y
agregando un valor importante al vehculo [1].
Hasta la dcada de 1960 un auto convencional estaba bsicamente conformado por
componentes mecnicos; la integracin de componentes electrnicos inicia su ascenso en los
aos setenta En promedio, un nuevo vehculo integra ms de 40 millones de unidades de
control electrnico, 8 mil metros de cables y ms de 10 millones de lneas de cdigo software
[2]. Por esta razn se puede afirmar que el vehculo actual se parece cada vez ms a una
computadora y cada vez menos a los diseos surgidos al principio del siglo XX. Esta nueva
capacidad de los vehculos de procesar informacin y de adaptarse al ambiente convierte a
este sistema complejo en un sistema complejo adaptable [3].
El amplio desarrollo electrnico en el sector vehicular ha trado consigo mltiples
estudios y avances tecnolgicos en el rea de los sistemas de seguridad. Es por esto que el
presente proyecto documenta el diseo y la implementacin de un sistema de seguridad para
automviles, que a partir de una red de sensores conectada a un sistema embebido que se
encarga de subir a la nube informacin adquirida por los sensores (IoT) [4], permite advertir
al usuario que su vehculo est en peligro y puede realizar algn tipo de accin como activar
una alarma, obtener una imagen o advertir a la polica, por medio de una aplicacin para
Smartphone con plataforma Android. Adems el proyecto incluye tambin un sistema de
apertura de puertas por medio del reconocimiento facial y un lector y sensor RFID.
Finalmente este sistema es validado a partir de datos experimentales en un automvil y es
documentada cada etapa de desarrollo.
1. Fundamentos Preliminares

1.1. PLANTEAMIENTO DEL PROBLEMA:


A pesar de los importantes avances tecnolgicos, la cantidad de hurtos de automviles y
sus partes es exorbitantemente alta. En los ltimos cinco aos en Colombia se han denunciado
como hurtados 44.490 automotores (art. 239 del Cdigo Penal Colombiano Ley 599 de 2000);
por este delito se han capturado en el pas, en estos aos, 3.783 personas, y por receptacin,
13.259; adems, se han recuperado por la Polica un total de 34.272 automotores (1.267 de otros
pases).[5]

Esta problemtica se nutre, en gran medida, del aumento del parque automotor a nivel
mundial, la insercin del vehculo como parte de la cotidianidad y su uso cada vez ms
extendido; todo sumado a la connotacin social que tiene la adquisicin y uso de un vehculo
(considerado como un sinnimo de estatus). Este fenmeno de incremento es origen de recursos
para los criminales y organizaciones delincuenciales, y tambin fuente de atencin analtica para
los criminlogos y las autoridades [5].

Debido al alto costo del uso de parqueaderos pblicos es muy frecuente que la gente
estacione su auto en las aceras de la calle por cuestin de economa pero se expone a situaciones
de inseguridad y se arriesga la integridad del auto, haciendo importante el papel de los sistemas
de alarmas y seguridad de los vehculos.

Las ltimas generaciones de autos se hacen cada vez ms dependientes del uso de una
CPU que controla sus aspectos principales e interaccin con el usuario. Los vehculos actuales
(segn modelo) ya incorporan un sistema de alarma original de fbrica. Este puede ser bsico o
completo segn la gama del vehculo. Todas los sistemas de alarma tienen funciones de
monitoreo normalizadas que se basan en el monitoreo de puertas, cap y bal y disparo por
apertura. Tambin incluyen un sistema de disparo por rotura de cristales que puede ser por
sonido, ultrasonido, rotura de pista sensible, etc.
Los vehculos modernos incorporan tambin un sistema de bloqueo de arranque en la
llave original llamado transponder. Con este sistema el vehculo no puede ser encendido con otra
llave que no sea la original. Pero a pesar de la existencia de este tipo de sistemas de seguridad, a
nivel local los autos que posee la poblacin son en su mayora de gama media y gama baja por lo
que no tienen sistemas de seguridad completos y eficaces. Al instalar una alarma convencional se
requiere en muchas ocasiones intervenir el sistema elctrico, lo que puede causar conflictos y
costos elevados, y pueden llegar a ser ineficaces si el usuario se encuentra a una distancia
considerable.
Este trabajo propone un sistema de seguridad basado en el concepto del internet de las
cosas (IOT) que definido por CISCO es la reunin de personas, procesos, datos y cosas para
hacer conexiones en red ms relevantes y valiosas que nunca, convirtiendo la informacin en
acciones que crean nuevas capacidades, experiencias ms enriquecedoras, y oportunidades
econmicas sin precedentes para las empresas, los individuos y los pases [6].

Este sistema aprovechar los datos proporcionados por sensores estratgicamente


colocados en el auto que sern procesados y guardados en una nube en internet, a partir de un
sistema embebido que se conecta a internet a travs de un mdulo WIFI. Adems, este sistema
propone la apertura de las puertas por medio de reconocimiento facial de usuarios previamente
registrados, de modo tal que si un individuo no registrado intenta intervenir de alguna forma el
vehculo, el sistema har una captura de imagen del rostro de ste, para que as el propietario del
vehculo tome las acciones pertinentes con la informacin suministrada.

Para la interaccin con el usuario se desarrollar una aplicacin para Smartphone la cual
permitir dar aviso sobre algn riesgo para la integridad del auto, aprovechando de esta forma la
permanente conexin a internet mvil con que, segn el Ministerio de Tecnologas de la
Informacin y las comunicaciones (TIC), cuentan aproximadamente 5.170.887 usuarios en el
pas [7].

1.2. JUSTIFICACIN
El desarrollo de este proyecto propicia espacios de trabajo que cubren diferentes reas del
conocimiento todas ellas relacionadas directamente con la Ingeniera Electrnica. El desarrollo
de un sistema de seguridad para un automvil que permita, por medio de una aplicacin, para
Smartphone advertir cualquier irregularidad con la integridad del auto, garantiza poner en
prctica el manejo de tarjetas de desarrollo como microcontroladores y sistemas embebidos,
obtencin de datos conseguidos a partir de las herramientas que ofrece la instrumentacin
industrial como los sensores, y el uso del procesamiento digital de imgenes para reconocimiento
facial.

Por tal circunstancia, este proyecto debe encadenar las mltiples reas de conocimiento
de la ingeniera electrnica enfocndolas a un objetivo comn que es el desarrollar un sistema de
seguridad que mejorar las condiciones de vida de las familias que posean un vehculo en las
ciudades donde se presentan graves problemas de inseguridad.

La idea as se presenta como un desarrollo conjunto en el que se har un uso prctico de


lo aprendido durante las diferentes clases de la ingeniera y cuyo principio ser proporcionar
soluciones para la culminacin de este proyecto. Con el desarrollo de un sistema como el
propuesto, se puede intensificar e incentivar la aplicacin de la electrnica en la realizacin de
nuevos proyectos que ayuden a mejorar el bienestar del ser humano y dar soluciones prcticas a
problemas que se presentan en el da a da de la sociedad contempornea.

A nivel socio-econmico se puede observar que es evidente como el desarrollo de las


nuevas tecnologas ha influido directamente en la vida de las personas y el enfoque de la
sociedad, lo que hace indispensable la participacin de la ingeniera en los diferentes procesos
cotidianos que se llevan hoy da. Una manera de hacerlo es con la contribucin a los desarrollos
de las nuevas tecnologas y la implementacin de stas y esto se logra fundamentalmente por
medio de lo que el campo ingenieril aporta a la vida cotidiana. Con el desarrollo de un sistema
como el propuesto se puede innovar y dar solucin a un problema de seguridad cotidiana por
medio de los sistemas embebidos y el procesamiento digital de imgenes. Adems permite
brindar al usuario la comodidad y practicidad de tener las alertas en sus celulares o tabletas de
cualquier posible perjuicio a su automvil.

Asimismo, en el campo personal, la realizacin de este proyecto, tanto durante como en


la culminacin, dar herramientas para la formacin de habilidades como ingenieros a los
autores. Se busca la inclusin en el campo de la toma y adquisicin de informacin por medio de
imgenes y sensores, y el desarrollo de una aplicacin para Smartphone ya que estos sistemas
producen cierto nivel de inters y expectativa, por lo tanto tambin se hace necesario para los
autores adicionar conceptos afines. Por otra parte, es importante la realizacin de este proyecto
para contextualizar las necesidades de trabajar en equipo, y a su vez entender todo el proceso que
esto conlleva, como lo es la planeacin y ejecucin de los mtodos de trabajo, que adems de ser
importantes en la ingeniera hacen parte indispensable de la formacin como seres humanos en
diferentes situaciones de la vida cotidiana.

1.3. OBJETIVOS

1.3.1. OBJETIVO GENERAL

Desarrollar un sistema de seguridad basado en el concepto del internet de las cosas (IOT)
haciendo uso de la adquisicin de datos proporcionados por sensores instalados en el vehculo y
una aplicacin para Smartphone que permite la interaccin con usuario.

1.3.2. OBJETIVOS ESPECFICOS

Realizar la seleccin de los diferentes sensores adecuados para el sistema, haciendo


un estudio de la posible ubicacin espacial de estos quienes que conformaran la red y
que transmitirn datos adquiridos.
Realizar la conexin entre la red de sensores y el sistema embebido para adquirir y
procesar los datos.
Crear un sistema de apertura de puertas a partir del reconocimiento facial de usuarios
registrados a partir de la toma de imgenes por medio de una cmara digital.
Generar una aplicacin para Smartphone, la cual permite la interaccin entre el
usuario y el sistema de seguridad.

1.4. METODOLOGA:
Para alcanzar los objetivos propuestos en este proyecto que en general busca desarrollar
una aplicacin para Smartphone para advertir cualquier irregularidad con la integridad del
automvil, se propuso trabajar en tres fases. (i) Fase de diseo, (ii) Fase de Implementacin y,
(iii) Fase de Evaluacin.

1.4.1. FASE DE DISEO.


Para la creacin de esta idea fue necesario identificar el problema descrito anteriormente
y por medio de ste buscar una solucin prctica, econmica y accesible. En esta etapa se
describi el problema, los objetivos y la gua de trabajo en general as como se hizo necesaria la
escritura del anteproyecto presentado anteriormente.

1.4.2. FASE DE IMPLEMENTACIN.


En esta fase se presenta el aspecto prctico del proyecto en donde se desarroll nuestra idea
enmarcada en alcanzar el objetivo general. Para desarrollar el sistema se crearon varias etapas:

Realizar la seleccin de los diferentes sensores adecuados para el sistema, haciendo


un estudio de la posible ubicacin espacial de estos quienes que conformaran la red y que
transmitirn datos adquiridos. En esta etapa se realiz la seleccin y pruebas de diferentes
sensores que fueron utilizados en el sistema. De la misma forma se realizaron estudios previos al
medio donde se ubicaron las cmaras y sensores, como por ejemplo la iluminacin a la que
estarn expuestos los equipos y el suministro de energa para el correcto funcionamiento de
estos.

Conexin entre la red de sensores y el sistema embebido. Durante esta etapa se realiz
la conexin entre la red de sensores y el sistema embebido RASPBERRY PI.

Procesamiento de la informacin adquirida. Luego de realizar la conexin entre


sensores y la tarjeta de desarrollo, se prosigui a almacenar y procesar la informacin adquirida y
subirla a internet.

Toma y procesamiento de la imagen para el reconocimiento facial. Se adquirieron


imgenes por medio de la cmara para realizar el anlisis de parmetros y caractersticas de
rostros que se implementaran en el sistema para el correcto funcionamiento de apertura de
puertas.

Diseo de la aplicacin para Smartphone tipo Android que advierta cualquier


irregularidad para la integridad del automvil. En esta etapa se dise, implement y puso
en pruebas una aplicacin en la plataforma Android para telfonos inteligentes y tabletas que
advierta al usuario por medio de notificaciones que su auto est siendo intervenido de alguna
forma.
Integracin de la red de sensores, la tarjeta de desarrollo y la aplicacin. En esta
etapa se integraron cada una de las etapas anteriores para conformar el sistema completo.

1.4.3. FASE DE EVALUACIN.


Finalmente, una vez desarrollada la idea principal del proyecto, se hizo la consolidacin
de la informacin obtenida y se presentarn en forma de evidencias as:

- Prueba en un automvil.
Se har una presentacin a partir de un video, del sistema funcionado correctamente en
un automvil, demostrando todas las ventajas que conlleva. Se respondern preguntas y se
aclararn todas las dudas que puedan surgir frente al proceso de desarrollo y el funcionamiento
de nuestro sistema de seguridad.

- Documentacin.
A lo largo de las diferentes etapas mencionadas anteriormente se llev a cabo la
compilacin de los avances y resultados obtenidos en el transcurso del proyecto. Para ello se
tendrn en cuenta las referencias bibliogrficas requeridas durante el desarrollo del mismo, y se
prosigui a la redaccin de un informe que describa detalladamente la construccin desarrollo y
pruebas del sistema propuesto.
2. Marco Referencial

2.1. ESTADO DEL ARTE:


El presente estado del arte tiene como fin presentar de forma general los esfuerzos
realizados por diferentes instituciones, autores o grupos para solucionar el problema de
inseguridad presentado en el sector automovilstico. De esta forma se analizar dicha situacin
desde lo identificado en primer lugar en relacin al sector automotor, luego desde la
incorporacin de IOT en este campo tecnolgico y se concluir con la revisin de la literatura y
trabajos investigativos enfocados en estos campos.

Actualmente existen varios tipos de alarmas y sistemas de seguridad para automvil tales
como alarmas de sonido y parpadeo de luz, diversos sistemas que permiten bloquear el volante o
la palanca de cambios, sistemas con GPS, entre otros. La clasificacin de sistemas de seguridad y
alarmas que se brinda en la pgina web Moto Rusa en Argentina al usuario actualmente. Por
ejemplo, en cuanto a una alarma bsica se ofrece con servicio de sirena y bloqueo de motor que
se activa y se desactiva usando un control remoto manual. En las alarmas de dos vas, se presenta
un sistema de seguridad vehicular que puede contar con controles bidireccionales, estos mtodos
de alarma cuentan con un sistema de comunicacin muy eficiente entre el dispositivo de
seguridad y el mando que lo controla y asimismo, el mando recibe rdenes de la alarma y sta
tambin puede recibir rdenes del mando para conocer el estado del vehculo.

Moto Rusa tambin cuenta con el servicio de alarma con presencia en la cual el usuario
debe cargar consigo el mando remoto y la alarma se activa y desactiva solo con la proximidad
del control, sin presionar botones. Adems ofrece la posibilidad de instalar una alarma de 2 vas
GSM en la que combinan controles bidireccionales con sistemas de rastreo (GPS), en estos
sistemas el propietario recibe en su celular mensajes de texto (SMS) en su telfono celular y
puede controlar la alarma mediante el telfono va GMS. Finalmente, tambin se ofrece la alarma
con localizador GPS que se encarga de comunicar las coordenadas GPS del auto enviando SMS
al mvil.

Los sensores que incluyen las alarmas para auto pueden ser de diversos tipos. Sensores de
impacto que detectan cualquier golpe que reciba el auto. Sensores de proximidad estos mediante
un radar perimetral vigilan el entorno del auto, sin necesidad de que nadie la toque. Sensores de
movimiento e inclinacin que emplean detectores de mercurio para proteger al auto contra
ladrones con gra y hoy en da ya se encuentran disponibles los sensores por acelermetro que
detectan diferencias de aceleracin lo que hacen que se detecten movimientos en cualquier
sentido incluso protegiendo el robo de las ruedas del auto.

Adems se cuenta con sensores de corte de alimentacin que detectan si se desconecta la


batera. Sensores de botn para las puertas, bal y capot y sensores de Micrfono: para proteger
los cristales. Finalmente, otros sensores utilizados son los sensores volumtricos o de ultrasonido
que se encargan de proteger los cristales y si se deja un vidrio abierto no permite que nadie
introduzca una mano para robar algo dentro del vehculo y sensores de puesta en contacto que
detectan la puesta en marcha del vehculo[8].

A pesar de que en Colombia se consiguen este tipo de sistemas, la informacin que se


obtiene de las empresas es limitada por lo que se la informacin se obtiene de la pgina web de
la tiende Moto Rusa que ofrece informacin ms detallada sobre el tema.

En este momento, las aplicaciones del internet de las cosas son muy numerosas, ya que es
un concepto relativamente nuevo (ms que todo en Latinoamrica), cada da los ingenieros
experimentan ms y ms con nuevos posibles aplicativos en esta rea. Por ejemplo Dave Evans
de Cisco (2011) menciona algunos ejemplos en su documento Internet de las cosas Cmo la
prxima evolucin de Internet lo cambia todo [9]. A continuacin se mencionan estos ejemplos:

La vaca sagrada: en esta idea se plantea insertar sensores en las orejas del ganado, la idea
de este proceso es que el dueo del ganado pueda monitorear la salud y el movimiento de este
para poder obtener carne ms saludable y de mejor calidad. En promedio cada vaca genera
alrededor de 200 Megabytes de informacin al ao [9].

Bombay, historia de dos ciudades: En la ciudad de Bombay, los habitantes de Dharavi


pagan por el servicio de agua una suma de USD 1,12 por metro cbico. Los habitantes de
Warden Road pagan por este servicio USD 0,03. Vale la pena aclarar que la zona ms pobre
entre las anteriormente mencionada es Dhariva, y es claro que estos pagan 37 veces ms por el
agua, que es una necesidad humana bsica. Y la explicacin de porqu existe esta diferencia de
precios es que en la zonas ms pobres es ms costoso prestar servicios, ya que en estas zonas se
presentan situaciones de robo, infraestructuras ineficientes y prdidas de agua [9].

Gracias a sus sensores omnipresentes y a sistemas conectados, IOT proporcionar a las


autoridades ms informacin y control a fin de identificar y corregir estos problemas. De esta
forma, ser posible que los servicios pblicos funcionen con ms rentabilidad y as exista un
incentivo adicional para mejorar las infraestructuras de los vecindarios ms pobres. El aumento
de la eficacia permitir disminuir los precios [9].

Mejor calidad de vida para los ancianos: ya que la poblacin de ancianos es bastante
elevada, se puede crear un dispositivo porttil que permita monitorear los signos vitales de una
persona y enve alertas a los mdicos encargados de su salud, o pueda percibir si alguna persona
que algn impedimento tenga algn inobediente y pueda ser asistido [9].

Las anteriores son tan solo ideas que Dave Evans, de Cisco, menciona que se pueden
llevar a cabo con IOT. Como se mencion anteriormente las aplicaciones que puede surgir con
IOT son innumerables, existen algunas empresas que ya cuentan con varios dispositivos que
desarrollaron con este concepto. Un ejemplo de estas empresas es Postscapes [9]. Baby check,
traking deportivo, termostatos inteligentes, recordatorio de pastillas, domtica, traking de objetos
perdidos, pastillas inteligentes, enchufes conectados, son algunos de los dispositivos que
podemos encontrar en postscapes.com (2015).

En cuanto al rea automovilstica, se ha usado IOT para crear varios dispositivos, como
asistentes de conduccin y dispositivos que contribuyan a la seguridad. Algunos ejemplos de
dispositivos como estos sern mencionados a continuacin:

Automatic: es un asistente de conduccin inteligente que le puede ahorrar dinero en


gasolina, recuerda dnde estacion, e incluso pedir ayuda en coso de un accidente [10].

Carvoyant: es un dispositivo que va instalado debajo el salpicadero del coche. Al instante


su auto comenzar a enviar de forma inalmbrica los datos a la nube donde se puede supervisar
su estado mecnico o ver dnde y qu tan rpido el conductor est conduciendo en tiempo real
[10].

En cuanto a lo que con seguridad tiene que ver esta empresa fbrica algunos dispositivos
de rastreo y asistentes de conduccin como lo que se mencionan continuacin:

Carlock: da la ubicacin del vehculo al usuario por medio de GPS y enva los datos a su
telfono celular (smartphone) [10].

SplitSecond: este dispositivo se encarga de enviar alertas para enviar cualquier tipo de
asistencia requerida en caso de que el conductor sufra algn tipo de accidente [10]. Estos
dispositivos son de un tamao bastante cmodo y claramente su diseo permite una instalacin
simple en cualquier automvil. A pesar de que son dispositivos bastante tiles, en Colombia son
muy pocas las empresas que actualmente prestan servicios de este tipo, adems que sus limitan a
funciones concretas. Adems su precio es considerablemente alto ya que cada uno de estos
cuesta alrededor de unos 100 dlares americanos.

2.2.MARCO TERICO.

2.2.1. CONVERGENCIA DEL SECTOR AUTOMOTRIZ CON EL SECTOR


ELECTRNICO.
Durante el periodo 1960-1969, las empresas del sector automotriz experimentaron el uso
de componentes electrnicos. En 1960, Electric Autolite y Delco-Remy iniciaron el uso de
transistores con el propsito de regular la energa elctrica de los interruptores (breaker points).
En 1961, Joseph Lucas, Ltd., patent un sistema de encendido transistorizado que elimina la
vieja tecnologa de los interruptores. EN 1963, Delco introdujo de una manera comercial el
sistema de encendido transistorizado en los modelos Pontiac [13].
En este periodo resulta difcil la integracin de los componentes electrnicos en un
vehculo automotor. La industria requiere componentes pequeos, de bajo costo, confiables,
resistentes, no sensibles a las altas temperaturas y a la vibracin que proviene de los motores de
combustin y/o de las condiciones de las carreteras.
Los componentes grandes, como los bulbos al vaco (vacuum tube), son pesados,
voluminosos, frgiles y aaden calor al sistema; adems, son incapaces de operar en el ambiente
hostil de un motor de combustin interna, debido a los gases y los elevados niveles de vibracin
y temperatura (200F) del motor [14]. Por todo ello, fue necesario mejorar la tecnologa de los
componentes electrnicos; en consecuencia, se empez a requerir de nuevos diseos. Con el
desarrollo de los microprocesadores o unidades de control electrnico (ECU, por sus siglas en
ingls) se inici una fase comercial acelerada de integracin.
A principios de la dcada de 1970, se introdujo el sistema electrnico de inyeccin de
combustible; desde entonces el proceso no se ha detenido: aire acondicionado automtico (1971),
sistema electrnico de control de frenos (1971), sistema de encendido electrnico (1973) [13].
La integracin de los componentes electrnicos en la industria automotriz se produjo
como resultado de los siguientes sucesos: I) La intensa competencia al interior del sector
automotriz por producir vehculos con atributos novedosos. II) Las exigencias gubernamentales
de disminuir los niveles de emisin de contaminantes, lo cual se convierte en un poderoso
mecanismo de convergencia; el ejemplo paradigmtico es la transicin del carburador al sistema
electrnico de inyeccin de combustible (fuel inyection). III) Las mayores exigencias de
seguridad por parte de los usuarios y de los gobiernos de pases desarrollados provocan la
transformacin de diferentes reas funcionales del vehculo, por ejemplo, las bolsas de aire y el
sistema de frenos controlado electrnicamente. IV) Los usuarios demandan vehculos con mayor
confort, entretenimiento (CD, TV, ipod) e informacin (GPS). V) A partir de la crisis energtica
de inicios de 1970 y del incremento en los precios del petrleo, el mercado se inclin por
vehculos con mayor economa de combustible; esta situacin provoc reemplazar el carburador
y los sistemas mecnicos (pesados) por sistemas electrnicos. VI) La necesidad de resolver
desequilibrios tecnolgicos de la vieja tecnologa asociada con la mecnica y que slo el nuevo
paradigma de la electrnica puede resolver; por ejemplo, utilizando la antigua tecnologa no era
posible contar con un sistema de encendido ms eficiente y de bajo mantenimiento, pero el
sistema electrnico de encendido si lo hizo. VII) El incremento en la confiabilidad y la calidad
de los componentes electrnicos alientan la incorporacin de nuevos y ms complejos sistemas
que cumplen con un mayor nmero de funciones. VIII) la madurez de los procesos de
manufactura y ensamble de los componentes electrnicos permite disear componentes
electrnicos altamente especficos en el sector automotriz, como es el caso de la produccin del
sistema electrnico de inyeccin de combustible, pues requiere maquinaria de alta precisin y
confiabilidad para ser producido [13,14, 15].
De qu manera esta convergencia ha transformado la estructura de costos de los
vehculos? El valor promedio de los componentes electrnicos por vehculo en 1977 fue de 110
dlares, lo que representaba el 5% del costo total de materiales y componentes de un fabricante
de vehculos. Para el ao 2000, el 20% del costo de un vehculo se relacionaba con los
componentes electrnicos (Murray, 2009), lo que represent 1 800 dlares [16].
Actualmente, en un vehculo promedio los componentes electrnicos contribuyen con
ms del 40% del costo total [17]. En los vehculos hbridos, el peso de los componentes
electrnicos en la estructura de costos es an mayor: el contenido electrnico (incluyendo la
batera y el sistema de control de la batera) tiene un valor de 5 900 a 7 800 dlares; esto es, de
40 a 50% del costo total del vehculo hbrido [18]. Sintetizando, la sustitucin de componentes
mecnicos por componentes electrnicos origin un cambio importante en la estructura de costos
del vehculo; a continuacin se menciona este proceso.

2.2.2. REDES DE SENSORES.


Una red de sensores se compone de un gran nmero de nodos de sensores, que estn
densamente desplegadas ya sea dentro del fenmeno o muy cerca de ella. La posicin de los
nodos sensores no necesita ser diseado o pre-determinado. Esto permite el despliegue aleatorio
en terrenos de difcil acceso o las operaciones de socorro. Por otro lado, esto tambin significa
que los protocolos de redes de sensores y algoritmos deben poseer capacidades de auto-
organizacin. Otra caracterstica nica de las redes de sensores es el esfuerzo cooperativo de los
nodos sensores. Nodos sensores estn equipados con un procesador de a bordo. En lugar de
enviar los datos en bruto a los nodos responsables de la fusin, los nodos sensores usan sus
habilidades de procesamiento a nivel local realizan clculos sencillos y transmitir slo los datos
requeridos y parcialmente procesados.

Las caractersticas descritas anteriormente aseguran una amplia gama de aplicaciones


para redes de sensores. Algunas de las reas de aplicacin son la salud, militares y de seguridad.

Una de las limitaciones ms importantes de nodos de sensores es el requisito de bajo


consumo de energa. Nodos sensores llevan fuentes limitadas, por lo general, las fuentes
irremplazables. Por lo tanto, mientras que las redes tradicionales tienen como objetivo lograr una
alta calidad de servicio (QoS) disposiciones, los protocolos de red de sensores deben centrarse
principalmente en la conservacin de energa. Deben contar con mecanismos incorporados trade-
off que le dan la opcin de prolongar la vida til de la red a costa de rendimiento inferior o
superior retardo de transmisin al usuario final [20].
2.2.2.1. Factores que influyen en el diseo de redes de sensores.
Un diseo de red de sensores est influenciada por muchos factores, que incluyen la
tolerancia a fallos; escalabilidad; costos de produccin; entorno operativo; topologa de la red del
sensor; limitaciones de hardware; medios de transmisin; y consumo de energa. A continuacin
se describen algunos de los factores a tener en cuenta:

- Tolerancia a Fallos:
Algunos nodos de sensores pueden fallar o ser bloqueada por falta de energa, tener dao
fsico o la interferencia ambiental. El fracaso de los nodos de sensores no debe afectar a la tarea
general de la red de sensores. Esta es la cuestin de tolerancia fiabilidad o culpa. La tolerancia a
fallos es la capacidad de mantener las funcionalidades de redes de sensores sin ninguna
interrupcin debido a fallos en los nodos de sensores [20].

- Escalabilidad.

El nmero de nodos de sensores desplegados en el estudio de un fenmeno puede estar en


el orden de cientos o miles. Dependiendo de la aplicacin, el nmero puede llegar a un valor
extremo de millones. Los nuevos esquemas deben ser capaces de trabajar con este nmero de
nodos. Tambin deben utilizar la naturaleza de alta densidad de las redes de sensores [20].

- Costos de produccin
Dado que las redes de sensores consisten en un gran nmero de nodos de sensores, el
costo de un solo nodo es muy importante para justificar el coste global de las redes. Si el coste de
la red es ms caro que el despliegue de sensores tradicionales, tampoco costar-justific la red de
sensores. Como resultado, el costo de cada nodo sensor tiene que ser mantenido bajo [20].

- Limitaciones de hardware:

Un nodo sensor se compone de cuatro componentes bsicos: una unidad de deteccin,


una unidad de procesamiento, una unidad de transceptor y una unidad de potencia. Tambin
pueden tener componentes adicionales dependientes de aplicacin tales como un sistema
hallazgo ubicacin, un generador de energa y un movilizador [20].

2.2.2.2. Tipos de sensores:


En la actualidad se pueden encontrar diversas formas de captar informacin del ambiente en
el que se desarrolla la humanidad. Es por esto que existen mltiples tipos de sensores que pueden
ser utilizados con fines especficos. A continuacin se describen algunos de los sensores que
fueron utilizados en este proyecto.

- Sensor ultrasonido.
Los ultrasonidos son antes que nada sonido, exactamente igual que los que omos
normalmente, salvo que tienen una frecuencia mayor que la mxima audible por el odo humano.
sta comienza desde unos 16 Hz y tiene un lmite superior de aproximadamente 20 KHz,
mientras que nosotros vamos a utilizar sonido con una frecuencia de 40 KHz. A este tipo de
sonidos es a lo que llamamos Ultrasonidos.

El funcionamiento bsico de los ultrasonidos como medidores de distancia se muestra de


una manera muy clara en la siguiente figura, donde se tiene un receptor que emite un pulso de
ultrasonido que rebota sobre un determinado objeto y la reflexin de ese pulso es detectada por
un receptor de ultrasonidos [41]:

Figura 1. Funcionamiento del sensor ultrasonido [41].

- Sensor Capacitivo.
El sensor capacitivo se comporta como un capacitor abierto y el material a detectar acta
como dielctrico, tal y como se muestra en la figura 2 en donde se pueden ver las lneas de
campo.
Figura 2. Funcionamiento interno sensor capacitivo [42].

Cuando se acerca un material frente a los electrodos, las lneas de campo comienzan a
ejercer influencia sobre el material, realizndose as la polarizacin [42].

- Acelermetro.
Los acelermetros son dispositivos electromecnicos que detectan las fuerzas de
aceleracin, ya sea esttica o dinmica. Las fuerzas estticas incluyen la gravedad, mientras que
las fuerzas dinmicas pueden incluir vibraciones y movimiento. Los acelermetros pueden medir
la aceleracin en uno, dos o tres ejes. Los de tres ejes son ms comunes conforme los costos de
produccin de los mismos baja [43].

Figura 3. Sistema micro electromecnico para la aceleracin en 1 eje [43].

- Sensor de movimiento.

El sensor de movimiento es un dispositivo electrnico que acta cuando detecta


movimiento en el rea vigilada, sus utilidades son diversas, en algunos casos se utiliza para
seguridad y otras como automatizacin. Bsicamente hay dos tipos diferente segn su forma de
trabajo [44]:
Figura 4. Sensor de movimiento [60].

- Sensores RFID.

Todo sistema RFID se compone de un interrogador o sistema de base que lee y


escribe datos en los dispositivos y un "transponder" o transmisor que responde al
interrogador [45].

El interrogador genera un campo de radiofrecuencia, normalmente conmutando una


bobina a alta frecuencia. Las frecuencias usuales van desde 125 KHz hasta la banda ISM de
2.4 GHz, incluso ms. El campo de radiofrecuencia genera una corriente elctrica sobre la
bobina de recepcin del dispositivo. Esta seal es rectificada y de esta manera se alimenta el
circuito. Cuando la alimentacin llega a ser suficiente el circuito transmite sus datos. El
interrogador detecta los datos transmitidos por la tarjeta como una perturbacin del propio
nivel de la seal [45].

2.2.3. PROCESAMIENTO DIGITAL DE IMGENES.

El procesamiento digital de imgenes es un campo de investigacin abierto. El constante


progreso en esta rea no ha sido por s mismo, sino en conjunto con otras reas con las cuales
est relacionada como las matemticas, la computacin, y el conocimiento cada vez mayor de
ciertos rganos del cuerpo humano que intervienen en la percepcin y en la manipulacin de las
imgenes. Aunado a esto, la inquietud del hombre por imitar y usar ciertas caractersticas del ser
humano como apoyo en la solucin de problemas.

El desarrollo de los mtodos de procesamiento digital de imgenes tiene su origen en dos


reas principales de aplicacin: el mejoramiento de la informacin pictrica para la
interpretacin humana, y el procesamiento de datos de la imagen para la percepcin de mquina
autnoma en el que se incluyen etapas de transmisin y/o almacenamiento de estos datos. La
herramienta usada en el tratamiento digital de las imgenes son las matemticas; los conceptos
que se vern son bsicos. La computadora y los algoritmos que se implementan sobre stas
tambin tienen un papel muy importante en la manipulacin de las imgenes [31, 32, 33].

2.2.3.1. Deteccin de rostros.


El reconocimiento facial basado en las caractersticas geomtricas de una cara es
probablemente el mtodo ms intuitivo de reconocimiento facial. Uno de los primeros sistemas
de reconocimiento facial automatizado: puntos de marcador (posicin de los ojos, los odos, la
nariz) se utilizaron para construir un vector de caractersticas (distancia entre los puntos, ngulo
entre ellos). El reconocimiento se realiz mediante el clculo de la distancia eucldea entre
vectores de caractersticas de una imagen de sonda y de referencia. Tal mtodo es robusto frente
a cambios en la iluminacin por su naturaleza, pero tiene un gran inconveniente: el registro
exacto de los puntos del marcador es complicado, incluso con el estado de los algoritmos de arte.
Un vector de caractersticas 22-dimensional se utiliz y experimentos sobre grandes conjuntos de
datos han demostrado, que las caractersticas geomtricas por s solos no llevan la informacin
suficiente para el reconocimiento facial [46].

Recientemente surgieron varios mtodos para la extraccin de caractersticas locales.


Para evitar la alta dimensionalidad de los datos de entrada nicas regiones locales de una imagen
se describen las caractersticas extradas son ms robustas frente a la oclusin parcial,
iluminacin y pequeo tamao de la muestra. Los algoritmos utilizados para la extraccin de
caractersticas locales son Gabor Wavelets, discret Cosinus Transform y patrones binarios
locales. Es todava una cuestin abierta la investigacin de cul es la mejor manera de preservar
la informacin espacial en la aplicacin de una extraccin de caractersticas locales, ya que la
informacin espacial es informacin til potencialmente [46].

2.2.3.2. Reconocimiento facial (Patrones Binarios Locales).


La idea bsica de patrones binarios locales es resumir la estructura local de una imagen
mediante la comparacin de cada pxel con su vecindario. Se toma un pxel como el centro y el
umbral de sus vecinos en contra. Si la intensidad del pxel central es mayor-igual su vecino, a
continuacin, denotar con 1 y 0 en caso contrario. Se va a terminar con un nmero binario para
cada pxel, al igual 11001111. As que con 8 pxeles circundantes que va a terminar con 2 ^ 8
combinaciones posibles, llamados patrones binarios locales o, a veces referido como cdigos de
LBP. El primer operador LBP descrito en la literatura en realidad usa un barrio fija 3 x 3 como
muestra la siguiente figura.

Figura 5. LBP 3X3 [46].

Una descripcin ms formal del operador LBP se puede dar como:

(1)
Con (xc, yc) como pixel central con intensidad ic Y ip siendo la intensidad del pixel
vecino. Y s es la funcin definida como:

(2)
Esta descripcin le permite capturar los detalles de grano muy fino en las imgenes. De
hecho, los autores fueron capaces de competir con el estado de los resultados de la tcnica para la
clasificacin de la textura. Poco despus se public el operador se observ, que un vecindario
fijo deja de codificar datos que difieren en escala. As que el operador se extendi a usar un
vecino. La idea es alinear un nmero arbitrario de vecinos en un crculo con un radio variable, lo
que permite capturar los vecinos presentados en la siguiente figura
Figura 6. Vecinos calculados con el operador [46].

El operador es una extensin de los cdigos LBP originales, por lo que a veces se llama
LBP extendido (tambin conocida como Circular LBP). Si un punto de coordenadas en el crculo
no se corresponde con las coordenadas de imagen, interpolacin el punto de LET. La informtica
tiene un montn de esquemas de interpolacin inteligentes, la aplicacin Open CV hace una
interpolacin bilineal:

(3)
Por definicin el operador LBP es robusto frente a las transformaciones de escala de
grises montonas. Podemos comprobar fcilmente esto mirando la imagen LBP de una imagen
modificada artificialmente como se muestra en la figura 7
Figura 7. Imgenes LBP de una imagen modificada artificialmente [46].

2.2.4. SISTEMAS EMBEBIDOS.


Un sistema embebido (SE) o sistema empotrado lo vamos a definir como un sistema
electrnico diseado especficamente para realizar unas determinadas funciones, habitualmente
formando parte de un sistema de mayor entidad. La caracterstica principal es que emplea para
ello uno o varios procesadores digitales (CPUs) en formato microprocesador, micro controlador
o DSP lo que le permite aportar inteligencia al sistema anfitrin al que ayuda a gobernar y del
que forma parte. En el diseo de un sistema embebido se suelen implicar ingenieros y tcnicos
especializados tanto en el diseo electrnico hardware como el diseo del software. A su vez
tambin se requerir la colaboracin de los especialistas en el segmento de usuarios de tales
dispositivos, si hubiese lugar a ello [34].

2.2.4.1. Hardware.
Normalmente un sistema embebido se trata de un mdulo electrnico alojado dentro de
un sistema de mayor entidad (host o anfitrin) al que ayuda en la realizacin tareas tales como
el procesamiento de informacin generada por sensores, el control de determinados actuadores,
etc. El mdulo o tarjeta, adems puede haber sido desarrollado para satisfacer una serie de
requisitos especficos de la aplicacin a la que est dirigido. Entre stos, podemos citar:
- Tamao: por lo general deber ser reducido, aunque tambin es posible que se desee
que adopte un formato estndar: PC-104, Eurocard, etc.
- Margen de temperatura especifico del mbito de aplicacin: o Gran consumo (0C
hasta 70C) o Industrial y automocin. Mrgenes de temperatura hasta 125C o
Aeroespacial o Militar o Electro medicina.
- Consumo de energa: En aplicaciones en las que es necesario el empleo de bateras, se
buscar minimizar ste.
- Robustez mecnica: Existen aplicaciones donde los dispositivos sufren un alto nivel de
vibraciones, golpes bruscos, etc. En el diseo se deber tener en cuenta dicha
posibilidad.
- Coste: No es lo mismo disear un producto a medida con pocas unidades que disear
un producto para el competitivo mercado del gran consumo. La calibracin de los
costes es esencial y es tarea de los ingenieros de diseo [34].

2.2.4.2. Software.
En lo que se refiere al software, se tendrn requisitos especficos segn la aplicacin. En
general para el diseo de un SE no se dispone de recursos ilimitados sino que la cantidad de
memoria ser escasa, la capacidad de clculo y dispositivos externos ser limitada, etc. Podemos
hablar de las siguientes necesidades:

Trabajo en tiempo real.


Optimizar al mximo los recursos disponibles.
Disponer de un sistema de desarrollo especfico para cada familia de microprocesadores
empleados.
Programacin en ensamblador, aunque en los ltimos aos, los fabricantes o empresas
externas han mejorado la oferta de compiladores que nos permiten trabajar en lenguajes
de alto nivel, tales como C [34].

2.2.4.3. Arquitectura.
En la figura 8 se muestra un diagrama de bloques de lo que puede ser un modelo general
de un sistema embebido [34].
Figura 8. Diagrama de bloques simplificado de un mdulo tpico de SE [34].

2.2.5. INTERNET DE LAS COSAS IOT

IoT se refiere a un paradigma emergente que consiste la reunin de personas, procesos,


datos y cosas para hacer conexiones en red ms relevantes, convirtiendo la informacin en
acciones que crean nuevas capacidades, experiencias ms ricas y oportunidades econmicas sin
precedentes para las empresas, los individuos y los pases [35, 36]

El origen de la IoT se ha atribuido a los miembros de la Auto-ID Center del MIT, la


comunidad de desarrollo de la identificacin por radiofrecuencia (RFID), alrededor del ao 2000.
Su idea era visionaria: se dirigen a descubrir informacin sobre un objeto etiquetado navegado en
una direccin de internet o de una entrada de base de datos correspondiente a un RFID particular.
Para hacer frente a la idea anterior, trabajaron en la elaboracin del cdigo electrnico de
producto (EPC), es decir, un identificador universal que proporciona una identidad nica para
cada objeto fsico, con el objetivo de difundir el uso de la RFID en redes en todo el mundo. Hoy
en da, el concepto de las cosas es ms general y no se limita a RFID solamente. Una cosa puede
ser cualquier objeto real/fsica (por ejemplo, RFID, sensores, actuadores, elementos inteligentes),
sino tambin una entidad digital / virtual, que se mueve en el tiempo y el espacio y puede ser
identificada por los nmeros de identificacin asignados, nombres o direcciones de ubicacin
[37].

Por lo tanto, las cosas son fciles de ser ledas, reconocibles, localizables, direccionales y
o controlable a travs de Internet. Por otra parte, esta nueva generacin de dispositivos
inteligentes son gracias a los componentes electrnicos integrados que les permiten sentir como
la computacin, comunicacin, y se integran a la perfeccin con el entorno circundante. La
asociacin ''un dispositivo / una funcin'' desaparece, sino todo el conjunto de objetos se
convierte en el lugar en el que se activa la funcin, resultando todo ampliamente distribuidos
[39].

El escenario emergente IOT se representa en la Fig. 9 Los dispositivos inteligentes se


forman el llamado enjambre sensorial y sern la mayora del sistema. Sern muy heterogneas en
trminos de capacidades de recursos, tiempo de vida y tecnologas de la comunicacin. Se
superarn los dispositivos clsicos tales como telfonos inteligentes y tabletas, que, por el
contrario, formarn un camino para acceder a Internet. En el ncleo, en lugar de tener sistemas
de computacin tradicionales, la nube proporcionar la abstraccin de un conjunto de equipos y
ofrecer servicios de computacin y almacenamiento. Se prev que el nmero de cosas
conectada superar los 7 billones de dlares en 2025, con una estimacin de unos 1.000
dispositivos por persona. Una parte de ellos ser usable [27], pero la mayora estar en la
infraestructura.

Figura 9. Escena del emergente IoT [35].

2.2.5.1. UBIDOTS
El internet de las cosas, una tendencia mundial que integra en la red millones de datos
desde mquinas, dispositivos mviles e interfaces para conectar a los objetos, se ha hecho
realidad en Colombia con UBIDOTS, una empresa que busca facilitar la vida diaria de personas
y compaas [50].
Figura 10. Logo UBIDOTS [50].

UBIDOTS es un servicio en la nube que permite almacenar datos de sensores y


visualizarlos en tiempo real a travs de una pgina web. Tambin se puede configurar alertas
Email o SMS dependiendo del valor de tus sensores, como por ejemplo "Envame un SMS
cuando mi garaje est abierto" o "Envame un Email cada vez que haya un movimiento en mi
habitacin"[51].

UBIDOTS posee una amplia coleccin de dispositivos compatibles entre ellos se


encuentra RASPBERRY PI y Arduino. Tambin posee amplias libreras y conexiones con
lenguajes de programacin como Python, Java, PHP, entre otros. Para la extraccin y utilizacin
de las variables que all se encuentran se puede hacer conexin con aplicaciones Android por
medio de Android Studio.

Figura 11. Imagen obtenida de UBIDOTS [52].

2.2.6. APLICACIONES ANDROID

Las aplicaciones se desarrollan habitualmente en el lenguaje Java con Android Software


Development Kit (Android SDK), pero estn disponibles otras herramientas de desarrollo,
incluyendo un Kit de Desarrollo Nativo para aplicaciones o extensiones en C o C++, Google
App Inventor, un entorno visual para programadores novatos y varios marcos de aplicaciones
basadas en la web multitelfono. Tambin es posible usar las bibliotecas Qt gracias al
proyecto Necesitas SDK.
El desarrollo de aplicaciones para Android no requiere aprender lenguajes complejos de
programacin. Todo lo que se necesita es un conocimiento aceptable de Java y estar en posesin
del kit de desarrollo de software o SDK provisto por Google el cual se puede descargar
gratuitamente [53]. Todas las aplicaciones estn comprimidas en formato APK, que se pueden
instalar sin dificultad desde cualquier explorador de archivos en la mayora de dispositivos.
2.2.6.1. ANDROID STUDIO
Android Studio es un entorno de desarrollo integrado para la plataforma Android. Fue
anunciado el 16 de mayo de 2013 en la conferencia Google I/O, y reemplaz a Eclipse como el
IDE oficial para el desarrollo de aplicaciones para Android. La primera versin estable fue
publicada en diciembre de 2014 [53].
Est basado en el software IntelliJ IDEA de JetBrains, y es publicado de forma gratuita a
travs de la Licencia Apache 2.0. Est disponible para las plataformas Microsoft Windows, Mac
OS X y GNU/Linux [53].
- Plataformas soportadas.
Android Studio est disponible para Windows 2003, Vista, 7, 8 y GNU/Linux, tanto plataformas
de 32 como de 64 bits, Linux con GNOME o KDE y 2 GB RAM mnimo y Mac OS X, desde
10.8.5 en adelante [53].
2.2.6.2. Bases de datos.
Una base de datos es una coleccin de informacin organizada de forma que un programa
de ordenador pueda seleccionar rpidamente los fragmentos de datos que necesite. Una base de
datos es un sistema de archivos electrnico [57].
- MySQL.
Es un sistema de gestin de bases de datos relacional, multihilo y multiusuario con ms
de seis millones de instalaciones [58]. MySQL AB desde enero de 2008 una subsidiaria
de Sun Microsystems y sta a su vez de Oracle Corporation desde abril de 2009 desarrolla
MySQL como software libre en un esquema de licenciamiento dual [58].

3. DISEO
Para la creacin de esta idea fue necesario identificar el problema descrito anteriormente
y por medio de ste buscar una solucin prctica, econmica y accesible. En esta etapa se
describi el problema, los objetivos, alcances, limitaciones y la gua de trabajo en general as
como se hizo necesaria la escritura del anteproyecto escrito anteriormente.

3.1. DIAGRAMA DE BLOQUES.


A continuacin se presenta en la figura 12 el diseo propuesto en un diagrama de bloques
y una descripcin general de la funcionalidad de cada bloque.

Figura 22. Diagrama de Bloques funcionamiento del sistema de seguridad para automviles.

- Sensores.
Los sensores ubicados en el vehculo tendrn la funcin de, en primer lugar, detectar las
posibles perturbaciones en el medio en donde estn ubicados y luego se encargarn de convertir
estas perturbaciones en seales elctricas que sern utilizadas para generar alertas. Tambin se
har uso de una cmara que permita por medio de reconocimiento facial la apertura de puertas.
- Cmara digital.
La cmara utilizada en este proyecto se encarga de obtener imgenes para poder entrenar el
sistema de reconocimiento facial y de obtener imagen del entorno donde se encuentra el vehculo
cada cierto tiempo. La cmara utilizada es la cmara estndar para RASPBERRY Pi que cuenta
con una gran resolucin y alta definicin para aplicaciones de seguridad [63].

A continuacin se enuncian las caractersticas de la cmara seleccionada para el proyecto:


Tamao: 25mm x 20mm x 9mm
Peso: 3g aproximadamente
Resolucin: 5 Megapxeles.
Tamaos de imagen: 2592 x 1944 imgenes estticas,
Video: 1080p, 720p60 o 640x480p60/90 a 30 fps. (marcos por segundo) [63].

- Administracin de energa.
Se requiere una fuente de alimentacin que provea a los dispositivos (sensores, y tarjeta
principal) ubicados en el automvil, energa para su activacin y funcionamiento. Por esta razn
se utilizar la fuente de energa con la que cuentan los automviles, para el suministro de energa
que necesita cada dispositivo. En caso de que los sensores estn demasiado alejados de la fuente
principal, se podra considerar una fuente de energa externa de ser necesario.

- Tarjeta principal (RASPBERRY Pi):


La Tarjeta principal utilizada es RASPBERRY PI B+ [61], es la encargada de obtener los
datos recolectados por los sensores y subirlos a la nube (UBIDOTS), haciendo uso del lenguaje
de programacin PYTHON. Su funcin tambin es obtener datos proporcionados por la
aplicacin Android que se encuentran en la nube, para realizar diferentes acciones como obtener
imgenes con la cmara integrada a la tarjeta, encender una alarma sonora conectada de igual
forma a esta y encender y apagar el sistema. La tarjeta principal es utilizada para depurar el
algoritmo de deteccin de rostros y de reconocimiento facial.

Ya que el dispositivo embebido no cuenta con una tarjeta de red WIFI, se utilizar un
adaptador de red para proporcionarle conexin inalmbrica haciendo uso de uno de los puertos
USB. Se seleccion el adaptador de 150Mbps Wireless N Nano USB AdapterTL-WN725N.

- Almacenamiento en la nube (UBIDOTS):


UBIDOTS es un servicio en la nube que le permite almacenar y analizar informacin de
sensores en tiempo real [64]. De esta manera, la informacin adquirida por los sensores
seleccionados anteriormente y que han sido conectados a la tarjeta de desarrollo RASPBERRY
PI B+ [61], sern almacenados en este servidor aprovechando las facilidades de conexin entre la
RASBERRY y UBIDOTS.

Otra de las funcionalidades de UBIDOTS es la de poder obtener y visualizar las variables


anteriormente almacenadas a partir de una aplicacin Android, y desde esta igualmente se
pueden enviar variables para que sean almacenadas.

- Interaccin con el usuario. (Aplicacin Android).


Para notificar al usuario sobre alguna perturbacin en el vehculo, se disea una aplicacin
para telfonos mviles, inicialmente en el sistema operativo Android. Esta aplicacin est
directamente conectada a la base de datos que proporciona UBIDOTS, donde estn almacenadas
las variables obtenidas de los sensores.

A partir de los datos obtenidos de UBIDOTS, la aplicacin permitir tomar alguna clase de
decisin al respecto, como por ejemplo, si el vehculo est siendo intervenido, se puede obtener
una imagen, encender una alerta o enviar un mensaje de auxilio por medio de redes sociales y
mensajes de texto. Este tipo de acciones se realizan enviando datos a la nube que son adquiridos
de all por la RASPBERRY.

3.2. ALCANCES Y LIMITACIONES.

3.2.1. ALCANCES:
El proyecto abarca nicamente la implementacin del sistema de seguridad en
automotores de gama media y baja en Bogot, Colombia. A pesar de que existen
opciones similares en el mercado, la gran mayora de ellas se encuentran centradas
nicamente para los usuarios de carros gama alta.
Se plantea un diseo ms acorde a las herramientas con las que cuentan las personas en
Colombia actualmente para la solucin de la inseguridad citadina. Como ya se ha
mencionado anteriormente, existe un grupo cada vez mayor de personas en Colombia que
tienen la posibilidad de permanecer conectados a internet por medio de un Smartphone o
una Tablet y estas seran las formas de utilizar el servicio de alertas.
3.2.2. LIMITACIONES
El proyecto se restringe a realizar la parte electrnica del sistema de seguridad y
realizar una prueba ubicando los sensores adecuadamente en el auto, pero no se
implementar la parte mecnica del vehculo, como abrir partes internas del auto
para ingresar los cables, debido a que no se cuenta con el conocimiento requerido
para este trabajo.
El proyecto se limita a un sensor de cada tipo para realizar la prueba y
presentacin. Para trabajos futuros se pueden implementar dos o ms de ellos.
Este sistema se limita a las personas que tengan la capacidad econmica de
costear la conexin a internet para su correcto funcionamiento. En caso de que el
usuario no tenga conectividad a la red, quedara excluido de la proteccin del
sistema puesto que las notificaciones llegaran tarde y se perdera su verdadera
funcin.
En la primera parte de la creacin de sistema, slo se implementar para el
sistema operativo Android. Aunque se tiene planeado que a un futuro se pueda
implementar para otros sistemas operativos, en principio se disear
exclusivamente para el sistema Android, debido a que es ms simple, ms
econmico y tiene un mayor nmero de consumidores.
El sistema de apertura de puertas a partir del reconocimiento facial estar
diseado nicamente para automviles cuyas puertas cuentan con mecanismos de
apertura manual. Para los automotores que cuentan con apertura con asistencia
elctrica, no ser posible de implementar debido a que las puertas estn
conectadas a la unidad de control del auto.

3.3. RECURSOS

3.3.1. HUMANOS.
Se cont con la asesora del ingeniero Julin Camargo, y el desarrollo del proyecto se
llev a cabo por los estudiantes de ingeniera electrnica de la Universidad Distrital Michael
Guzmn y Lina Toquica. Adems de las contribuciones hechas por el revisor en la evaluacin
que realiz, Ingeniero Gustavo Puerto.

3.3.2. FSICOS Y MATERIALES


Se har necesaria la adquisicin de los sensores seleccionados, la tarjeta de desarrollo,
mdulo WIFI y la cmara digital. Se contar en la etapa de implementacin con un televisor que
tenga puerto HDMI para poder programar la RASPBERRY Pi por medio de la interfaz grfica.
De igual forma se necesita para el control de la tarjeta de desarrollo un cargador de 5V que
suministre la energa, un mouse y un teclado. Se cont con un automvil Renault Megane sedan
modelo 2002 para realizar las pruebas del proyecto e instalar los dispositivos.

3.3.3. ECONMICOS
Para el desarrollo adecuado del sistema propuesto, se contar con el presente
presupuesto en el que se muestra el clculo de los gastos para la obtencin de los equipos y
materiales necesarios para lograr el objetivo tal y como se muestra a continuacin:

Tabla 1. COSTOS.

EQUIPO O MATERIAL PRECIO


RASPBERRY Pi 1 modelo B+. $ 120.000
Adaptador de red WIFI. $ 20.000
Cmara. $ 80.000
Sensores. $ 100.000
Elementos adicionales. $ 50.000
TOTAL $ 370.000

4. Implementacin

4.1. SELECCIN Y PRUEBA DE SENSORES.


Para la seleccin de los sensores que se implementaron el sistema se tuvieron en cuenta
varios aspectos fundamentales. Como primer aspecto, se tuvo en cuenta la dimensin de stos
para facilitar la instalacin sobre el automvil. Como segundo aspecto, se buscaron sensores
digitales ya que la RASPBERRY Pi no cuenta con un ADC (conversor analgico digital). Por
ltimo, se tuvo en cuenta que stos contaran con un tiempo de respuesta elevado para poder
generar las alertas a tiempo. A continuacin se muestran los sensores seleccionados.

4.1.1. SENSOR CAPACITIVO TTP223B.


Este sensor bsicamente funciona como un pulsador, cuando su superficie entra en
contacto con la piel, la capacitancia cambia y al superar un umbral determinado enva un 1
lgico. Las figuras 13 y 14 muestran el circuito del sensor TTP223b y la estructura fsica [64].

Figura 33. Circuito del sensor TTP223B [64]. Figura 44. Sensor TTP223B [64].

Como se muestra en la figura 14 el sensor cuenta con 2 pines de alimentacin (VCC y


GND) y un pin que proporciona la seal digital. Las caractersticas principales de este sensor se
enumeran a continuacin [64].

Voltaje de operacin: 2V ~ 5.5V DC


Corriente de operacin mxima: 3uA (VDD=3V)
Tiempo de respuesta mximo: 220mS (VDD=3V)
Ajuste de sensibilidad con capacitor externo CS
Dimensiones: 23*23 mm

Todas sus caractersticas facilitan su uso en este proyecto ya que el voltaje de


alimentacin puede ser proporcionado por la RASPBERRY Pi, es de muy bajo consumo, su
tiempo de respuesta es lo suficientemente bajo para esta aplicacin y su tamao ayuda a que la
instalacin en cualquier superficie sea simple.

4.1.2. SENSOR DE MOVIMIENTO PIR HC-SR501.


Cualquier cuerpo que tenga una temperatura mayor a 0K (273,15C) emite radiacin
infrarroja. El sensor HC-SR501 es un sensor PIR (sensor infrarrojo pasivo), estos sensores son
capaces de detectar pequeos cambios de en los niveles de radiacin infrarroja, lo que se puede
traducir en deteccin de movimiento. Al detectar movimiento este sensor enva un 1 lgico [65].
En la figura 16 se muestra la estructura fsica del mismo.

Figura 56. Sensor PIR HC-SR501 (vista superior e inferior) [65]

Este sensor cuenta con 2 pines de alimentacin (+power y GND) y un pin que
proporciona la seal digital de salida. A continuacin se muestran las principales caractersticas
de este sensor.

Voltaje de operacin: 4V ~ 20V DC


Corriente de operacin: 65mA
Corriente en reposo: 50uA
Tiempo de respuesta: 200mS
Ajuste de sensibilidad con potencimetro
Ajuste de tiempo con potencimetro
Dimensiones: 32*24 mm
Salida en alto 3.3V / salida en bajo 0V
Angulo de deteccin: < 110 [65].

El hecho de que el sensor tenga la posibilidad de graduar la sensibilidad con un


potencimetro, que presente bajo consumo en estado de reposo, que sea flexible para su
polarizacin y que tenga un pequeo tamao ayuda a que el uso de este sensor sea muy simple.
4.1.3. SENSOR DE ULTRASONIDO HC - SR04
Este sensor emite una rfaga de ultrasonido en una frecuencia que est sobre el rango
audible, luego recibe la seal (eco) que retorna cuando esta rfaga golpea sobre alguna
superficie. El HC SR04 permite obtener el tiempo en retornar la seal y conociendo la
velocidad del sonido (340m/s aproximadamente) se puede calcular la distancia a la que est
algn objeto. En la figura 17 su estructura fsica [66].

Figura 67. Sensor HC - SR04 [66].

Este sensor cuenta con 4 pines (figura 21), 2 pines de alimentacin (Vcc y GND), un pin
que se encarga de recibir el pulso que le indica cundo emitir la rfaga de ultrasonido (Trig) y el
pin que enva la seal al recibir la rfaga (echo). A continuacin se muestran las principales
caractersticas del HC - SR0.

Voltaje de operacin: 5V DC
Corriente de operacin: 15mA
Tiempo de respuesta: < 100mS
Dimensiones: 45*20*15 mm [66].

Gracias a su principio de funcionamiento, este sensor proporciona medidas que brindan


una precisin suficiente para la implantacin en este proyecto.

4.1.4. ACELERMETRO ADLX345


El ADXL345 es un pequeo y delgado acelermetro de 3 ejes de ultra baja potencia. Con
medicin de alta resolucin (13 bits) que puede medir hasta 16 g. Los datos se pueden obtener
a travs de interfaz SPI de 3 o 4 hilos o I2C. A continuacin la estructura fsica del acelermetro
[67].
Figura 78. Acelermetro ADLX345 [67].

Este acelermetro cuenta con 8 pines, 2 pines de alimentacin (VCC y GND), dos pines
de interrupcin (INT1 e INT2) y los pines de los protocolos de comunicacin, para SPI se
utilizan los pines CS, MOSI, MISO y SCK y para I 2C se utilizan los pines SDA y SCL y sus
principales caractersticas son [67].

Voltaje de operacin: 2V ~ 3.6V DC


Corriente de operacin: 40uA
Corriente en reposo: 2uA
Deteccin de pequeos impulsos
Deteccin de cada libre
Dimensiones: 3*5*1 mm [67].

Adems de su bajo consumo y su pequeo tamao el ADXL345 es adecuado para la


implementacin en el proyecto ya que permite medir la aceleracin dinmica ocasionada por
algn movimiento o impacto.

4.1.5. RFID
En el desarrollo del proyecto se utiliza el lector RFID-RC522 como primera validacin.
Este mdulo da la opcin de controlarse con SPI o comunicacin serial UART. Este dispositivo
cuenta con 64 bloques de memoria que permiten su configuracin y cada bloque tiene una
capacidad de 16 bytes. Al realizar la lectura de un dispositivo pasivo obtiene su nmero de serie
(5 valores hexadecimales), sus principales caractersticas son las siguientes [71].

Voltaje de operacin: 3.3V DC


Corriente de operacin mxima: 30mA
Frecuencia de operacin: 13.56MHz
Distancia de lectura: 0~60mm}
Velocidad mxima: 10Mbit/s
Dimensiones: 40*60 mm

Figura 89. Mdulo RFID-RC522

4.2. UBIDOTS Y RASPBERRY.


4.2.1. UBIDOTS

Creacin de una cuenta.

Para ser un usuario en UBIDOTS se debe ingresar un nombre usuario, una contrasea y
un correo electrnico.

Figura 90. Interfaz de inscripcin en UBIDOTS [68]

Una vez se es usuario de UBIDOTS se puede proceder a crear fuentes y variables.


Creacin de fuentes.
Las fuentes son los dispositivos con los que se suben o descargan datos de sensores. En la
figura 21 se muestra la interfaz que tiene la pgina para crear una fuente.
Figura 101. Interfaz de creacin de fuentes [69]

Creacin de variables.

El siguiente paso es crear las variables en la fuente creada, al crear la variable se tendr dar un
nombre, adems se pueden poner otros datos opcionales como la unidad de la variable, una
descripcin y un tag como se muestra en la siguiente figura.

Figura 112. Creacin de una variable en UBIDOTS [70].

A cada variable creada, UBIDOTS le asigna un ID nico que servir para modificar o
acceder a la variable.
Figura 123. ID de la variable [70].

Obtencin de la llave de usuario (API KEY).

Al crear una cuenta UBIDOTS le asigna al usuario una llave nica (Api Key) que es
necesaria para identificar al usuario al momento de subir o descargar datos de las variables.

Figura 134. Id de la variable [60].

4.2.2. RASPBERRRY PI.


RASPBERRY PI es un ordenador de placa reducida o (placa nica) (SBC) de bajo coste
desarrollado en Reino Unido por la Fundacin RASPBERRY Pi, con el objetivo de estimular la
enseanza de ciencias de la computacin en las escuelas [47].

Se entiende que es un producto con propiedad registrada pero de libre uso. En cambio el
software s es cdigo abierto, siendo su sistema operativo oficial una versin adaptada de
Debian, denominada RaspBian, aunque permite otros sistemas operativos, incluido una versin
de Windows 10.
En realidad, se trata de una diminuta placa base de 85 x 54 milmetros (del tamao
aproximado de una tarjeta de crdito) en el que se aloja un chip Broadcom BCM2835 con
procesador ARM hasta a 1 GHz de velocidad (modo Turbo haciendo overclock), GPU
VideoCore IV y 512 Mbyte de memoria RAM (Las primeras placas contaban con slo 256MB
de RAM).

En funcin del modelo que escojamos, dispondremos de ms o menos opciones de


conexin, aunque siempre dispondremos de al menos un puerto de salida de video HDMI y otro
de tipo RCA, minijack de audio y un puerto USB 2.0 (modelos A y A+, B dispone de dos USB y
B+ y RASPBERRY Pi 2 disponen de 4 USB) al que conectar un teclado y ratn.

En cuanto a la conexin de red, disponemos de un puerto Ethernet (los modelos A y A+


no disponen de puerto Ethernet) para enchufar un cable RJ-45 directamente al router o podemos
recurrir a utilizar cualquier adaptador inalmbrico WIFI compatible. En este caso, eso s,
conviene que nos decantemos por la RASPBERRY Pi que incorpora dos puertos USB, ya que de
lo contrario, no podremos conectar el teclado y el ratn [48].

La RASPBERRY Pi B+ no sera una versin renovada completamente de la


RASPBERRY PI. Aunque si tiene algunos cambios respecto a su predecesor, el producto
contina la misma lnea de diseo tanto en el aspecto econmico como tecnolgico. Estas son
sus especificaciones [49]:

Procesador: Broadcom BCM2835 SoC full HD (el mismo que su predecesor, el


RASPBERRY Pi B)
Memoria RAM: 512 MB SDRAM 400 MHz (igual que el modelo B, nos hubiera gustado
que llegue al GB)
Almacenamiento: tarjeta microSD (anteriormente aceptaba memorias SD)
Puertos USB: cuatro puertos USB 2.0 (Se sumaron dos puertos USB ms)
Energa: 600mA hasta 1.8A a 5V (Se mejora el consumo de energa y la calidad de audio)
Pines GPIO: 40 (en el RASPBERRY Pi B haba 26) [49].
Figura 145.RASPBERRY Pi modelo B+ [61].

Una vez instalado el sistema operativo Linux, en este caso Raspbian, se puede acceder a
los pines de propsito general y otros componentes de la tarjeta con IDLE que es un ambiente de
desarrollo integrado para el lenguaje de programacin de cdigo abierto Python. En la figura 26
se muestra la distribucin de los 40 pines en la RASPBERRY PI B+.

Figura 156.Distribucin de los pines de la RASPBERRY PI [61].

- Instalacin de UBIDOTS en RASPBERRY PI


Para poder utilizar las libreras que ofrece UBIDOTS para el manejo de la informacin de
los sensores en RASPBERRY, se deben instalar los componentes necesarios. Para realizar la
instalacin basta con ejecutar los siguientes comandos desde consola en la RASPBERRY.

Actualizar los componentes de la RASPBERRY PI

$ sudo apt-get update


$ sudo apt-get upgrade

Estos dos comandos permiten actualizar los componentes de la tarjeta, entre estos Python.
Instalacin de las libreras de UBIDOTS

$ sudo apt-get install python-setuptools


$ sudo easy_install pip
$ sudo pip install ubidots

Una vez termine la instalacin, se puede usar las libreras de UBIDOTS en Python.
- WIFI en RASPBERRY Pi
A pesar de que las RASPBERRY cuenta con un puerto Ethernet que le proporciona
conexin a internet, en este proyecto se requiere que la conexin de la tarjeta a internet sea de
forma inalmbrica. Por esta razn se ha instalado en uno de los puertos USB 2.0 el adaptador
WIFI TL-WN725N de Tp-link.

Figura 167. Adaptador WIFI Tp-link TL-WN725N

Para poder conectar la RASPBERRY PI a internet utilizando este mdulo se debe


descarga e instalar el driver del mismo como se muestra a continuacin.

$ wget https://dl.dropboxusercontent.com/u/80256631/8188eu-20151215.tar.gz
$tar xzf 8188eu-20151215.tar.gz
$./install.sh

Una vez se ejecutan estas lneas en la consola de la RASPBERRY, el driver queda instalado y al
reiniciar la RASPBERRY pi el mdulo proporciona conexin inalmbrica a internet.

4.3. SENSORES, PYTHON Y RASPBERRY.


Para cada uno de los sensores se realizaron pruebas donde se suben los datos obtenidos por
estos a Ubidots. Como se muestra a continuacin.

4.3.1. SENSOR CAPACITIVO TTP223B.


La conexin de este sensor a la RASPBERRY PI es muy sencilla, se escogi como fuente
de alimentacin 3,3 V lo que permite que la una conexin directa al pin de la tarjeta, y se tom el
pin nmero 40 como para recibir la seal que se obtiene del sensor.
Figura 178.Conexin del sensor Capacitivo TTP223B a la RESPBERRY PI

Luego de realizar la conexin del sensor con la tarjeta, se procede a realizar el cdigo en
Python, como se observa en la figura 29.

Figura 189.Cdigo en Python para el sensor TTP223B

En el cdigo, se define el pin que se va a usar y se configura como entrada. Luego se


asignan a las variables api y cap el valor de la llave que UBIDOTS asigna y el ID de la variable
que se cre en UBIDOTS para este sensor. Para detectar la seal del sensor se utiliz una
interrupcin en el pin 40, cada vez que la tarjeta detect un flanco de subido en el pin 40 ejecuta
la funcin CAP_ON que se muestra en la figura 16. Cada vez que se activa la interrupcin, el
programa sube el valor 6 a UBIDOTS.
Figura 190.Variable del sensor capacitivo en UBIDOTS

4.3.2. SENSOR DE MOVIMIENTO PIR HC-SR501


Segn los requerimientos de este sensor el voltaje de operacin minino es de 4V, por lo
que se utiliza uno de los pines de la RASPBERRY PI que provee 5V para alimentar este sensor y
se utiliza el pin 11 para recibir la seal que entrega el sensor como se muestra en la figura 31.

Figura 31. Conexin del sensor de movimiento HC-SR501

Luego de realizar la conexin correspondiente se realiza el cdigo en Python.

Figura 202. Cdigo en Python del sensor de movimiento HC-SR501

En el cdigo se define el pin 11 de la RASPBERRY PI como entrada para seal del


sensor, luego se define la llave de usuario de UBIDOTS y el ID de la variable que se cre en
UBIDOTS para el sensor de movimiento. Ya que este sensor enva un 1 lgico al activarse el
cdigo que se realiz en Python utiliza una interrupcin, cada vez que el sensor detecte
movimiento, la RASPBERRY PI detectar un flanco de subida y guardar en la variable de
UBIDOTS el valor 8.

Figura 213. Variable del sensor de movimiento en UBIDOTS

4.3.3. SENSOR DE ULTRASONIDO HC - SR04


Este sensor tiene un voltaje de operacin de 5V, por lo que se utiliza uno de los pines de la
RASPBERRY que provee 5V para alimentar este sensor y se utilizaron los pines 7 y 12 para el
pin echo y el pin trigger respectivamente como se muestra en la figura 34.

Figura 224. Conexin del sensor de Ultrasonido HC - SR04

Para realizar el cdigo en Python se tuvo en cuenta los fundamentos de funcionamiento


de este sensor. Que se describe en los siguientes pasos.

Enviar un Pulso 1 lgico de al menos de 10uS por el Pin Trigger.


El sensor enva 8 Pulsos de 40KHz (Ultrasonido) y coloca su salida Echo en alto, se debe
detectar este evento e iniciar un conteo de tiempo.
La salida Echo se mantiene en alto hasta recibir el eco reflejado por el objeto a lo cual el
sensor pone el pin Echo en bajo. En este momento se debe terminar de contar el tiempo.
La distancia es proporcional a la duracin del pulso y se puede calcular con las siguiente
frmula (Utilizando la velocidad del sonido = 340m/s):

(3)

Figura 235. Cdigo del sensor de ultrasonido

Adems de plasmar en el cdigo los pasos que se mencionaron anteriormente, en este


tambin se asignan variables que contienen la llave de UBIDOTS y el ID la variable que se cre
en UBIDOTS para el sensor de ultrasonido. En caso de que la distancia sea menor a 10 cm se
sube a UBIDOTS el valor de 5 en caso contrario se sube el valor de 0.

Figura 246. Variable del sensor de ultrasonido en UBIDOTS

4.3.4. ACELERMETRO ADXL345


Para este sensor el voltaje de operacin debe estar entre 2V y 3.6V por lo que se toma
uno de los pines de 3.3V de la RASPBERRY PI para alimentar el sensor. En este caso para
recibir la informacin que el sensor proporciona se utiliza el protocolo de comunicacin I2C por
lo que los pines SDA y SCL del acelermetro se conectan a los pines SDA y SCL de la
RASPBERRY PI (pines 3 y 5 respectivamente).

Figura 37. Conexin del Acelermetro ADXL345

Antes de realizar el cdigo hay que tener en cuenta que la interfaz I2C de la
RASPBERRY pi est encendida, este proceso se realiza en el men de configuracin de
RASPBERRY pi en la opcin de Advanced optinon. El men se despliega digitando el comando
sudo raspi-config en consola.

Figura 25. Men para habilitar I2C en RASPBERRY PI

Teniendo el acelermetro conectado a la RASPBERRY PI se procede a realizar el cdigo.


Para que el acelermetro enve informacin, se deben modificar los registros DATA_FORMAT,
BW_RATE y POWER_CTL de ste para configurar aspectos como la tasa de transmisin, el
nmero de bits de resolucin y adems para habilitar la transmisin. Estos registros se establecen
enviando los valores que deben tener por medio de la RASPBERRY PI. Para realizar esta
configuracin se utiliz una librera que realiza esta tarea como se muestra en el anexo A, de esta
forma el cdigo implementado se reduce considerablemente.

Figura 269. Cdigo del acelermetro ADXL345

En el cdigo se crea un objeto (adxl) con la clase ADXL345() que realiza la


configuracin del acelermetro y obtiene los valores de los ejes. Se asignan a las variables api y
acel los valores de la llave de UBIDOTS y del ID de la variable que se cre en UBIDOTS para el
acelermetro. Cuando se obtiene el valor de los ejes se sube el valor del eje Y multiplicado por
cien (para tener un mayor a cero) a UBIDOTS.

Figura 270. Variable del sensor del acelermetro en UBIDOTS

4.4.RECONOCIMIENTO FACIAL Y RFID


Para realizar el sistema de apertura de puertas se utilizaron dos mtodos que lo habilitan,
de esta forma se tiene doble validacin y un sistema ms seguro.

4.4.1. RFID

Para este proyecto se escogi como protocolo de comunicacin el SPI para realizar la
conexin entre la RASPBERRY Pi y el lector RFID-RC522. Se deben conectar los pines SDA,
SCK, MOSI y MISO a los pines SDA (pin24), SCK (pin 23), MOSI (pin 19) y MISO (pin 21) y
el pin de reset del mdulo RFID a un pin de propsito general de la RASPBERRY (pin 22), La
conexin se muestra en la siguiente figura.

Figura 281. Conexin del mdulo RFID a la RASPBERRY PI

Antes de realizar el cdigo se debe encender el mdulo SPI de la RASPBERRY PI en el


men de configuracin de RASPBERRY.

Figura 292. Men para habilitar SPI en RASPBERRY Pi

Ya que se deben configurar los registros TModeReg, TPrescalerReg, TReloadReg,


ModeReg, entre otros registros que se encargan de definir aspectos del mdulo como modos de
transmisin y recepcin y los ajustes para el temporizador interno, se utiliza una librera externa
que se encarga de realizar esta configuracin como se muestra en el anexo A. utilizando esta
librera el cdigo implementado se simplifica como se muestra en la siguiente figura.
Figura 303. Cdigo del mdulo RFID.

En el cdigo se definen tanto la llave de usuario de UBIDOTS como el ID de la variable


que se cre para el mdulo, adems se define el ID, obtenido previamente, del sensor RFID que
se va a utilizar como primera validacin del sistema de apertura de puertas. Luego en un bucle se
espera a que el lector detecte algn sensor y obtenga su ID, en caso de que este corresponda se
guarda el valor 7 en UBIDOTS.

4.4.2. RECONOCIMIENTO FACIAL


Para realizar la segunda validacin se opta por utilizar un sistema de reconocimiento
facial. Para implementar este sistema se utiliza una cmara diseada especialmente para
RASPBERRY PI gracias a las ventajas que tiene sobre una cmara USB convencional. Se debe
activar el mdulo en el men de configuracin de RASPBERRY para que la RASPBERRY pi
permita utilizar la cmara. Dicho men se despliega digitando l siguiente comando desde
consola.

$ Sudo raspi-config
Figura 314. Men de configuracin de RASPBERRY PI
Para realizar el reconocimiento facial se instal el software Open CV. Open CV es
software libre, y permite hacer anlisis digital de imgenes. La instalacin se ilustra en el anexo
B. A continuacin se ensean los pasos que se siguieron para lograr hacer el reconocimiento
facial:

- Deteccin del rostro en la imagen


Open CV utiliza un algoritmo llamado Haar-like features (caractersticas de Haar), este
algoritmo permite obtener informacin de una zona concreta de la imagen mediante operaciones
aritmticas simples, lo que ayuda a reducir carga computacional. El algoritmo usa 3
caractersticas de Haar.

Caracterstica de dos rectngulos


Caracterstica de tres rectngulos
Caracterstica de cuatro rectngulos

(a) (b) (c)


Figura 45. Caractersticas de dos rectngulos (a), Caractersticas de tres rectngulos (b), Caractersticas de
cuatro rectngulos (c) [72]

En todos los casos anteriores la obtencin del valor de la caracterstica consiste en la resta
entre el valor de una o ms subzonas dentro de la zona analizada. Es decir, se resta el valor que
se le una subzona, mediante la integral sumada, con el de otra subzona. En las figuras anteriores
se puede ver como la comparacin consiste en la resta entre las zonas grises y las zonas blancas
de la imagen. [72]

Open CV permite realizar este algoritmo y tiene un porcentaje de acierto bastante alto. El
cdigo que se implement para realizar el reconocimiento del rostro en una imagen se muestra
en la siguiente figura.

Figura 326. Cdigo para reconocer rostros.

En el cdigo se debe importar el la direccin en donde se encuentra el archivo que


permite realizar el algoritmo de Haar y las libreras de Open CV. Luego se adquiere una imagen
con la cmara de RASPBERRY Pi, en caso que en la imagen se detecte un rostro, ste se extrae
de la imagen utilizando el mtodo que se mencion anteriormente.

Figura 337. Extraccin del rostro en la imagen


- Reconocimiento facial.
Open CV permite hacer el reconocimiento a travs de varios algoritmos. En este proyecto
se utiliza el algoritmo Local Binary Pattern [46]. Para realizar el proceso de reconocimiento de
un rostro en particular, se debe realizar primero una etapa de entrenamiento.

Para hacer la etapa entrenamiento se debe tener una base de datos con imgenes de la
persona, el algoritmo encuentra caractersticas particulares en las imgenes que conforman la
base de dato y este entrenamiento se puede guardar en un archivo.

Figura 348. Cdigo para realizar el entrenamiento.

En el cdigo se define una funcin (get_images_and_labels) que se encarga de convertir


todas las imgenes a blanco y negro, identificar el rostro y extraerlo, luego convertir las
imgenes a matrices y guardarlas en un arreglo. De esta forma se entrega este arreglo a la
funcin de entrenamiento de Open CV y luego, este se guarda en el archivo micara.

Figura 359. Imgenes para el entrenamiento del sistema de reconocimiento facial.


Habiendo terminado el entrenamiento, se realiza un cdigo que adquiera una imagen con
la cmara, y compare los datos obtenidos en el entrenamiento con los obtenidos de la imagen
recin tomada. El cdigo que se implement para realizar la identificacin se muestra a
continuacin.

Figura 360. Cdigo para realizar la identificacin.

El cdigo adquiere una imagen con la cmara, la convierte a blanco y negro, extrae el
rostro en la imagen, lo convierte a una matriz y carga el entrenamiento que se hizo previamente.
Ya con los datos del entrenamiento se puede realizar la prediccin, la cual arroja un valor de
confiabilidad, con el que se puede discriminar si es la persona de la imagen recin adquirida es la
misma persona de la base de datos.
Figura 371. Prueba del Reconocimiento facial del personaje entrenado.

4.5. DESARROLLO DE LA APLICACIN ANDROID.

4.5.1. HERRAMIENTAS Y TECNOLOGAS UTILIZADAS PARA LA APLICACIN.

- Android.
El sistema operativo Android presentaba un inconveniente importante a la hora de decidir
cmo empezar a crear la aplicacin. Este problema se denomina segmentacin y consiste en la
existencia en el mercado de una gran cantidad de versiones distintas de Android instaladas en los
dispositivos que adems presentan trabas relacionadas con la retro compatibilidad entre ellas. A
diferencia de Apple, cuyo sistema operativo es exclusivo del dispositivo que la propia compaa
fabrica, Android se instala en una gran variedad de marcas y son estas las que controlas las
versiones a instalar en el telfono, produciendo que sigan en funcionamiento versiones antiguas
que no son compatibles con las aplicaciones si estas se desarrollan directamente para las
versiones ms modernas del sistema operativo.

En la poca de inicio de este proyecto el ltimo lanzamiento del sistema operativo era
Android Marshmallow 6.0, pero esta versin es inestable por el momento. En el grafico
mostrado a continuacin puede verse la cuota de mercado de cada versin de Android a fecha de
enero de 2016, cuatro meses antes del inicio de este proyecto [74].
Figura 382. Datos porcentuales sobre la distribucin de versiones de Android, Enero de 2016 [73].

Es por esta razn que al inicio de este proyecto se tom la decisin de comenzar el
desarrollo de la aplicacin Android eligiendo la versin Lollipop 5.0 y 5.1, ya que de este modo
se puede cubrir el 32.6% de distribuciones existentes. Haber seleccionado las versiones
posteriores hubiese puesto en pblico potencial menos del 10% para esta plataforma. Tras tomar
esta decisin se dio comienzo el trabajo en Android utilizando para ello el entorno de desarrollo
ANDROID STUDIO [53].

Para la programacin se utiliz el lenguaje Java. Este lenguaje orientado a objetos est
pensado para poder ser compilado una vez y ejecutado en una gran variedad de dispositivos en
los que debe estar instalada la denominada "Mquina virtual Java" que interpreta el cdigo
independientemente de la arquitectura del dispositivo en que se encuentra. Para el aspecto visual
ANDROID STUDIO utiliza el lenguaje de marcado XML.

- MySQL:
La base de datos utilizada para la versin de Android es la llamada MySQL remota
almacenada en un servidor pblico, 000webhost.com [75], quien posee la licencia de MySQL. El
motor de base de datos MySQL [58], contiene todo lo necesario para realizar las tareas de
gestin necesarias y que es rpido y eficiente para la gestin del tipo de informacin requerido en
esta aplicacin.
4.5.2. FASES DE IMPLEMENTACIN
En el caso de la aplicacin mvil, uno de los objetivos de este proyecto, el principal
problema estaba en el tiempo. Debido a compaginar la realizacin del proyecto con el sistema de
seguridad implementado con la tarjeta de desarrollo RASPBERRY PI, el nmero posible de
horas semanales a dedicar planteaba un problema si se decida realizar toda la funcionalidad a la
vez. La decisin consisti en seguir el mtodo iterativo dividiendo el proyecto en las etapas
necesarias para ir consiguiendo secciones completas hasta la creacin de la primera fase de la
aplicacin (Interfaz grfica de Bienvenida, interfaz de registro e ingreso). Tras finalizar esta
primera fase, se comenzara la creacin de la parte final (interfaz principal del sistema de
seguridad). Tras cada etapa se realizaron pruebas tanto en emuladores de dispositivos como en
dispositivos fsicos.

Las fases con sus respectivas etapas son:

4.5.2.1. Primera fase (Interfaz de bienvenida, Interfaz de Ingreso y registro):

Creacin de una interfaz grfica de bienvenida.

Figura 393. Interfaz grfica de Bienvenida.

En esta etapa se crea una interfaz grfica a partir de sintaxis XML autogenerada por
Android Studio y conectada directamente a una Actividad (Una clase relacionada con la interfaz
grfica creada), donde se puede programar los botones y acciones requeridas en lenguaje Java
(Ver Anexo C).
En esta pgina el usuario puede encontrar un mensaje de Bienvenida, un botn que le
permite al usuario ver la siguiente pgina para el acceso a la pgina principal. Esta pgina tiene
como funcionalidad adicional verificar la correcta conexin de internet del celular. De ser fallida
esta conexin el botn de comenzar quedara inhabilitado.

Creacin de una base de datos de conexin remota en un servidor pblico


000webhost.com [75]
All se almacenan datos de nombre, edad, correo electrnico y contrasea de los usuarios
que se registren por medio de la interfaz grfica de registro.

En esta etapa se har uso de un servidor pblico que tiene funcionalidades como
almacenamiento de archivos y bases de datos online.

- Creacin de una cuenta o servidor.


Para la creacin de una base de datos haciendo uso de esta pgina se debe crear una cuenta en la
cual un subdominio web gratis es otorgado. Se puede asignar el nombre que se desee.

Figura 54. Creacin de cuenta 000webhost.

Luego de crear la cuenta, se puede acceder a un panel de control, donde se pueden


encontrar todas las utilidades y caractersticas de la cuenta, para el caso de este proyecto MySQL
como base de datos y para administracin de ella PHPMyAdmin.
Figura 55. Caractersticas y Utilidades de la cuenta.

- Creacin de la base de datos.


Luego de tener creada una cuenta se prosigui a crear la base de datos.

Figura 406. Creacin de la base de datos MySQL.


Para la creacin de la base de datos es requerido un nombre para la base, un nombre de
usuario y contrasea. Luego de ser creada la base el servidor otorga un host. De esta forma se
tienen las siguientes caractersticas de la base de datos:

Host: mysql6.000webhost.com
Nombre de usuario: a7156801_prueba
Contrasea: *******
Nombre de la base de datos: a7156801_prueba

- Creacin de tablas.
Por ltimo se prosigui a crear una tabla para almacenar la informacin de registro de
usuarios: nombre, edad, correo electrnico, contrasea. Esto se realiza desde la opcin
phpMyAdmin, aqu se puede editar el tipo y tamao de campo que ser creado.

Figura 57. Estructura base de datos.

Generacin de los algoritmos PHP para obtencin y almacenamiento de datos en la


base de datos de conexin remota.
Para la conexin, gestin y consulta de campos en la base de datos son necesarios una serie
de cdigos PHP:

Conexin con la base de datos.


Figura 58. Conexin con la base de datos.

Para comprobar la correcta conexin, se guarda el archivo de texto con una extensin
.php, en este caso init.php y se guarda en el administrador de archivos (File Manager) de
000webhost.com:

Figura 419. Administrador de archivos php.

Y por ltimo en un navegador de internet se comprueba la conexin correcta de la base de


datos haciendo uso del dominio propio:

Figura 420. Comprobacin Conexin base de datos.

Ingreso de informacin en la base de datos.


Para el ingreso se debe conectar con anterioridad con la base de datos y se prosigue a poner
los estamentos SQL para insertar informacin en la base.
Figura 431. Estamento SQL INSERT.

Consulta de informacin de la base de datos.


La consulta y obtencin de datos usada para el ingreso de usuarios registrados se realiz
por medio de la cadena JSON cuyo acrnimo es JavaScript Object Notation, es un estndar
basado en texto plano para el intercambio de informacin, por lo que se usa en muchos sistemas
que requieren mostrar o enviar informacin para ser interpretada por otros sistemas, la ventaja de
JSON al ser un formato que es independiente de cualquier lenguaje de programacin, es que los
servicios que comparten informacin por ste mtodo, no necesitan hablar el mismo idioma, es
decir, el emisor puede ser Java y el receptor PHP, cada lenguaje tiene su propia librera para
codificar y decodificar cadenas de JSON [76].

Es as como la cadena JSON utilizada es la siguiente:

Figura 442. Conexin base de datos y cadena JSON para obtener datos.

La cadena JSON usada obtiene los campos de la tabla donde se han guardado los usuarios de la
base de datos con la que se ha realizado la conexin.

Para comprobar el funcionamiento de la cadena JSON existen varios servicios online. En este
caso se hizo uso de JSONLINT [77]:
Figura 63. Validacin de cadena JSON.

Se puede obtener entonces un arreglo con los campos que se encuentran en la base de datos.

Creacin de una interfaz grfica para el ingreso de usuarios registrados que


permite acceder a la pgina principal.
En esta etapa se genera una interfaz grfica de la misma forma que en la etapa anterior.
En esta fase se encuentra un espacio para ser completado con el correo electrnico y contrasea
del usuario anteriormente registrado. En caso de no tener una cuenta, se puede acceder a la
pgina de Registro por medio del link REGISTRESE. Es necesario mencionar que en la
actividad asociada a esta interfaz, se encuentra el llamado al cdigo php para la consulta de
informacin (jsonget_data.php) que se encuentra en el administrador de archivos del servidor
000webhost.com.

De esta forma, si los datos ingresados en los campos correo electrnico Y contrasea,
coinciden con los datos consultados en la base de datos, el software permitir el ingreso a la
pgina principal del sistema de seguridad, en caso contrario enviar un mensaje de usuario o
contrasea incorrecta.
Figura 64.Usuario Registrado en la base de datos.

(a) (b)
Figura 65. (a) Ingreso Usuario registrado. (b) Usuario y contrasea incorrecta.

Creacin de una interfaz para el debido registro de usuarios en caso de no


tenerlo.
Se genera una interfaz grfica para el registro de nuevos usuarios. All se encuentran los
siguientes campos que sern completados por el usuario: Nombre, Edad, Correo Electrnico,
Contrasea. Al oprimir el botn REGISTRAR, el sistema realiza la conexin con el cdigo php
(Registrarusuario.php) almacenado en el administrador de archivos de 000webhost con el cual la
aplicacin puede insertar los datos de los campos con la informacin descrita por el usuario a la
base de datos creada.
(a) (b)
Figura 66. (a) Interfaz Registrar. (b) tabla con los datos proporcionados por el usuario.

4.5.2.2. Segunda Fase (Interfaz Grfica principal):

Desarrollo de la interfaz grfica de la pgina principal.


En esta etapa desarroll una interfaz de pgina principal que le permite al usuario
activar el sistema con el botn ACTIVAR SISTEMA.

Figura 67. Interfaz grfica Activar sistema.

Al presionar ACTIVAR SISTEMA, la aplicacin enva un (9) a la variable de UBIDOTS


ONOFF, variable que es obtenida por la RASPBERRY para encender el sistema.
Conexin con UBIDOTS para la obtencin de variables desde la nube.
Para conectar la aplicacin con Android existe una librera en ANDROID STUDIO que
permite la obtencin y envo de variables a la nube.

Figura 6845. Libreras UBIDOTS.

Se requiere entonces verificar el ID del usuario en UBIDOTS y obtener el ID de cada


variable que se desee obtener.

Figura 69. Obtencin de ID del usuario.

Figura 70. ID de la Variable Movimiento.

Es de vital importancia concederle permisos de internet a la aplicacin, en caso contrario


no es posible obtener la conexin con las variables.

Figura 461. Permisos de uso de Internet [78].


Para la obtencin y envo de variables desde la aplicacin se hizo uso de una clase
anidada llamada ApiUbidots, esta clase se extiende AsyncTask. AsyncTask es una clase Android
creada para hacer operaciones asincrnicas. La extensin de esta clase es obligatoria para todas
las operaciones que necesita para conectarse a Internet [78]. A Continuacin se muestra la clase
AsyncTask para la obtencin de la variable MOVIMIENTO almacenada en UBIDOTS.

Figura 72. Clase AsyncTask para obtencin de variable MOVIMIENTO.

A continuacin se muestra la clase AsyncTask para el envo de la variable ONOFF


(Activa o desactiva el sistema) a la nube.

Figura 473. Clase Asyntask para el envo de variables.


Desarrollo de botones y comandos para poder encender o apagar el sistema de
seguridad por medio de envo de datos a la nube y que luego son obtenidos por la
RASPBERRY.
Para encender y apagar el sistema, como se dijo anteriormente, se enva un (9) a la variable
ONOFF de UBIDOTS con el botn ACTIVAR SISTEMA, y un (0) con el botn DESACTIVAR
SISTEMA, de esta manera la RASPBERRY obtiene el valor de esta variable y da la orden de
enviar o no enviar datos de los sensores.

Generacin de notificaciones y alerta sonora como accin de respuesta a las


variables obtenidas.

ANDROID STUDIO cuenta con una clase denominada NewMessageNotification, la


cual se encarga de las notificaciones y alerta sonora, en la barra de estado del Smartphone y
basta con invocarla en la parte donde se deba realizar.
Por ejemplo, cuando se obtiene el valor de 6 de la variable Capacitivo de UBIDOTS,
se enviar una notificacin de que el auto fue intervenido especficamente en la manija del
carro donde est ubicado el sensor. Para cada sensor se enva una notificacin diferente para
saber qu parte del vehculo est siendo perjudicada.

Figura 74. Cdigo para enviar notificaciones.


Figura 75. Notificacin en la barra de estado sensor de movimiento activado

Desarrollo de una interfaz de acciones que pueden ser realizadas por el usuario como
encender una alerta, obtener una imagen del entorno del vehculo.

Figura 76. Interfaz de Alertas.

Al abrir la notificacin de la barra de estado del celular, se da la opcin de compartir la


alerta se abre la interfaz de alertas donde el usuario puede Encender e igualmente apagar la
alarma, obtener una imagen del entorno donde est ubicado el carro o desactivar el sistema.

- Para compartir la imagen la aplicacin da mltiples opciones de compartir un


mensaje de auxilio que es autogenerado.
Figura 78. Opcin SHARE (compartir).

De esta forma se podra enviar un mensaje a la polica para su inmediata intervencin.

- Obtener imagen:
Para la obtencin de la imagen el sistema est tomando fotos cada minuto y son subidas
a la nube DROPBOX [79] instalada en la RASPBERRY y para ser visualizada en la aplicacin
se obtiene el link de la imagen que es compartido por Dropbox:

https://dl.dropboxusercontent.com/s/dzrnxhj022y8p87/screen.png

Figura 79. Imagen obtenida en la aplicacin desde Dropbox.

- Encender o Apagar alarma.


Para encender o apagar una alarma sonora configurada en la RASPBERRY, se enva un 1
(Encender alarma) o 2 (apagar alarma) para ser almacenado en la variable de UBIDOTS Alarma,
y la RASPBERRY se encarga de descargar la variable y activar o desactivar la chicharra.
5. Evaluacin

5.1. UBICACIN ESTRATGICA E LA RED DE SENSORES EN EL AUTOMVIL:


En las siguientes figuras se muestran imgenes que ilustran la ubicacin que se escogi para
los sensores, cmara y mdulo RFID.

SENSOR DE ULTRASONIDO.

Se propone instalar el sensor de ultrasonido en el espejo retrovisor del automvil. De esta


forma cuando alguien se acerque demasiado a la puerta, el sensor activara una de las alarmas en
la aplicacin mvil.

Figura 8048. Ubicacin del sensor de ultrasonido.

SENSOR CAPACITIVO.

Aprovechando el pequeo tamao del sensor capacitivo, se propone ubicarlo bajo las
manijas de las puertas. De esta forma si alguien trata de abrir la puerta con la alarma activa, el
sensor se activar y enviar una alerta al telfono mvil.

Figura 81. Ubicacin del sensor capacitivo.

SENSOR DE MOVIMIENTO.
El sensor de movimiento est pensado para alertar al dueo si existe movimiento dentro de
auto, por lo que se propone que su ubicacin sea debajo del volante.
ACELERMETRO.

El nico objetivo del acelermetro es identificar si el auto est en movimiento por lo que
se propone ubicar en el suelo del auto, bajo la silla del conductor.

MDULO RFID.
Ya que el lector o funciona si se pone tras un cuerpo metlico, se propone ubicarlo detrs
de la ventana del conductor, de esta forma el lector podr leer el ID del sensor RFID.

Figura 82. Ubicacin del mdulo RFID.

CMARA.

De igual forma se propone ubicar la cmara detrs de la ventana del conductor en la parte
superior, de esta forma la cmara puede tener un mejor ngulo y capturar el rostro al momento de
adquirir la imagen.

Figura 83. Ubicacin de la cmara.


6. Anlisis de Resultados
ANLISIS DE RESULTADOS.
SENSORES

Las pruebas realizadas mostraron una muy buena respuesta de los sensores, ya que por su
pequeo tamao son ideales para aplicaciones mviles con en este caso, adems sus
requerimientos de alimentacin son muy comunes y en general su consumo es muy bajo (menor
a 100mA entre todos). Ya que la mayora de estos sensores tienen circuitos que adecan su seal,
la conexin de la tarjeta se puede hacer de forma directa.

En la siguiente tabla se muestran los resultados obtenidos al activar todos los sensores en
el cdigo principal.

Tabla 2. Respuesta de los sensores ultrasonido y Acelermetro.

Ultrasonido Acelermetro
Prueba/Sensor
(cm) (eje Y)
1 5.69 0.176
2 5.65 0.172
3 5.76 0.172
4 5.74 0.184

Ya que los sensores capacitivo y de movimiento se activan por interrupcin, estos no se


muestran en la tabla, sin embargo en las pruebas realizadas, los sensores muestran una
efectividad del 100%.

RASPBERRY PI
La RASPBERRY Pi es una excelente eleccin ya que permite realizar innumerables
proyectos gracias a todas sus caractersticas. Para este proyecto fue bastante til, ya que el
mdulo de la cmara permite realizar la tarea del reconocimiento facial con una muy buena
calidad de imagen. A pesar de no contar con WIFI, gracias a que cuenta con cuatro puertos USB
2.0, la adicin de un mdulo para agregarle esta caracterstica, es muy sencilla. Adems cuenta
con todos protocolos que utilizan actualmente algunos sensores y un considerable de pines lo que
permite realizar proyectos importantes con ella.

El hecho de que cuente con el sistema operativo Linux permite que la interaccin con el
usuario sea mucho ms cmoda que con otras tarjetas de desarrollo. A esto se le suma que para
realizar proyectos cuenta con el lenguaje de programacin Python que le permite al desarrollador
acceder a todas las caractersticas programables de la tarjeta.

A pesar de que la tarjeta cuenta con un procesador potente (700MHz) y 512MB de RAM,
le toma tiempo realizar procesamiento de imgenes, por lo que para proyectos que tengan mucho
ms procesamiento de imgenes y/o video se recomienda utilizar el modelo 2 de RASPBERRY.

UBIDOTS

Se utiliz UBIDOTS como sistema de almacenamiento en la nube para guardar los datos
que se obtienen de los sensores ya que, gracias las libreras que tiene para la RASPBERRY Pi,
permite que el acceso y la modificacin de la informacin de los sensores sea muy simple.
Adems de tener libreras para la RASPBERRY Pi, tambin es compatible con Android, lo que
ayud a que el desarrollo de la aplicacin fuera un poco ms sencillo.

A pesar de ser una herramienta muy til, sus servicios solo son gratuitos si el nmero de
variables que se crean es menor a 15. Por lo tanto, si se quiere utilizar en un proyecto con un
nmero de sensores considerable, se deber pagar una cuota mensual que depende del nmero de
variables.

RFID Y RECONOCIMIENTO FACIAL

La implementacin del mdulo RFID y de la cmara para el sistema de apertura de


puertas mostr resultados positivos. El mdulo RFID-RC522 permite realiza lecturas de los
sensores pasivos a gran velocidad y permite que a primera validacin del sistema se realice
rpidamente; tambin es un sistema que un alto nivel de seguridad, ya que no solo los sensores
pasivos tiene su propio ID sino que adems el mdulo permite escribir sobre sectores de los
sensores, por lo que se puede ingresar 16 cifras hexadecimales para aumentar el nivel de
seguridad.

El sistema de reconocimiento facial implementado con Open CV tiene un alto grado de


acierto si el nmero de imgenes utilizadas para el entrenamiento del algoritmo es alto. Sin
embargo, se demostr durante el desarrollo que a la RASPBERRY pi b+ le toma algunos
segundos ejecutar el algoritmo de identificacin por lo que el sistema de apertura de puertas no
es inmediato.
Tabla 3. Nivel de confianza del reconocimiento facial.

Prueba Nivel de confiabilidad Reconocimiento exitoso


1 86.8151 Si
2 85.7761 Si
3 87.9817 Si
4 70.9062 Si
5 101.8568 No

Las pruebas que se ilustran en la tabla anterior se realizaron con diferentes expresiones
faciales, por esta razn cambia el valor de confiabilidad. Se defini un umbral para definir a
partir de qu valor del nivel de confiabilidad es o no la persona. Este valor se defini en 90 segn
las pruebas realizadas. Se calcul el error tomando como valor esperado el umbral definido.

APLICACIN PARA ANDROID

El uso del IDE (entorno de desarrollo integrado) Android Studio para realizar de la
aplicacin que interacta con el usuario, permiti crear una interfaz grfica intuitiva y fcil de
manejar para cualquier persona que cuente con un Smartphone. La integracin de UBIDOTS a
este entorno de desarrollo es muy simple y facilita que el manejo y la obtencin de informacin
obtenida por los sensores. En cuanto a resultados cuantitativos de la aplicacin, se tienen las
siguientes pruebas:

Tabla 4. Tiempo de respuesta de los sensores a las notificaciones.

Prueba Tiempo de respuesta


1 20 S
2 25 S
3 10 S
4 15 S
5 27 S

Entonces el tiempo promedio de respuesta es:


7. Conclusiones
Los resultados arrojaron que la eleccin de los sensores fue adecuada, ya que tienen una
respuesta rpida y efectiva, lo que ayuda a que la informacin que arrojan se pueda subir
rpidamente a la nube y, por ende, enviar gilmente las alertas al usuario. Adems, ya que su
configuracin es simple, se puede implementar en casi cualquier microcontrolador, de esta forma
se podra ampliar el sistema conectando los microcontroladores al sistema embebido por medio
de algn protocolo de comunicacin inalmbrico. El uso de sensores digitales como los
utilizados en este proyecto, permiten un fcil manejo de datos evitando el acondicionamiento de
seales y un mdulo ADC.

El entorno de desarrollo RASPBERRY Pi es un dispositivo impresionante. No slo


resulta extremadamente asequible, sino que abre la puerta a infinitas posibilidades para el
desarrollo de nuevas aplicaciones y para la simple educacin tecnolgica de las nuevas
generaciones. Como herramienta principal para el desarrollo de este proyecto los resultados son
los esperados.

Al hacer uso del algoritmo de reconocimiento LBP adquirido desde la librera OpenCV,
se pudo implementar de una manera eficaz y sencilla el sistema de apertura de puertas por
reconocimiento facial haciendo uso nicamente de una etapa de entrenamiento y la de
validacin. El sistema arroj como resultado un reconocimiento facial con un nivel de error
menor al 5%, con lo que se otorga un alto nivel de confiabilidad al sistema de seguridad para
automviles.

El desarrollo de aplicaciones mviles es uno de los negocios ms activos del momento,


siendo una gran oportunidad de crecimiento tanto para desarrolladores como empresas. Es as
como la aplicacin Android usada en el sistema de seguridad para automviles facilit la forma
de interaccin con el usuario, primero por su facilidad en la forma de programar, debido a que se
pudieron aprovechar los conocimientos adquiridos acerca de la programacin orientada y
segundo por las ventajas de tener a la mano del usuario la estabilidad de la aplicacin.

Al hacer uso de un servidor pblico como 000webhost para la administracin de la base


de datos por medio de estamentos PHP, se hace rentable crear aplicaciones que necesiten gestin
y almacenamiento de datos. Sin embargo, el sistema queda expuesto a fallas en el servidor, como
ataques y sobrecargas que perjudican el correcto funcionamiento de la aplicacin.

UBIDOTS no solo permiti facilitar el proceso de almacenamiento y adquisicin de la


informacin de los sensores, sino que adems esta herramienta permite que visualizar cada una
de las fuentes y las variables de una forma muy organizada y atractiva y tabeen permite
visualizar en tiempo real si los sensores estn o no activos, lo que permite detectar si existe algn
error en alguno de los sensores o cuando se activ por ltima vez.

Trabajos Futuros
- Teniendo las bases electrnicas del sistema de seguridad, solo queda como trabajo
futuro implementar la parte mecnica para el completo funcionamiento y esttica del sistema.
- Como mejora para el sistema se pueden integrar ms sensores en otras partes del
carro como la tapa de la gasolina, la puerta del bal y dems puertas del vehculo.
- El buzzer usado en este proyecto se puede reemplazar por la integracin del
sistema de seguridad con la alarma sonora propia del automvil.
- En cuanto a la aplicacin se espera que esta pueda ser comercializada en su
versin Android por medio de la Google Play y se pueda generar la versin IOS para Iphone
y se comercialice en la AppStore.
- Se pueden implementar ms acciones en la pgina de alertas de la aplicacin
como acceder al sistema de frenos y si el vehculo ha sido interferido, que se mantenga el
freno de mano activado e imposibilite al ladrn mover el auto.
- Se puede incrementar la seguridad y confiabilidad de datos de la aplicacin
comprando un dominio Premium del servidor 000webhost.
- Para incrementar la velocidad de llegada de las notificaciones se recomienda hacer
uso de una nube propia para el almacenamiento de datos otorgados por los sensores.
- La implementacin de un sistema de seguridad como este, no solo se limita a
vehculos, sino puede ser usado en casas, almacenes y fbricas gracias a su facilidad de
implementacin, ubicacin y costo.
Referencias
[1] Toribio, L. (2008). Diseo y construccin de un prototipo mecatrnico de navegacin
autnoma y simulacin del control. Universidad de las Amricas Puebla.
[2] Klier, T. & J. Rubenstein (2008). Who really made your car? Restructuring and geographic
change in the auto industry. Michigan: W.E. Upjohn Institute for Employment Research.

[3] Lara Rivero, A. (2012). De sistema mecnico a sistema tecnolgico complejo. El caso de los
automviles. Divisin de Investigacin de la Facultad de Contadura y Administracin
de la UNAM. Mxico D.F.

[4] Torres,JJ. (2014) Qu es y cmo funciona el Internet de las cosas?, Recuperado de


http://hipertextual.com/archivo/2014/10/internet-cosas/
[5] Cspedes E.N., Castillo-Romero L.F, Duarte-Velsquez Y.A., Torres-Guzmn G.A., (2013)
Hurto de automotores y estrategias contra el delito: una mirada desde la academia, el
victimario y la Polica.
[6] CISCO Internet de las Cosas y la evolucin de Internet, recuperado de
www.cisco.com/web/ES/campaigns/internet-de-las-cosas/index.html.
[7] Ministerio de Tecnologas de la Informacin y las Comunicaciones. (2014). Boletn
Trimestral de las TIC Banda Ancha, recuperado de
colombiatic.mintic.gov.co/602/articles-7201_archivo_pdf.pdf
[8] Motorusa. http://www.motorusa.com.ar/sistema/consejos/50-alarmas-auto.pdf. Recuperado
el 27 de abril de 2014. Hora 8:35 pm.
[9] Evans D., Internet de las cosas Cmo la prxima evolucin de Internet lo cambia todo,(
Abril 2011) recuperado de
http://www.cisco.com/web/LA/soluciones/executive/assets/pdf/internet-of-things-iot-
ibsg.pdf
[10] Postscapes, Dispositivos para autos. (2015). Recuperado de
http://postscapes.com/connected-car-devices
[11] Gasc, D. (2010), Redes de sensores inalmbricos, la tecnologa invisible. Recuperado de
http://www.coit.es/publicaciones/bit/bit180-181/53-55.pdf
[12] National instruments. Recuperado de http://www.ni.com/wsn/esa/
[13] Abernathy, W. (1978). The productiviy dilemma: Roadblock to innovation in the automobile
industry. Baltimore: The John Hopkins University Press.
[14] Porter, M. (1983). Cases in competitive strategy. New York: The Free Press.
[15] Lara, A. (2000). Complejidad y desequilibrio tecnolgico: Notas sobre la historia de la
convergencia del sector automotrizsector electrnico. En J. Flores y F. Novelo.
Innovacin industrial, desarrollo rural e integracin internacional. Mxico: Universidad
Autnoma Metropolitana-Xochimilco: 213-237.
[16] Leen, G., D. Hefferman y A. Dunne (1999). Digital networks in the automotive vehicle. IEE
Computer and Control Eng. J., December: 257-266.
[17] Klier, T. y Rubenstein, J. (2008). Who really made your car? Restructuring and geographic
change in the auto industry. Upjohn Institute for Employment Research. Michigan: W.E.
[18] Alliance Bernstein (2006). Ending oils stranglehold on transportation and the economy.
Recuperado de: http://www.bernstein.com/CmsObjectPC/pdfs/B39433_Hybrids
Blackbook.pdf
[20] Akyildiz, I.F., Su,W., Sankarasubramaniam, Y., Cayirci, E. (2002). Wireless sensor
networks: a survey. Computer Networks 38:393422
[22] Bulusu, N., Estrin, D., Girod, I., Heidemann, J. (2001). Scalable coordination for wireless
sensor networks: self-configuring localization systems, International Symposium on
Communication Theory and Applications (ISCTA 2001), Ambleside, UK, July 2001.
[23] Herring, C., Kaplan, S. (2000). Component-based software systems for smart
environments. IEEE Personal Communications, pp. 6061.
[24] Cramer, R.J., Win, M.Z., Scholtz, R.A. (1998). Impulse radio multipath characteristics
and diversity reception. IEEE International Conference on Communications ICC Vol. 3,
pp. 16501654.
[25] Hoblos, G., Staroswiecki, M., Aitouche, A. (2000). Optimal design of fault tolerant
sensor networks, IEEE International Conference on Control Applications, Anchorage,
AK, September 2000, pp. 467472.
[26] Cho, S., Chandrakasan, A., (2000). Energy-efficient protocols for low duty cycle wireless
microsensor, Proceedings of the 33rd Annual Hawaii International Conference on System
Sciences, Maui, HI Vol. 2 (2000), p. 10.
[27] Bulusu, N., Estrin, D., Girod, L., Heidemann, J. (2001). Scalable coordination for
wireless sensor networks: self-configuring localization systems, International Symposium
on Communication Theory and Applications (ISCTA 2001), Ambleside, UK, July 2001.
[28] Shih, E. Cho, S., Ickes, N., Min, R., Sinha, A., Wang, A., Chandrakasan, A. (2001).
Physical layer driven protocol and algorithm design for energy-efficient wireless sensor
networks, Proceedings of ACM MobiCom01, Rome, Italy, pp. 272286.
[29] Rabaey, J.M., Ammer, M.J., da Silva Jr, J.L., Patel, D., Roundy, S. (2000). PicoRadio
supports ad hoc ultra-low power. Computer 33(7). Pg. 42-48. DOI: 10.1109/2.869369
[30] Rabaey, J., Ammer, J., da Silva Jr, J.L., Patel, Pico, D. (2000) Radio: ad-hoc wireless
networking of ubiquitous low energy sensor/monitor nodes. IEEE Computer Society
Annual Workshop on VLSI (WVLSI00), Orlando, Florida, pp. 912.
[31] Gonzlez R., Woods R. (2004). Digital Image Processing. Prentice Hall.
[32] Low A., (1991) Introductory Computer Vision and Image Processing. McGraww Hill.
[33] Ortiz, M. M. (2013). Procesamiento digital de imgenes. Universidad Autnoma de
Puebla Facultad de Ciencias de la Computacin.
[34] Urrea Miarro, Benito. (2009). Apuntes de sistemas embebidos. Universidad de Murcia
[35] Internet de las cosas. Recuperado de: http://www.cisco.com/web/ES/campaigns/internet-
de-las-cosas/index.html#entrando
[36] Distefanoa, S., Merlinoc, G., Puliafitoc, A. (2015). A utility paradigm for IoT: The
sensing Cloud. Pervasive and Mobile Computing. Volume 20, July 2015, Pages 127144.
[37] Atzori, L., Iera, A., Morabito, G. (2010). The Internet of Things: a survey. Computer
Networks 54:27872805
[38] Sundmaeker, H., Guillemin, P., Friess, P., Woelffl, S. (2010). Vision and challenges for
realising the Internet of Things. Cluster of European Research Projects on the Internet of
Things CERP IoT.
[39] Belissent, J., (2010). Getting clever about smart cities: new opportunities require new
business models. Forrester Research Inc.
[40] Gubbia, J., Buyyab, R., Marusica, S., Palaniswami, M. (2013). Internet of Things (IoT):
A vision, architectural elements, and future directions. Future Generation Computer Systems.
Volume 29, Issue 7, September 2013, Pages 16451660
[41] Prez de Diego, D. Sensores de Distancia por Ultrasonidos. Recuperado de:
http://picmania.garciacuervo.net/recursos/redpictutorials/sensores/sensores_de_distancias
_con_ultrasonidos.pdf
[42] Sensores Capacitivos. Recuperado de:
http://www.skillten.com/cursos/matter001/capacitivos.pdf
[43] ABC del Acelermetro. (2014). Recuperado de: http://5hertz.com/tutoriales/?p=228
[44] Detectores de movimiento, como funciona, cual elegir. Recuperado de:
http://saberyhacer.com/detectores-de-movimiento-como-funciona-cual-elegir
[45] Llamazares, J. C. Cmo funciona?: Tarjetas identificadoras sin contacto o sistemas RFID.
Recuperado de: http://www.ecojoven.com/dos/03/RFID.html
[46] Open CV documentation. (2014) Face. Face Recognition with Open CV. Recuperado de:
http://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_tutorial.html#tu06
[47] Raspberry Pi Foundation. https://www.raspberrypi.org/. Consultado el 6 de octubre de 2011.
[48] Raspberry shop: http://www.raspberryshop.es/. Recuperado el 15 de enero de 2016.
[49] Oliveros, F. (2014) La evolucin final de Raspberry Pi llega con el modelo B+. Recuperado
de: http://hipertextual.com/archivo/2014/07/raspberry-pi-b/
[50] Colombia.inn. (2013). El internet de las cosas, la apuesta de Ubidots para facilitar la vida
diaria. Recuperado de http://colombia-inn.com.co/el-internet-de-las-cosas-la-apuesta-de-
ubidots-para-facilitar-la-vida-diaria-2/
[51] Acerca de ubidots. http://ubidots.com/about-ubidots.html
[52]Datasources. https://app.ubidots.com/ubi/datasources/#/detail/559eb27176254223e667be64
[53] Android Studio. http://developer.android.com/intl/es/sdk/index.html
[54] Ganapati, P. (2010). Independent App Stores Take On Googles Android Market.
Recuperado de: http://www.wired.com/2010/06/independent-app-stores-take-on-googles-
android-market/
[55] Mer (2011). Cmo instalar en la tablet las aplicaciones que se descargan en el ordenador.
Recuperado de: http://www.mibqyyo.com/articulos/2011/06/23/cmo-instalar-en-el-tablet-
las-aplicaciones-que-se-descargan-en-el-ordenador/
[56] Codexexempla. Sintaxis de XML. Recuperado de:
http://www.codexexempla.org/curso/curso_1_2.php
[57] Qu es una Base de datos? - Definicin de Base de datos. Recuperado de:
https://www.masadelante.com/faqs/base-de-datos
[58] MySQL 5.5 Release Notes. (2016). Revisin: 7964. Recuperado de:
http://dev.mysql.com/doc/relnotes/mysql/5.5/en/
[59] MySQL 5.1 Release Notes. (2016). Revisin: 7964. Recuperado de:
http://dev.mysql.com/doc/relnotes/mysql/5.1/en/
[60] Probar Sensor de movimiento PIR directo en Arduino. (2015). Recuperado de:
http://www.forosdeelectronica.com/f11/probar-sensor-movimiento-pir-directo-arduino-
127986/
[61] Raspberry Pi 2 Model B. [online]. Recuperado de:
https://www.raspberrypi.org/products/raspberry-pi-2-model-b/
[62] TP-Link especificaciones, recuperado de http://www.tp-link.com/en/products/details/cat-
11_TL-WN725N.html#specifications
[63] Raspberry Pi Foundation. Camera Module Setup. Recuperado de:
https://www.raspberrypi.org/help/camera-module-setup/
[64] TonTouch TM. (2009). Ttp223-ba6. 1 key touch pad detector IC. TonTouch TM
Recuperado de: http://www.tontek.com.tw/download.asp?sn=475
[65] ETC. HC-SR501 PIR Motion Detector. Recuperado de:
https://www.mpja.com/download/31227sc.pdf
[66] Elec Freaks. Ultrasonic Ranging Module HC - SR04. ElecFreaks. Recuperado de:
http://www.micropik.com/PDF/HCSR04.pdf
[67] Analog Devices, Inc. Digital Accelerometer Data Sheet ADXL345. Analog Devices, Inc.
recuperado de: http://www.analog.com/media/en/technical-documentation/data-
sheets/ADXL345.pdf
[68] Ubidots.signup. https://app.ubidots.com/accounts/signin/.
[69]Ubidots datasource.
https://app.ubidots.com/ubi/datasources/#/detail/55a6b7c17625427a79c0204a
[70]Ubidots.datasources.
https://app.ubidots.com/ubi/datasources/#/detail/559eb27176254223e667be64
[71] NXP Semiconductors. MFRC522 Standard 3V MIFARE reader solution. NXP
Semiconductor. Recuperado de:
http://www.nxp.com/documents/data_sheet/MFRC522.pdf
[72] Delgado, M., Climent, J. (2012). Extraccin automtica de caras en imgenes captadas con
mviles Android. Universitat Politcnica de Catalunya.
[73] Imagen toma de: http://www.compudemano.com/foros/discusion/informe-android-enero-
2016-lollipop-crece-pero-marshmallow-no-despega.106783/
[74] Prez, E. (2015). Informe Android Marzo: Lollipop est en el 5% y KitKat ya es la versin
ms utilizada. Recuperado de: http://www.elandroidelibre.com/2015/04/informe-android-
marzo-lollipop-y-kitkat.html
[75] 000webhost. https://www.000webhost.com/
[76] Qu es JSON y dnde se usa? (2013). Recuperado de:
http://canela.me/articulo/%C2%BFqu%C3%A9-es-json-y-d%C3%B3nde-se-usa
[77] JSONLint. http://jsonlint.com/
[78] imagen tomada de: http://ubidots.com/docs/es/_images/android-manifest-studio.png
[79] Dropbox. https://www.dropbox.com/home
[80] Librera para el acelermetro ADXL345. Recuperado de:
https://github.com/pimoroni/adxl345-python
[81] Librera para el mdulo RFID-R522. Recuperado de: https://github.com/mxgxw/MFRC522-
python
[82] Rosebrock, A. How to install OpenCV 3 on Raspbian Jessie. Recuperado de:
http://www.pyimagesearch.com/2015/10/26/how-to-install-opencv-3-on-raspbian-jessie/
[83] Robologs. Instalar OpenCV en Raspberry Pi. Recuperador de:
http://robologs.net/2014/04/25/instalar-opencv-en-raspberry-pi-2/
ANEXOS
ANEXO A-LIBRERAS SENSORES PYTHON.
- LIBRERA PARA EL ACELERMETRO ADXL345:
1. # ADXL345 Python library for Raspberry Pi
2. #
3. # author: Jonathan Williamson
4. # license: BSD, see LICENSE.txt included in this package
5. #
6. # This is a Raspberry Pi Python implementation to help you get started with
7. # the Adafruit Triple Axis ADXL345 breakout board:
8. # http://shop.pimoroni.com/products/adafruit-triple-axis-accelerometer
9.
10. import smbus
11. from time import sleep
12.
13. # select the correct i2c bus for this revision of Raspberry Pi
14. revision = ([l[12:-1] for l in open('/proc/cpuinfo','r').readlines() if l[:8]=="Revision"]+['0000'])[0]
15. bus = smbus.SMBus(1 if int(revision, 16) >= 4 else 0)
16.
17. # ADXL345 constants
18. EARTH_GRAVITY_MS2 = 9.80665
19. SCALE_MULTIPLIER = 0.004
20.
21. DATA_FORMAT = 0x31
22. BW_RATE = 0x2C
23. POWER_CTL = 0x2D
24.
25. BW_RATE_1600HZ = 0x0F
26. BW_RATE_800HZ = 0x0E
27. BW_RATE_400HZ = 0x0D
28. BW_RATE_200HZ = 0x0C
29. BW_RATE_100HZ = 0x0B
30. BW_RATE_50HZ = 0x0A
31. BW_RATE_25HZ = 0x09
32.
33. RANGE_2G = 0x00
34. RANGE_4G = 0x01
35. RANGE_8G = 0x02
36. RANGE_16G = 0x03
37.
38. MEASURE = 0x08
39. AXES_DATA = 0x32
40.
41. class ADXL345:
42.
43. address = None
44.
45. def __init__(self, address = 0x53):
46. self.address = address
47. self.setBandwidthRate(BW_RATE_100HZ)
48. self.setRange(RANGE_2G)
49. self.enableMeasurement()
50.
51. def enableMeasurement(self):
52. bus.write_byte_data(self.address, POWER_CTL, MEASURE)
53.
54. def setBandwidthRate(self, rate_flag):
55. bus.write_byte_data(self.address, BW_RATE, rate_flag)
56.
57. # set the measurement range for 10-bit readings
58. def setRange(self, range_flag):
59. value = bus.read_byte_data(self.address, DATA_FORMAT)
60.
61. value &= ~0x0F;
62. value |= range_flag;
63. value |= 0x08;
64.
65. bus.write_byte_data(self.address, DATA_FORMAT, value)
66.
67. # returns the current reading from the sensor for each axis
68. #
69. # parameter gforce:
70. # False (default): result is returned in m/s^2
71. # True : result is returned in gs
72. def getAxes(self, gforce = False):
73. bytes = bus.read_i2c_block_data(self.address, AXES_DATA, 6)
74.
75. x = bytes[0] | (bytes[1] << 8)
76. if(x & (1 << 16 - 1)):
77. x = x - (1<<16)
78.
79. y = bytes[2] | (bytes[3] << 8)
80. if(y & (1 << 16 - 1)):
81. y = y - (1<<16)
82.
83. z = bytes[4] | (bytes[5] << 8)
84. if(z & (1 << 16 - 1)):
85. z = z - (1<<16)
86.
87. x = x * SCALE_MULTIPLIER
88. y = y * SCALE_MULTIPLIER
89. z = z * SCALE_MULTIPLIER
90.
91. if gforce == False:
92. x = x * EARTH_GRAVITY_MS2
93. y = y * EARTH_GRAVITY_MS2
94. z = z * EARTH_GRAVITY_MS2
95.
96. x = round(x, 4)
97. y = round(y, 4)
98. z = round(z, 4)
99.
100. return {"x": x, "y": y, "z": z}
101.
102. if __name__ == "__main__":
103. # if run directly we'll just create an instance of the class and output
104. # the current readings
105. adxl345 = ADXL345()
106.
107. axes = adxl345.getAxes(True)
108. print "ADXL345 on address 0x%x:" % (adxl345.address)
109. print " x = %.3fG" % ( axes['x'] )
110. print " y = %.3fG" % ( axes['y'] )
111. print " z = %.3fG" % ( axes['z'] )

Librera Obtenida de la referencia [80]

- LIBRERA PARA EL MODULO RFID-R522

#!/usr/bin/env python
# -*- coding: utf8 -*-

import RPi.GPIO as GPIO
import spi
import signal
import time

class MFRC522:
NRSTPD = 22

MAX_LEN = 16

PCD_IDLE = 0x00
PCD_AUTHENT = 0x0E
PCD_RECEIVE = 0x08
PCD_TRANSMIT = 0x04
PCD_TRANSCEIVE = 0x0C
PCD_RESETPHASE = 0x0F
PCD_CALCCRC = 0x03

PICC_REQIDL = 0x26
PICC_REQALL = 0x52
PICC_ANTICOLL = 0x93
PICC_SElECTTAG = 0x93
PICC_AUTHENT1A = 0x60
PICC_AUTHENT1B = 0x61
PICC_READ = 0x30
PICC_WRITE = 0xA0
PICC_DECREMENT = 0xC0
PICC_INCREMENT = 0xC1
PICC_RESTORE = 0xC2
PICC_TRANSFER = 0xB0
PICC_HALT = 0x50

MI_OK = 0
MI_NOTAGERR = 1
MI_ERR = 2

Reserved00 = 0x00
CommandReg = 0x01
CommIEnReg = 0x02
DivlEnReg = 0x03
CommIrqReg = 0x04
DivIrqReg = 0x05
ErrorReg = 0x06
Status1Reg = 0x07
Status2Reg = 0x08
FIFODataReg = 0x09
FIFOLevelReg = 0x0A
WaterLevelReg = 0x0B
ControlReg = 0x0C
BitFramingReg = 0x0D
CollReg = 0x0E
Reserved01 = 0x0F

Reserved10 = 0x10
ModeReg = 0x11
TxModeReg = 0x12
RxModeReg = 0x13
TxControlReg = 0x14
TxAutoReg = 0x15
TxSelReg = 0x16
RxSelReg = 0x17
RxThresholdReg = 0x18
DemodReg = 0x19
Reserved11 = 0x1A
Reserved12 = 0x1B
MifareReg = 0x1C
Reserved13 = 0x1D
Reserved14 = 0x1E
SerialSpeedReg = 0x1F

Reserved20 = 0x20
CRCResultRegM = 0x21
CRCResultRegL = 0x22
Reserved21 = 0x23
ModWidthReg = 0x24
Reserved22 = 0x25
RFCfgReg = 0x26
GsNReg = 0x27
CWGsPReg = 0x28
ModGsPReg = 0x29
TModeReg = 0x2A
TPrescalerReg = 0x2B
TReloadRegH = 0x2C
TReloadRegL = 0x2D
TCounterValueRegH = 0x2E
TCounterValueRegL = 0x2F

Reserved30 = 0x30
TestSel1Reg = 0x31
TestSel2Reg = 0x32
TestPinEnReg = 0x33
TestPinValueReg = 0x34
TestBusReg = 0x35
AutoTestReg = 0x36
VersionReg = 0x37
AnalogTestReg = 0x38
TestDAC1Reg = 0x39
TestDAC2Reg = 0x3A
TestADCReg = 0x3B
Reserved31 = 0x3C
Reserved32 = 0x3D
Reserved33 = 0x3E
Reserved34 = 0x3F

serNum = []

def __init__(self, dev='/dev/spidev0.0', spd=1000000):


spi.openSPI(device=dev,speed=spd)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(22, GPIO.OUT)
GPIO.output(self.NRSTPD, 1)
self.MFRC522_Init()

def MFRC522_Reset(self):
self.Write_MFRC522(self.CommandReg, self.PCD_RESETPHASE)

def Write_MFRC522(self, addr, val):


spi.transfer(((addr<<1)&0x7E,val))

def Read_MFRC522(self, addr):


val = spi.transfer((((addr<<1)&0x7E) | 0x80,0))
return val[1]

def SetBitMask(self, reg, mask):


tmp = self.Read_MFRC522(reg)
self.Write_MFRC522(reg, tmp | mask)

def ClearBitMask(self, reg, mask):


tmp = self.Read_MFRC522(reg);
self.Write_MFRC522(reg, tmp & (~mask))

def AntennaOn(self):
temp = self.Read_MFRC522(self.TxControlReg)
if(~(temp & 0x03)):
self.SetBitMask(self.TxControlReg, 0x03)

def AntennaOff(self):
self.ClearBitMask(self.TxControlReg, 0x03)

def MFRC522_ToCard(self,command,sendData):
backData = []
backLen = 0
status = self.MI_ERR
irqEn = 0x00
waitIRq = 0x00
lastBits = None
n = 0
i = 0

if command == self.PCD_AUTHENT:
irqEn = 0x12
waitIRq = 0x10
if command == self.PCD_TRANSCEIVE:
irqEn = 0x77
waitIRq = 0x30

self.Write_MFRC522(self.CommIEnReg, irqEn|0x80)
self.ClearBitMask(self.CommIrqReg, 0x80)
self.SetBitMask(self.FIFOLevelReg, 0x80)

self.Write_MFRC522(self.CommandReg, self.PCD_IDLE);

while(i<len(sendData)):
self.Write_MFRC522(self.FIFODataReg, sendData[i])
i = i+1

self.Write_MFRC522(self.CommandReg, command)

if command == self.PCD_TRANSCEIVE:
self.SetBitMask(self.BitFramingReg, 0x80)

i = 2000
while True:
n = self.Read_MFRC522(self.CommIrqReg)
i = i - 1
if ~((i!=0) and ~(n&0x01) and ~(n&waitIRq)):
break

self.ClearBitMask(self.BitFramingReg, 0x80)

if i != 0:
if (self.Read_MFRC522(self.ErrorReg) & 0x1B)==0x00:
status = self.MI_OK

if n & irqEn & 0x01:


status = self.MI_NOTAGERR

if command == self.PCD_TRANSCEIVE:
n = self.Read_MFRC522(self.FIFOLevelReg)
lastBits = self.Read_MFRC522(self.ControlReg) & 0x07
if lastBits != 0:
backLen = (n-1)*8 + lastBits
else:
backLen = n*8

if n == 0:
n = 1
if n > self.MAX_LEN:
n = self.MAX_LEN

i = 0
while i<n:
backData.append(self.Read_MFRC522(self.FIFODataReg))
i = i + 1;
else:
status = self.MI_ERR

return (status,backData,backLen)

def MFRC522_Request(self, reqMode):


status = None
backBits = None
TagType = []

self.Write_MFRC522(self.BitFramingReg, 0x07)

TagType.append(reqMode);
(status,backData,backBits) = self.MFRC522_ToCard(self.PCD_TRANSCEIVE, TagType)

if ((status != self.MI_OK) | (backBits != 0x10)):


status = self.MI_ERR

return (status,backBits)

def MFRC522_Anticoll(self):
backData = []
serNumCheck = 0

serNum = []

self.Write_MFRC522(self.BitFramingReg, 0x00)

serNum.append(self.PICC_ANTICOLL)
serNum.append(0x20)

(status,backData,backBits) = self.MFRC522_ToCard(self.PCD_TRANSCEIVE,serNum)

if(status == self.MI_OK):
i = 0
if len(backData)==5:
while i<4:
serNumCheck = serNumCheck ^ backData[i]
i = i + 1
if serNumCheck != backData[i]:
status = self.MI_ERR
else:
status = self.MI_ERR

return (status,backData)

def CalulateCRC(self, pIndata):


self.ClearBitMask(self.DivIrqReg, 0x04)
self.SetBitMask(self.FIFOLevelReg, 0x80);
i = 0
while i<len(pIndata):
self.Write_MFRC522(self.FIFODataReg, pIndata[i])
i = i + 1
self.Write_MFRC522(self.CommandReg, self.PCD_CALCCRC)
i = 0xFF
while True:
n = self.Read_MFRC522(self.DivIrqReg)
i = i - 1
if not ((i != 0) and not (n&0x04)):
break
pOutData = []
pOutData.append(self.Read_MFRC522(self.CRCResultRegL))
pOutData.append(self.Read_MFRC522(self.CRCResultRegM))
return pOutData

def MFRC522_SelectTag(self, serNum):


backData = []
buf = []
buf.append(self.PICC_SElECTTAG)
buf.append(0x70)
i = 0
while i<5:
buf.append(serNum[i])
i = i + 1
pOut = self.CalulateCRC(buf)
buf.append(pOut[0])
buf.append(pOut[1])
(status, backData, backLen) = self.MFRC522_ToCard(self.PCD_TRANSCEIVE, buf)

if (status == self.MI_OK) and (backLen == 0x18):


print "Size: " + str(backData[0])
return backData[0]
else:
return 0

def MFRC522_Auth(self, authMode, BlockAddr, Sectorkey, serNum):


buff = []

# First byte should be the authMode (A or B)


buff.append(authMode)

# Second byte is the trailerBlock (usually 7)


buff.append(BlockAddr)

# Now we need to append the authKey which usually is 6 bytes of 0xFF


i = 0
while(i < len(Sectorkey)):
buff.append(Sectorkey[i])
i = i + 1
i = 0

# Next we append the first 4 bytes of the UID


while(i < 4):
buff.append(serNum[i])
i = i +1

# Now we start the authentication itself


(status, backData, backLen) = self.MFRC522_ToCard(self.PCD_AUTHENT,buff)

# Check if an error occurred


if not(status == self.MI_OK):
print "AUTH ERROR!!"
if not (self.Read_MFRC522(self.Status2Reg) & 0x08) != 0:
print "AUTH ERROR(status2reg & 0x08) != 0"

# Return the status


return status

def MFRC522_StopCrypto1(self):
self.ClearBitMask(self.Status2Reg, 0x08)

def MFRC522_Read(self, blockAddr):


recvData = []
recvData.append(self.PICC_READ)
recvData.append(blockAddr)
pOut = self.CalulateCRC(recvData)
recvData.append(pOut[0])
recvData.append(pOut[1])
(status, backData, backLen) = self.MFRC522_ToCard(self.PCD_TRANSCEIVE, recvData)
if not(status == self.MI_OK):
print "Error while reading!"
i = 0
if len(backData) == 16:
print "Sector "+str(blockAddr)+" "+str(backData)

def MFRC522_Write(self, blockAddr, writeData):


buff = []
buff.append(self.PICC_WRITE)
buff.append(blockAddr)
crc = self.CalulateCRC(buff)
buff.append(crc[0])
buff.append(crc[1])
(status, backData, backLen) = self.MFRC522_ToCard(self.PCD_TRANSCEIVE, buff)
if not(status == self.MI_OK) or not(backLen == 4) or not((backData[0] & 0x0F) == 0x0A):
status = self.MI_ERR

print str(backLen)+" backdata &0x0F == 0x0A "+str(backData[0]&0x0F)


if status == self.MI_OK:
i = 0
buf = []
while i < 16:
buf.append(writeData[i])
i = i + 1
crc = self.CalulateCRC(buf)
buf.append(crc[0])
buf.append(crc[1])
(status, backData, backLen) = self.MFRC522_ToCard(self.PCD_TRANSCEIVE,buf)
if not(status == self.MI_OK) or not(backLen == 4) or not((backData[0] & 0x0F) == 0x0A):
print "Error while writing"
if status == self.MI_OK:
print "Data written"

def MFRC522_DumpClassic1K(self, key, uid):


i = 0
while i < 64:
status = self.MFRC522_Auth(self.PICC_AUTHENT1A, i, key, uid)
# Check if authenticated
if status == self.MI_OK:
self.MFRC522_Read(i)
else:
print "Authentication error"
i = i+1

def MFRC522_Init(self):
GPIO.output(self.NRSTPD, 1)

self.MFRC522_Reset();

self.Write_MFRC522(self.TModeReg, 0x8D)
self.Write_MFRC522(self.TPrescalerReg, 0x3E)
self.Write_MFRC522(self.TReloadRegL, 30)
self.Write_MFRC522(self.TReloadRegH, 0)

self.Write_MFRC522(self.TxAutoReg, 0x40)
self.Write_MFRC522(self.ModeReg, 0x3D)
self.AntennaOn()

Librera obtenida de la referencia [81]

ANEXO B- IMPLEMENTACIN PYTHON

1. # -*- coding: utf-8 -*-


2. import RPi.GPIO as GPIO
3. import time
4. import cv2, os
5. from ubidots import ApiClient
6. from adxl345 import ADXL345
7. import MFRC522
8. import signal
9. import numpy as np
10. from PIL import Image
11. from picamera.array import PiRGBArray
12. from picamera import PiCamera
13. import dropbox
14. import urllib
15. #Cliente de dropbox
16. client = dropbox.client.DropboxClient("g4HPtIyX58IAAAAAAAANGRHZWs0LU4KM3g_aY8aQuHJGz-F-28pkiIJeSfyvZisX")
17. #cliente de Ubidots
18. api = ApiClient("0eff6dc3a4d6a05441de8c075c8722a79da0549b")
19. #Variables de ubidots (enviadas)
20. Ultrasonido= api.get_variable("568191b37625427c164dc635")
21. cap = api.get_variable("56844649762542724cecc6cd")
22. acel = api.get_variable("5682ce3f7625423e96e0b852")
23. rfid = api.get_variable("568c334a762542033ccd0540")
24. movimiento = api.get_variable("559eb2c076254224a07122ca")
25. Rec_Fac = api.get_variable("567f4c2376254214705886ee")
26. #Variables de ubidots (recividas)
27. Chicharra=api.get_variable("5680481b76254247b386f1fc")
28. ON_OFF=api.get_variable("569569ac7625427835679577")
29. #directorios necesarios
30. cascadePath = "haarcascade_frontalface_default.xml"
31. path = './iden'
32. #funcion del acelerometro
33. adxl345 = ADXL345()
34. #ID del llavero RFID
35. ID = [165, 73, 161, 58, 119]
36.
37. ##################### Tomar foto #####################
38. def TOMAR_FOTO():
39. camera=PiCamera()
40. rawCapture=PiRGBArray(camera)
41. faceCascade = cv2.CascadeClassifier(cascadePath)
42. recognizer = cv2.createLBPHFaceRecognizer()
43.
44. camera.capture(rawCapture, format="bgr")
45. img=rawCapture.array
46. time.sleep(0.1)
47. img=cv2.resize(img,(640,480))
48. cv2.imwrite('./screen.png',img)
49. rawCapture.truncate(0)
50. camera.close()
51. ##################### Camara #########################
52. def CAM():
53. GPIO.setmode(GPIO.BOARD)
54. GPIO.setup(13,GPIO.OUT)
55. camera=PiCamera()
56. rawCapture=PiRGBArray(camera)
57. faceCascade = cv2.CascadeClassifier(cascadePath)
58. recognizer = cv2.createLBPHFaceRecognizer()
59.
60. camera.capture(rawCapture, format="bgr")
61. img=rawCapture.array
62. time.sleep(0.1)
63. img=cv2.resize(img,(320,240))
64. cv2.imwrite('./iden/subject01_10.jpg',img)
65. rawCapture.truncate(0)
66. camera.close()
67.
68. recognizer.load('micara')
69.
70. image_paths = [os.path.join(path, f) for f in os.listdir(path) if f.endswith('.jpg')]
71. for image_path in image_paths:
72. predict_image_pil = Image.open(image_path)
73. predict_image_bn = np.array(predict_image_pil, 'uint8')
74. predict_image_bn = cv2.cvtColor(predict_image_bn, cv2.COLOR_BGR2GRAY)
75.
76. faces = faceCascade.detectMultiScale(predict_image_bn)
77. for (x, y, w, h) in faces:
78. predict_image_rec = predict_image_bn[y:y+h,x+5:x+w-5]
79. predict_image = cv2.resize(predict_image_rec,(160,120))
80. nbr_predicted, conf = recognizer.predict(predict_image)
81. nbr_actual = int(os.path.split(image_path)[1].split("_")[0].replace("subject", ""))
82. print conf,nbr_predicted
83. if nbr_predicted == 1 and conf<90:
84. print "es lina"
85. elif nbr_predicted == 2 and conf<90:
86. print "es michael"
87. Rec_Fac.save_value({'value':nbr_predicted})
88. GPIO.output(13,True)
89. time.sleep(1)
90. else:
91. print "no es niguno de los dos"
92. cv2.imshow("Recognizing Face", predict_image)
93. cv2.waitKey(10000)
94. GPIO.output(13,False)
95. ###################### RFID ##############################
96. def RFID():
97. MIFAREReader = MFRC522.MFRC522()
98.
99. (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
100.
101. if status == MIFAREReader.MI_OK:
102. print "Card detected"
103.
104. (status,uid) = MIFAREReader.MFRC522_Anticoll()
105.
106. if status == MIFAREReader.MI_OK:
107.
108. print uid,status
109.
110. if uid == ID:
111. rfid.save_value({'value':7})
112. return True
113. ###################### sonido ########################
114. def SOUND():
115. GPIO.setmode(GPIO.BOARD)
116. GPIO.setup(15,GPIO.OUT)
117. GPIO.output(15,True)
118. time.sleep(1)
119. GPIO.output(15,False)
120. time.sleep(1)
121. GPIO.output(15,True)
122. time.sleep(1)
123. GPIO.output(15,False)
124. time.sleep(1)
125. GPIO.output(15,True)
126. time.sleep(1)
127. GPIO.output(15,False)
128. time.sleep(1)
129. ####################### Acelerometro #################
130. def ACCEL():
131. axes = adxl345.getAxes(True)
132. print " y = %.3fG" % ( axes['y'] )
133. y=axes['y']*100
134. acel.save_value({'value':y})
135. time.sleep(0.05)
136. os.system("clear")
137. ################## Ultrasonido# #####################
138. def ULT():
139. GPIO.setmode(GPIO.BOARD)
140. trig=7
141. echo=12
142. GPIO.setup(trig,GPIO.OUT)
143. GPIO.setup(echo,GPIO.IN)
144. GPIO.output(trig,0)
145. time.sleep(1)
146. print("midiendo...")
147.
148. GPIO.output(trig,1)
149. time.sleep(0.00001)
150. GPIO.output(trig,0)
151.
152. while GPIO.input(echo)==0:
153. pass
154. start=time.time()
155. while GPIO.input(echo)==1:
156. pass
157. stop=time.time()
158. distancia=(stop-start)*17000
159. distancia=round(distancia,2)
160. print distancia
161. GPIO.output(trig,0)
162. if distancia <10:
163. Ultrasonido.save_value({'value':5})
164. else:
165. Ultrasonido.save_value({'value':0})
166. return distancia
167.
168. ################## Capacitivo(Interrupcion) ################
169. GPIO.setmode(GPIO.BOARD)
170. sig=40
171. GPIO.setup(sig,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
172.
173. def CAP_ON(sig):
174. if on_off=='9':
175. cap.save_value({'value':6})
176. global cont
177. cont=0
178. print"CAP"
179. time.sleep(0.1)
180. GPIO.add_event_detect(sig,GPIO.RISING,callback=CAP_ON)
181. ################### Movimiento #############################
182. GPIO.setmode(GPIO.BOARD)
183. mov=11
184. GPIO.setup(mov,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
185.
186. def MOV_ON(mov):
187. if on_off=='9':
188. movimiento.save_value({'value':8})
189. global cont
190. cont=0
191. print"MOV"
192. time.sleep(0.1)
193. GPIO.add_event_detect(mov,GPIO.RISING,callback=MOV_ON)
194. ################### Mirar si hay internet###################
195. def Check_Internet():
196. try:
197. stri="https://www.google.com"
198. data=urllib.urlopen(stri)
199. return True
200. except:
201. return False
202. ################### Main ###################################
203. cont=0
204. t=20
205. try:
206. while True:
207. Internet=Check_Internet()
208. lista=str(ON_OFF.get_values(1))
209. on_off=lista[180]
210. lista=str(Chicharra.get_values(1))
211. chicharra=lista[180]
212. print on_off
213. print chicharra
214. print Internet
215. if Internet==True:
216. if on_off=='9':
217. cont=cont+1
218. t=t+1
219. if chicharra=='1':
220. SOUND()
221. if cont==10:
222. cap.save_value({'value':0})
223. movimiento.save_value({'value':0})
224. cont=0
225. if t==30:
226. TOMAR_FOTO()
227. client.file_delete('screen.png')
228. f=open("./screen.png",'rb')
229. response=client.put_file('./screen.png',f)
230. t=0
231. ACCEL()
232. time.sleep(0.5)
233. ULT()
234. time.sleep(0.5)
235. else:
236. cap.save_value({'value':0})
237. movimiento.save_value({'value':0})
238. Ultrasonido.save_value({'value':0})
239. key=RFID()
240. RFID()
241. if key==True:
242. CAM()
243. else:
244. print "sin conexin"
245. time.sleep(2)
246. except KeyboardInterrupt:
247. GPIO.cleanup()
248. cap.save_value({'value':0})
249. movimiento.save_value({'value':0})
250. print "FIN"
ANEXO C- ARQUITECTURA ANDROID STUDIO

Figura 49. Arquitectura aplicacin Android.

Para ver el cdigo completo referirse al archivo App-final.

ANEXO E- VIDEO IMPLEMENTACIN DEL SISTEMA DE SEGURIDAD EN UN


AUTOMVIL.
Los videos que comprueban el funcionamiento del sistema pueden encontrarse en el contenido
del CD.

You might also like