Story Transcript
Desarrollo de Sistema de Seguridad para Automóviles con IOT y Smartphone
Lina María Toquica Ramírez 20102005082 Michael Leandro Guzmán Ruiz 20101005063
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA INGENIERÍA ELECTRÓNICA Bogotá D.C. 2016
DESARROLLO DE UN SISTEMA DE SEGURIDAD PARA AUTOMÓVILES CON IoT Y SMARTPHONE
Proyecto de Grado Para optar por el título de Ingeniero Electrónico
ING. Julián Rolando Camargo López Director del proyecto
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA INGENIERÍA ELECTRÓNICA Bogotá D.C. 2016
NOTA DE ACEPTACIÓN
_________________________________________________ _________________________________________________ _________________________________________________
_________________________________________________
FIRMA DEL DIRECTOR DEL PROYECTO
_________________________________________________
FIRMA DEL REVISOR
Bogotá, Enero de 2016
Acuerdo 19 de 1988 del Consejo Superior Universitario Artículo 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 corazón e iluminar mi mente y por haber puesto en mi camino a aquellas personas que han sido mi soporte y compañía en mi vida. A mi madre, Luz Elena, a mis abuelos, Gerardo y Eunice, y a mis tíos Andrés, Wilson y John Jairo por haberme apoyado en todo momento, por sus consejos, sus valores, por la motivación constante que me ha permitido ser una persona de bien, pero más que nada, por su amor. A toda mi familia y a mis amigos, de quienes he recibido siempre cariño y apoyo sincero. Lina María.
Dedico este proyecto a toda mi familia, especialmente a mis padres, Clara y Misael, a mis abuelos, Magdalena y José Antonio y a mi tía Paola, gracias por todo el amor y el apoyo que me han brindado. Michael Guzmán
“No creo que haya alguna emoción más intensa para un inventor que ver alguna de sus creaciones funcionando. Esa emoción 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 sabiduría y fuerzas para superar obstáculos y dificultades.
A nuestras familias, quienes a lo largo de toda nuestras vidas han apoyado y motivado nuestra formación académica, 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 compañeros de estudio y amigos, por su compañía, sus enseñanzas y brindarnos alegrías a lo largo de nuestra formación.
Al director del proyecto, por su confianza y orientación 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 jóvenes como nosotros, preparándonos para un futuro competitivo y formándonos como personas de bien.
Resumen El presente proyecto de grado pretende desarrollar una aplicación Smartphone para advertir cualquier irregularidad con la integridad de un automóvil 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 solución práctica, económica y accesible. Se establecieron los objetivos y la guía de trabajo en general. Se realizó la selección, pruebas de funcionamiento de los sensores que fueron utilizados en el sistema propuesto y conexión con el sistema embebido RASPBERRY PI B+ a través de PYTHON. Luego se implementó el algoritmo para el reconocimiento facial que fue utilizado en la apertura de puertas, también realizado en PYTHON. Una vez validado el comportamiento de lo anteriormente descrito, se elaboró la aplicación móvil para la interacción con el usuario, a través de ANDROID STUDIO, el entorno de desarrollo integrado para la plataforma Android. Finalmente, se realizó la integración de los sensores con el sistema embebido y así, con la aplicación para el completo funcionamiento del sistema de seguridad. Se hicieron pruebas del sistema ubicando la red de sensores estratégicamente en un automóvil, comprobando así el funcionamiento de cada uno de los sensores y se realizó también la conexión establecida con el sistema embebido encargado de subir los datos obtenidos a la nube, finalmente se verificó el correcto funcionamiento de la aplicación que se encarga de generar alguna acción a causa de los datos obtenidos de la nube. Se realizó la documentación 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 aplicación permite que su manejo sea sencillo, además envía las alertas de forma satisfactoria y las características tanto en hardware como en software de la raspberry pi permitieron diseñar el sistema de apertura de puertas planteado. Palabras Clave: Sensores, aplicación 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 Introducción ........................................................................................................................................ 14 1.
Fundamentos Preliminares .......................................................................................................... 15 1.1.
PLANTEAMIENTO DEL PROBLEMA: ........................................................................... 15
1.2.
JUSTIFICACIÓN ................................................................................................................ 16
1.3.
OBJETIVOS ........................................................................................................................ 18
1.3.1.
OBJETIVO GENERAL .................................................................................................. 18
1.3.2.
OBJETIVOS ESPECÍFICOS .......................................................................................... 18
1.4.
2.
3.
1.4.1.
FASE DE DISEÑO. ....................................................................................................... 18
1.4.2.
FASE DE IMPLEMENTACIÓN. ................................................................................... 18
1.4.3.
FASE DE EVALUACIÓN. ............................................................................................ 19
Marco Referencial ....................................................................................................................... 21 2.1.
ESTADO DEL ARTE: ......................................................................................................... 21
2.2.
MARCO TEÓRICO. ........................................................................................................... 24
2.2.1.
CONVERGENCIA DEL SECTOR AUTOMOTRIZ CON EL SECTOR ELECTRÓNICO. 24
2.2.2.
REDES DE SENSORES. ............................................................................................... 26
2.2.3.
PROCESAMIENTO DIGITAL DE IMÁGENES. ...................................................................... 30
2.2.4.
SISTEMAS EMBEBIDOS. ............................................................................................ 33
2.2.5.
INTERNET DE LAS COSAS IOT ................................................................................. 35
DISEÑO .......................................................................................................................................... 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.
4.
METODOLOGÍA: ............................................................................................................... 18
RECURSOS ......................................................................................................................... 42
3.3.1.
HUMANOS. .................................................................................................................. 42
3.3.2.
FÍSICOS Y MATERIALES............................................................................................ 43
3.3.3.
ECONÓMICOS ............................................................................................................. 43
Implementación ........................................................................................................................... 44 4.1.
SELECCIÓN 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.
ACELERÓMETRO ADLX345 ...................................................................................... 46
4.1.5.
RFID .............................................................................................................................. 47
4.2.
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.
ACELERÓMETRO ADXL345 ...................................................................................... 57
4.4.
RECONOCIMIENTO FACIAL Y RFID ............................................................................ 59
4.4.1.
RFID .............................................................................................................................. 59
4.4.2.
RECONOCIMIENTO FACIAL...................................................................................... 61
4.5.
5.
UBIDOTS Y RASPBERRY. ................................................................................................ 48
DESARROLLO DE LA APLICACIÓN ANDROID. ........................................................ 66
4.5.1.
HERRAMIENTAS Y TECNOLOGÍAS UTILIZADAS PARA LA APLICACIÓN. ....... 66
4.5.2.
FASES DE IMPLEMENTACIÓN .................................................................................. 68
Evaluación.................................................................................................................................... 82 5.1.
UBICACIÓN ESTRATÉGICA E LA RED DE SENSORES EN EL AUTOMÓVIL: ..... 82
6.
Análisis de Resultados ................................................................................................................. 84
7.
Conclusiones ................................................................................................................................ 87 Trabajos Futuros ............................................................................................................................. 88
Referencias............................................................................................................................................ 89 ANEXOS.............................................................................................................................................. 94 ANEXO A-LIBRERÍAS SENSORES PYTHON. ........................................................................... 94 ANEXO B- IMPLEMENTACIÓN PYTHON .............................................................................. 101 ARQUITECTURA ANDROID STUDIO...................................................................................... 105 ANEXO E- VIDEO IMPLEMENTACIÓN DEL SISTEMA DE SEGURIDAD EN UN AUTOMÓVIL. .............................................................................................................................. 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 ELECTROMECÁNICO PARA LA ACELERACIÓN 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. IMÁGENES LBP DE UNA IMAGEN MODIFICADA ARTIFICIALMENTE [46]. ................................................................................................................................. 33 FIGURA 9. DIAGRAMA DE BLOQUES SIMPLIFICADO DE UN MÓDULO TÍPICO 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 AUTOMÓVILES. .................................................................. 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. ACELERÓMETRO ADLX345 [67]........................................................... 47 FIGURA 22. MÓDULO RFID-RC522 ............................................................................ 48 FIGURA 23. INTERFAZ DE INSCRIPCIÓN EN UBIDOTS [68].................................. 48 FIGURA 24. INTERFAZ DE CREACIÓN 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.DISTRIBUCIÓN DE LOS PINES DE LA RASPBERRY PI [61]. .............. 52 FIGURA 30. ADAPTADOR WIFI TP-LINK TL-WN725N ............................................ 53 FIGURA 31.CONEXIÓN DEL SENSOR CAPACITIVO TTP223B A LA RESPBERRY PI ................................................................................................................................. 54 FIGURA 32.CÓDIGO EN PYTHON PARA EL SENSOR TTP223B ............................. 54 FIGURA 33.VARIABLE DEL SENSOR CAPACITIVO EN UBIDOTS ........................ 55 FIGURA 34. CONEXIÓN DEL SENSOR DE MOVIMIENTO HC-SR501 .................... 55
FIGURA 35. CÓDIGO EN PYTHON DEL SENSOR DE MOVIMIENTO HC-SR501 .. 55 FIGURA 36. VARIABLE DEL SENSOR DE MOVIMIENTO EN UBIDOTS ............... 56 FIGURA 37. CONEXIÓN DEL SENSOR DE ULTRASONIDO HC - SR04 .................. 56 FIGURA 38. CÓDIGO DEL SENSOR DE ULTRASONIDO ......................................... 57 FIGURA 39. VARIABLE DEL SENSOR DE ULTRASONIDO EN UBIDOTS ............. 57 FIGURA 40. CONEXIÓN DEL ACELERÓMETRO ADXL345 .................................... 58 FIGURA 41. CÓDIGO DEL ACELERÓMETRO ADXL345¡ERROR! MARCADOR NO DEFINIDO. FIGURA 42. VARIABLE DEL SENSOR DEL ACELERÓMETRO EN UBIDOTS¡ERROR! MARCADOR NO DEFINIDO. FIGURA 43. MENÚ PARA HABILITAR I2C EN RASPBERRY PI .............................. 58 FIGURA 44. CÓDIGO DEL ACELERÓMETRO ADXL345 ......................................... 59 FIGURA 45. VARIABLE DEL SENSOR DEL ACELERÓMETRO EN UBIDOTS....... 59 FIGURA 46. CONEXIÓN DEL MÓDULO RFID A LA RASPBERRY PI ..................... 60 FIGURA 47. MENÚ PARA HABILITAR SPI EN RASPBERRY PI .............................. 60 FIGURA 48. CÓDIGO DEL MÓDULO RFID................................................................ 61 FIGURA 49. MENÚ DE CONFIGURACIÓN DE RASPBERRY PI .............................. 62 FIGURA 50. CARACTERÍSTICAS DE DOS RECTÁNGULOS (A), CARACTERÍSTICAS DE TRES RECTÁNGULOS (B), CARACTERÍSTICAS DE CUATRO RECTÁNGULOS (C) [72] ..................................................................................................................... 62 FIGURA 51. CÓDIGO PARA RECONOCER ROSTROS. ............................................. 63 FIGURA 52. EXTRACCIÓN DEL ROSTRO EN LA IMAGEN ..................................... 63 FIGURA 53. CÓDIGO PARA REALIZAR EL ENTRENAMIENTO. ............................ 64 FIGURA 54. IMÁGENES PARA EL ENTRENAMIENTO DEL SISTEMA DE RECONOCIMIENTO FACIAL. ............................................................................... 64 FIGURA 55. CÓDIGO PARA REALIZAR LA IDENTIFICACIÓN. ............................. 65 FIGURA 56. PRUEBA DEL RECONOCIMIENTO FACIAL DEL PERSONAJE ENTRENADO. ......................................................................................................... 66 FIGURA 57. DATOS PORCENTUALES SOBRE LA DISTRIBUCIÓN DE VERSIONES DE ANDROID, ENERO DE 2016 [73]. .......................................................................... 67 FIGURA 58. INTERFAZ GRÁFICA DE BIENVENIDA. .............................................. 68 FIGURA 59. PÁGINA 000WEBHOST.COM ¡ERROR! MARCADOR NO DEFINIDO. FIGURA 60. CREACIÓN DE CUENTA 000WEBHOST. .............................................. 69 FIGURA 61. CARACTERÍSTICAS Y UTILIDADES DE LA CUENTA. ..................... 70 FIGURA 62. CREACIÓN DE LA BASE DE DATOS MYSQL...................................... 70 FIGURA 63. ESTRUCTURA BASE DE DATOS. .......................................................... 71 FIGURA 64. CONEXIÓN CON LA BASE DE DATOS. ................................................ 72 FIGURA 65. ADMINISTRADOR DE ARCHIVOS PHP. .............................................. 72 FIGURA 66. COMPROBACIÓN CONEXIÓN BASE DE DATOS. ............................... 72 FIGURA 67. ESTAMENTO SQL INSERT..................................................................... 73 FIGURA 68. COMPROBACIÓN INSERCIÓN DATOS. .... ¡ERROR! MARCADOR NO DEFINIDO.
FIGURA 69. CONEXIÓN BASE DE DATOS Y CADENA JSON PARA OBTENER DATOS. ................................................................................................................................. 73 FIGURA 70. VALIDACIÓN DE CADENA JSON. ........................................................ 74 FIGURA 71.USUARIO REGISTRADO EN LA BASE DE DATOS. ............................. 75 FIGURA 72. (A) INGRESO USUARIO REGISTRADO. (B) USUARIO Y CONTRASEÑA INCORRECTA. ........................................................................................................ 75 FIGURA 73. (A) INTERFAZ REGISTRAR. (B) TABLA CON LOS DATOS PROPORCIONADOS POR EL USUARIO. ............................................................. 76 FIGURA 74- INTERFAZ GRÁFICA ACTIVAR SISTEMA. ......................................... 76 FIGURA 75. VARIABLE ACTIVAR SISTEMA.¡ERROR! MARCADOR NO DEFINIDO. FIGURA 76. LIBRERÍAS UBIDOTS. ............................................................................ 77 FIGURA 77. OBTENCIÓN 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 OBTENCIÓN DE VARIABLE MOVIMIENTO. ................................................................................................................................. 78 FIGURA 81. CLASE ASYNTASK PARA EL ENVÍO DE VARIABLES. ..................... 78 FIGURA 82. (A) ESPECIFICACIONES DE LA VARIABLE ONOFF. (B) ULTIMOS DATOS OBTENIDOS DESDE ANDROID............¡ERROR! MARCADOR NO DEFINIDO. FIGURA 83. CÓDIGO PARA ENVIAR NOTIFICACIONES. ....................................... 79 FIGURA 84. NOTIFICACIÓN EN LA BARRA DE ESTADO SENSOR DE MOVIMIENTO ACTIVADO ............................................................................................................. 80 FIGURA 85. INTERFAZ DE ALERTAS........................................................................ 80 FIGURA 86. OPCIÓN SHARE (COMPARTIR). ............................................................ 81 FIGURA 87. IMAGEN OBTENIDA EN LA APLICACIÓN DESDE DROPBOX. ........ 81 FIGURA 88. VARIABLE ALARMA UBIDOTS OBTENIDA DESDE ANDROID.¡ERROR! MARCADOR NO DEFINIDO. FIGURA 90. UBICACIÓN DEL SENSOR DE ULTRASONIDO. .................................. 82 FIGURA 91. UBICACIÓN DEL SENSOR CAPACITIVO. ............................................ 82 FIGURA 92. UBICACIÓN DEL MÓDULO RFID. ........................................................ 83 FIGURA 93. UBICACIÓN DE LA CÁMARA. .............................................................. 83 FIGURA 89. IMÁGENES DE PRUEBA DE APLICACIÓN PARA EL SISTEMA DE SEGURIDAD PARA AUTOMÓVILES. ..¡ERROR! MARCADOR NO DEFINIDO. Índice de Tablas TABLA 1. ESPECIFICACIONES TÉCNICAS MÓDULO WIFI¡ERROR! MARCADOR NO DEFINIDO. TABLA 2. COSTOS. ....................................................................................................... 43 TABLA 3. RESPUESTA DE LOS SENSORES ULTRASONIDO Y ACELERÓMETRO.84 TABLA 4. NIVEL DE CONFIANZA DEL RECONOCIMIENTO FACIAL. .................. 86 TABLA 5. TIEMPO DE RESPUESTA DE LOS SENSORES A LAS NOTIFICACIONES.86
Introducción El uso de automóviles es muy común en el mundo actual, pues existe una gran variedad de ellos en el mercado y es por esta razón que la industria automovilística se renueva a pasos agigantados realizando mejoras a sus productos. La mayoría de estas mejoras están dirigidas al campo de la seguridad garantizando la integridad del automóvil y agregando un valor importante al vehículo [1]. Hasta la década de 1960 un auto convencional estaba básicamente conformado por componentes mecánicos; la integración de componentes electrónicos inicia su ascenso en los años setenta En promedio, un nuevo vehículo integra más de 40 millones de unidades de control electrónico, 8 mil metros de cables y más de 10 millones de líneas de código software [2]. Por esta razón se puede afirmar que el vehículo actual se parece cada vez más a una computadora y cada vez menos a los diseños surgidos al principio del siglo XX. Esta nueva capacidad de los vehículos de procesar información y de adaptarse al ambiente convierte a este sistema complejo en un sistema complejo adaptable [3]. El amplio desarrollo electrónico en el sector vehicular ha traído consigo múltiples estudios y avances tecnológicos en el área de los sistemas de seguridad. Es por esto que el presente proyecto documenta el diseño y la implementación de un sistema de seguridad para automóviles, que a partir de una red de sensores conectada a un sistema embebido que se encarga de subir a la nube información adquirida por los sensores (IoT) [4], permite advertir al usuario que su vehículo está en peligro y puede realizar algún tipo de acción como activar una alarma, obtener una imagen o advertir a la policía, por medio de una aplicación para Smartphone con plataforma Android. Además el proyecto incluye también 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 automóvil y es documentada cada etapa de desarrollo.
1. Fundamentos Preliminares 1.1. PLANTEAMIENTO DEL PROBLEMA: A pesar de los importantes avances tecnológicos, la cantidad de hurtos de automóviles y sus partes es exorbitantemente alta. En los últimos cinco años en Colombia se han denunciado como hurtados 44.490 automotores (art. 239 del Código Penal Colombiano –Ley 599 de 2000–); por este delito se han capturado en el país, en estos años, 3.783 personas, y por receptación, 13.259; además, se han recuperado por la Policía un total de 34.272 automotores (1.267 de otros países).[5] Esta problemática se nutre, en gran medida, del aumento del parque automotor a nivel mundial, la inserción del vehículo como parte de la cotidianidad y su uso cada vez más extendido; todo sumado a la connotación social que tiene la adquisición y uso de un vehículo (considerado como un sinónimo de estatus). Este fenómeno de incremento es origen de recursos para los criminales y organizaciones delincuenciales, y también fuente de atención analítica para los criminólogos y las autoridades [5]. Debido al alto costo del uso de parqueaderos públicos es muy frecuente que la gente estacione su auto en las aceras de la calle por cuestión de economía 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 vehículos. Las últimas generaciones de autos se hacen cada vez más dependientes del uso de una CPU que controla sus aspectos principales e interacción con el usuario. Los vehículos actuales (según modelo) ya incorporan un sistema de alarma original de fábrica. Este puede ser básico o completo según la gama del vehículo. Todas los sistemas de alarma tienen funciones de monitoreo normalizadas que se basan en el monitoreo de puertas, capó y baúl y disparo por
apertura. También incluyen un sistema de disparo por rotura de cristales que puede ser por sonido, ultrasonido, rotura de pista sensible, etc. Los vehículos modernos incorporan también un sistema de bloqueo de arranque en la llave original llamado transponder. Con este sistema el vehículo 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 población son en su mayoría 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 eléctrico, 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 reunión de personas, procesos, datos y cosas para hacer conexiones en red más relevantes y valiosas que nunca, convirtiendo la información en acciones que crean nuevas capacidades, experiencias más enriquecedoras, y oportunidades económicas sin precedentes para las empresas, los individuos y los países [6]. Este sistema aprovechará los datos proporcionados por sensores estratégicamente colocados en el auto que serán procesados y guardados en una nube en internet, a partir de un sistema embebido que se conecta a internet a través de un módulo WIFI. Además, 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 vehículo, el sistema hará una captura de imagen del rostro de éste, para que así el propietario del vehículo tome las acciones pertinentes con la información suministrada. Para la interacción con el usuario se desarrollará una aplicación para Smartphone la cual permitirá dar aviso sobre algún riesgo para la integridad del auto, aprovechando de esta forma la permanente conexión a internet móvil con que, según el Ministerio de Tecnologías de la Información y las comunicaciones (TIC), cuentan aproximadamente 5.170.887 usuarios en el país [7]. 1.2. JUSTIFICACIÓN El desarrollo de este proyecto propicia espacios de trabajo que cubren diferentes áreas del conocimiento todas ellas relacionadas directamente con la Ingeniería Electrónica. El desarrollo
de un sistema de seguridad para un automóvil que permita, por medio de una aplicación, para Smartphone advertir cualquier irregularidad con la integridad del auto, garantiza poner en práctica el manejo de tarjetas de desarrollo como microcontroladores y sistemas embebidos, obtención de datos conseguidos a partir de las herramientas que ofrece la instrumentación industrial como los sensores, y el uso del procesamiento digital de imágenes para reconocimiento facial. Por tal circunstancia, este proyecto debe encadenar las múltiples áreas de conocimiento de la ingeniería electrónica enfocándolas a un objetivo común que es el desarrollar un sistema de seguridad que mejorará las condiciones de vida de las familias que posean un vehículo 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 práctico de lo aprendido durante las diferentes clases de la ingeniería y cuyo principio será proporcionar soluciones para la culminación de este proyecto. Con el desarrollo de un sistema como el propuesto, se puede intensificar e incentivar la aplicación de la electrónica en la realización de nuevos proyectos que ayuden a mejorar el bienestar del ser humano y dar soluciones prácticas a problemas que se presentan en el día a día de la sociedad contemporánea. A nivel socio-económico se puede observar que es evidente como el desarrollo de las nuevas tecnologías ha influido directamente en la vida de las personas y el enfoque de la sociedad, lo que hace indispensable la participación de la ingeniería en los diferentes procesos cotidianos que se llevan hoy día. Una manera de hacerlo es con la contribución a los desarrollos de las nuevas tecnologías y la implementación 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 solución a un problema de seguridad cotidiana por medio de los sistemas embebidos y el procesamiento digital de imágenes. Además permite brindar al usuario la comodidad y practicidad de tener las alertas en sus celulares o tabletas de cualquier posible perjuicio a su automóvil. Asimismo, en el campo personal, la realización de este proyecto, tanto durante como en la culminación, dará herramientas para la formación de habilidades como ingenieros a los autores. Se busca la inclusión en el campo de la toma y adquisición de información por medio de imágenes y sensores, y el desarrollo de una aplicación para Smartphone ya que estos sistemas
producen cierto nivel de interés y expectativa, por lo tanto también se hace necesario para los autores adicionar conceptos afines. Por otra parte, es importante la realización 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 planeación y ejecución de los métodos de trabajo, que además de ser importantes en la ingeniería hacen parte indispensable de la formación 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 adquisición de datos proporcionados por sensores instalados en el vehículo y una aplicación para Smartphone que permite la interacción con usuario. 1.3.2. OBJETIVOS ESPECÍFICOS •
Realizar la selección de los diferentes sensores adecuados para el sistema, haciendo un estudio de la posible ubicación espacial de estos quienes que conformaran la red y que transmitirán datos adquiridos.
•
Realizar la conexión 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 imágenes por medio de una cámara digital.
•
Generar una aplicación para Smartphone, la cual permite la interacción entre el usuario y el sistema de seguridad.
1.4. METODOLOGÍA: Para alcanzar los objetivos propuestos en este proyecto que en general busca desarrollar una aplicación para Smartphone para advertir cualquier irregularidad con la integridad del automóvil, se propuso trabajar en tres fases. (i) Fase de diseño, (ii) Fase de Implementación y, (iii) Fase de Evaluación. 1.4.1. FASE DE DISEÑO.
Para la creación de esta idea fue necesario identificar el problema descrito anteriormente y por medio de éste buscar una solución práctica, económica y accesible. En esta etapa se describió el problema, los objetivos y la guía de trabajo en general así como se hizo necesaria la escritura del anteproyecto presentado anteriormente. 1.4.2. FASE DE IMPLEMENTACIÓN. En esta fase se presenta el aspecto práctico del proyecto en donde se desarrolló nuestra idea enmarcada en alcanzar el objetivo general. Para desarrollar el sistema se crearon varias etapas: Realizar la selección de los diferentes sensores adecuados para el sistema, haciendo un estudio de la posible ubicación espacial de estos quienes que conformaran la red y que transmitirán datos adquiridos. En esta etapa se realizó la selección 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 cámaras y sensores, como por ejemplo la iluminación a la que estarán expuestos los equipos y el suministro de energía para el correcto funcionamiento de estos. Conexión entre la red de sensores y el sistema embebido. Durante esta etapa se realizó la conexión entre la red de sensores y el sistema embebido RASPBERRY PI. Procesamiento de la información adquirida. Luego de realizar la conexión entre sensores y la tarjeta de desarrollo, se prosiguió a almacenar y procesar la información adquirida y subirla a internet. Toma y procesamiento de la imagen para el reconocimiento facial. Se adquirieron imágenes por medio de la cámara para realizar el análisis de parámetros y características de rostros que se implementaran en el sistema para el correcto funcionamiento de apertura de puertas. Diseño de la aplicación para Smartphone tipo Android que advierta cualquier irregularidad para la integridad del automóvil. En esta etapa se diseñó, implementó y puso en pruebas una aplicación en la plataforma Android para teléfonos inteligentes y tabletas que advierta al usuario por medio de notificaciones que su auto está siendo intervenido de alguna forma.
Integración de la red de sensores, la tarjeta de desarrollo y la aplicación. En esta etapa se integraron cada una de las etapas anteriores para conformar el sistema completo. 1.4.3. FASE DE EVALUACIÓN. Finalmente, una vez desarrollada la idea principal del proyecto, se hizo la consolidación de la información obtenida y se presentarán en forma de evidencias así: -
Prueba en un automóvil.
Se hará una presentación a partir de un video, del sistema funcionado correctamente en un automóvil, demostrando todas las ventajas que conlleva. Se responderán preguntas y se aclararán todas las dudas que puedan surgir frente al proceso de desarrollo y el funcionamiento de nuestro sistema de seguridad. -
Documentación.
A lo largo de las diferentes etapas mencionadas anteriormente se llevó a cabo la compilación de los avances y resultados obtenidos en el transcurso del proyecto. Para ello se tendrán en cuenta las referencias bibliográficas requeridas durante el desarrollo del mismo, y se prosiguió a la redacción de un informe que describa detalladamente la construcción 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 automovilístico. De esta forma se analizará dicha situación desde lo identificado en primer lugar en relación al sector automotor, luego desde la incorporación de IOT en este campo tecnológico y se concluirá con la revisión de la literatura y trabajos investigativos enfocados en estos campos. Actualmente existen varios tipos de alarmas y sistemas de seguridad para automóvil 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 clasificación de sistemas de seguridad y alarmas que se brinda en la página web Moto Rusa en Argentina al usuario actualmente. Por ejemplo, en cuanto a una alarma básica 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 vías, se presenta un sistema de seguridad vehicular que puede contar con controles bidireccionales, estos métodos de alarma cuentan con un sistema de comunicación muy eficiente entre el dispositivo de seguridad y el mando que lo controla y asimismo, el mando recibe órdenes de la alarma y ésta también puede recibir órdenes del mando para conocer el estado del vehículo. Moto Rusa también 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. Además ofrece la posibilidad de instalar una alarma de 2 vías 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 teléfono celular y puede controlar la alarma mediante el teléfono vía GMS. Finalmente, también se ofrece la alarma
con localizador GPS que se encarga de comunicar las coordenadas GPS del auto enviando SMS al móvil. 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 inclinación que emplean detectores de mercurio para proteger al auto contra ladrones con grúa y hoy en día ya se encuentran disponibles los sensores por acelerómetro que detectan diferencias de aceleración lo que hacen que se detecten movimientos en cualquier sentido incluso protegiendo el robo de las ruedas del auto. Además se cuenta con sensores de corte de alimentación que detectan si se desconecta la batería. Sensores de botón para las puertas, baúl y capot y sensores de Micrófono: para proteger los cristales. Finalmente, otros sensores utilizados son los sensores volumétricos 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 vehículo y sensores de puesta en contacto que detectan la puesta en marcha del vehículo[8]. A pesar de que en Colombia se consiguen este tipo de sistemas, la información que se obtiene de las empresas es limitada por lo que se la información se obtiene de la página web de la tiende Moto Rusa que ofrece información más detallada sobre el tema. En este momento, las aplicaciones del internet de las cosas son muy numerosas, ya que es un concepto relativamente nuevo (más que todo en Latinoamérica), cada día los ingenieros experimentan más y más con nuevos posibles aplicativos en esta área. Por ejemplo Dave Evans de Cisco (2011) menciona algunos ejemplos en su documento Internet de las cosas Cómo la próxima evolución de Internet lo cambia todo [9]. A continuación 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 dueño del ganado pueda monitorear la salud y el movimiento de este para poder obtener carne más saludable y de mejor calidad. En promedio cada vaca genera alrededor de 200 Megabytes de información al año [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 cúbico. Los habitantes de
Warden Road pagan por este servicio USD 0,03. Vale la pena aclarar que la zona más pobre entre las anteriormente mencionada es Dhariva, y es claro que estos pagan 37 veces más por el agua, que es una necesidad humana básica. Y la explicación de porqué existe esta diferencia de precios es que en la zonas más pobres es más costoso prestar servicios, ya que en estas zonas se presentan situaciones de robo, infraestructuras ineficientes y pérdidas de agua [9]. Gracias a sus sensores omnipresentes y a sistemas conectados, IOT proporcionará a las autoridades más información y control a fin de identificar y corregir estos problemas. De esta forma, será posible que los servicios públicos funcionen con más rentabilidad y así exista un incentivo adicional para mejorar las infraestructuras de los vecindarios más pobres. El aumento de la eficacia permitirá disminuir los precios [9]. Mejor calidad de vida para los ancianos: ya que la población de ancianos es bastante elevada, se puede crear un dispositivo portátil que permita monitorear los signos vitales de una persona y envíe alertas a los médicos encargados de su salud, o pueda percibir si alguna persona que algún impedimento tenga algún 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, domótica, traking de objetos perdidos, pastillas inteligentes, enchufes conectados, son algunos de los dispositivos que podemos encontrar en postscapes.com (2015). En cuanto al área automovilística, se ha usado IOT para crear varios dispositivos, como asistentes de conducción y dispositivos que contribuyan a la seguridad. Algunos ejemplos de dispositivos como estos serán mencionados a continuación: Automatic: es un asistente de conducción inteligente que le puede ahorrar dinero en gasolina, recuerda dónde 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 inalámbrica los datos a la nube donde se puede supervisar
su estado mecánico o ver dónde y qué tan rápido el conductor está conduciendo en tiempo real [10]. En cuanto a lo que con seguridad tiene que ver esta empresa fábrica algunos dispositivos de rastreo y asistentes de conducción como lo que se mencionan continuación: Carlock: da la ubicación del vehículo al usuario por medio de GPS y envía los datos a su teléfono 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 algún tipo de accidente [10]. Estos dispositivos son de un tamaño bastante cómodo y claramente su diseño permite una instalación simple en cualquier automóvil. A pesar de que son dispositivos bastante útiles, en Colombia son muy pocas las empresas que actualmente prestan servicios de este tipo, además que sus limitan a funciones concretas. Además su precio es considerablemente alto ya que cada uno de estos cuesta alrededor de unos 100 dólares americanos. 2.2.MARCO TEÓRICO. 2.2.1. CONVERGENCIA ELECTRÓNICO.
DEL
SECTOR
AUTOMOTRIZ
CON
EL
SECTOR
Durante el periodo 1960-1969, las empresas del sector automotriz experimentaron el uso de componentes electrónicos. En 1960, Electric Autolite y Delco-Remy iniciaron el uso de transistores con el propósito de regular la energía eléctrica de los interruptores (breaker points). En 1961, Joseph Lucas, Ltd., patentó un sistema de encendido transistorizado que elimina la vieja tecnología 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 difícil la integración de los componentes electrónicos en un vehículo automotor. La industria requiere componentes pequeños, de bajo costo, confiables, resistentes, no sensibles a las altas temperaturas y a la vibración que proviene de los motores de combustión y/o de las condiciones de las carreteras. Los componentes grandes, como los “bulbos al vacío” (vacuum tube), son pesados, voluminosos, frágiles y añaden calor al sistema; además, son incapaces de operar en el ambiente hostil de un motor de combustión interna, debido a los gases y los elevados niveles de vibración y temperatura (200°F) del motor [14]. Por todo ello, fue necesario mejorar la tecnología de los
componentes electrónicos; en consecuencia, se empezó a requerir de nuevos diseños. Con el desarrollo de los microprocesadores o unidades de control electrónico (ECU, por sus siglas en inglés) se inició una fase comercial acelerada de integración. A principios de la década de 1970, se introdujo el sistema electrónico de inyección de combustible; desde entonces el proceso no se ha detenido: aire acondicionado automático (1971), sistema electrónico de control de frenos (1971), sistema de encendido electrónico (1973) [13]. La integración de los componentes electrónicos en la industria automotriz se produjo como resultado de los siguientes sucesos: I) La intensa competencia al interior del sector automotriz por producir vehículos con atributos novedosos. II) Las exigencias gubernamentales de disminuir los niveles de emisión de contaminantes, lo cual se convierte en un poderoso mecanismo de convergencia; el ejemplo paradigmático es la transición del carburador al sistema electrónico de inyección de combustible (fuel inyection). III) Las mayores exigencias de seguridad por parte de los usuarios y de los gobiernos de países desarrollados provocan la transformación de diferentes áreas funcionales del vehículo, por ejemplo, las bolsas de aire y el sistema de frenos controlado electrónicamente. IV) Los usuarios demandan vehículos con mayor confort, entretenimiento (CD, TV, ipod) e información (GPS). V) A partir de la crisis energética de inicios de 1970 y del incremento en los precios del petróleo, el mercado se inclinó por vehículos con mayor economía de combustible; esta situación provocó reemplazar el carburador y los sistemas mecánicos (pesados) por sistemas electrónicos. VI) La necesidad de resolver desequilibrios tecnológicos de la vieja tecnología asociada con la mecánica y que sólo el nuevo paradigma de la electrónica puede resolver; por ejemplo, utilizando la antigua tecnología no era posible contar con un sistema de encendido más eficiente y de bajo mantenimiento, pero el sistema electrónico de encendido si lo hizo. VII) El incremento en la confiabilidad y la calidad de los componentes electrónicos alientan la incorporación de nuevos y más complejos sistemas que cumplen con un mayor número de funciones. VIII) la madurez de los procesos de manufactura y ensamble de los componentes electrónicos permite diseñar componentes electrónicos altamente específicos en el sector automotriz, como es el caso de la producción del sistema electrónico de inyección de combustible, pues requiere maquinaria de alta precisión y confiabilidad para ser producido [13,14, 15]. ¿De qué manera esta convergencia ha transformado la estructura de costos de los vehículos? El valor promedio de los componentes electrónicos por vehículo en 1977 fue de 110
dólares, lo que representaba el 5% del costo total de materiales y componentes de un fabricante de vehículos. Para el año 2000, el 20% del costo de un vehículo se relacionaba con los componentes electrónicos (Murray, 2009), lo que representó 1 800 dólares [16]. Actualmente, en un vehículo promedio los componentes electrónicos contribuyen con más del 40% del costo total [17]. En los vehículos híbridos, el peso de los componentes electrónicos en la estructura de costos es aún mayor: el contenido electrónico (incluyendo la batería y el sistema de control de la batería) tiene un valor de 5 900 a 7 800 dólares; esto es, de 40 a 50% del costo total del vehículo híbrido [18]. Sintetizando, la sustitución de componentes mecánicos por componentes electrónicos originó un cambio importante en la estructura de costos del vehículo; a continuación se menciona este proceso. 2.2.2. REDES DE SENSORES. Una red de sensores se compone de un gran número de nodos de sensores, que están densamente desplegadas ya sea dentro del fenómeno o muy cerca de ella. La posición de los nodos sensores no necesita ser diseñado o pre-determinado. Esto permite el despliegue aleatorio en terrenos de difícil acceso o las operaciones de socorro. Por otro lado, esto también significa que los protocolos de redes de sensores y algoritmos deben poseer capacidades de autoorganización. Otra característica única de las redes de sensores es el esfuerzo cooperativo de los nodos sensores. Nodos sensores están equipados con un procesador de a bordo. En lugar de enviar los datos en bruto a los nodos responsables de la fusión, los nodos sensores usan sus habilidades de procesamiento a nivel local realizan cálculos sencillos y transmitir sólo los datos requeridos y parcialmente procesados. Las características descritas anteriormente aseguran una amplia gama de aplicaciones para redes de sensores. Algunas de las áreas de aplicación son la salud, militares y de seguridad. Una de las limitaciones más importantes de nodos de sensores es el requisito de bajo consumo de energía. 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 conservación de energía. Deben contar con mecanismos incorporados tradeoff que le dan la opción de prolongar la vida útil de la red a costa de rendimiento inferior o superior retardo de transmisión al usuario final [20].
2.2.2.1.
Factores que influyen en el diseño de redes de sensores.
Un diseño de red de sensores está influenciada por muchos factores, que incluyen la tolerancia a fallos; escalabilidad; costos de producción; entorno operativo; topología de la red del sensor; limitaciones de hardware; medios de transmisión; y consumo de energía. A continuación 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 energía, tener daño
físico 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 cuestión de tolerancia fiabilidad o culpa. La tolerancia a fallos es la capacidad de mantener las funcionalidades de redes de sensores sin ninguna interrupción debido a fallos en los nodos de sensores [20]. -
Escalabilidad. El número de nodos de sensores desplegados en el estudio de un fenómeno puede estar en
el orden de cientos o miles. Dependiendo de la aplicación, el número puede llegar a un valor extremo de millones. Los nuevos esquemas deben ser capaces de trabajar con este número de nodos. También deben utilizar la naturaleza de alta densidad de las redes de sensores [20]. - Costos de producción Dado que las redes de sensores consisten en un gran número 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 más 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 básicos: una unidad de detección,
una unidad de procesamiento, una unidad de transceptor y una unidad de potencia. También pueden tener componentes adicionales dependientes de aplicación tales como un sistema hallazgo ubicación, un generador de energía y un movilizador [20].
2.2.2.2.
Tipos de sensores:
En la actualidad se pueden encontrar diversas formas de captar información del ambiente en el que se desarrolla la humanidad. Es por esto que existen múltiples tipos de sensores que pueden ser utilizados con fines específicos. A continuación 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 oímos
normalmente, salvo que tienen una frecuencia mayor que la máxima audible por el oído humano. Ésta comienza desde unos 16 Hz y tiene un límite 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 básico 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 reflexión 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 actúa
como dieléctrico, tal y como se muestra en la figura 2 en donde se pueden ver las líneas de campo.
Figura 2. Funcionamiento interno sensor capacitivo [42].
Cuando se acerca un material frente a los electrodos, las líneas de campo comienzan a ejercer influencia sobre el material, realizándose así la polarización [42]. -
Acelerómetro. Los acelerómetros son dispositivos electromecánicos que detectan las fuerzas de
aceleración, ya sea estática o dinámica. Las fuerzas estáticas incluyen la gravedad, mientras que las fuerzas dinámicas pueden incluir vibraciones y movimiento. Los acelerómetros pueden medir la aceleración en uno, dos o tres ejes. Los de tres ejes son más comunes conforme los costos de producción de los mismos baja [43].
Figura 3. Sistema micro electromecánico para la aceleración en 1 eje [43].
-
Sensor de movimiento.
El sensor de movimiento es un dispositivo electrónico que actúa cuando detecta movimiento en el área vigilada, sus utilidades son diversas, en algunos casos se utiliza para seguridad y otras como automatización. Básicamente hay dos tipos diferente según 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 más. El campo de radiofrecuencia genera una corriente eléctrica sobre la bobina de recepción del dispositivo. Esta señal es rectificada y de esta manera se alimenta el circuito. Cuando la alimentación llega a ser suficiente el circuito transmite sus datos. El interrogador detecta los datos transmitidos por la tarjeta como una perturbación del propio nivel de la señal [45].
2.2.3. PROCESAMIENTO DIGITAL DE IMÁGENES. El procesamiento digital de imágenes es un campo de investigación 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 matemáticas, la computación, y el conocimiento cada vez mayor de ciertos órganos del cuerpo humano que intervienen en la percepción y en la manipulación de las imágenes. Aunado a esto, la inquietud del hombre por imitar y usar ciertas características del ser humano como apoyo en la solución de problemas. El desarrollo de los métodos de procesamiento digital de imágenes tiene su origen en dos áreas principales de aplicación: el mejoramiento de la información pictórica para la
interpretación humana, y el procesamiento de datos de la imagen para la percepción de máquina autónoma en el que se incluyen etapas de transmisión y/o almacenamiento de estos datos. La herramienta usada en el tratamiento digital de las imágenes son las matemáticas; los conceptos que se verán son básicos. La computadora y los algoritmos que se implementan sobre éstas también tienen un papel muy importante en la manipulación de las imágenes [31, 32, 33].
2.2.3.1.
Detección de rostros.
El reconocimiento facial basado en las características geométricas de una cara es probablemente el método más intuitivo de reconocimiento facial. Uno de los primeros sistemas de reconocimiento facial automatizado: puntos de marcador (posición de los ojos, los oídos, la nariz) se utilizaron para construir un vector de características (distancia entre los puntos, ángulo entre ellos). El reconocimiento se realizó mediante el cálculo de la distancia euclídea entre vectores de características de una imagen de sonda y de referencia. Tal método es robusto frente a cambios en la iluminación 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 características 22-dimensional se utilizó y experimentos sobre grandes conjuntos de datos han demostrado, que las características geométricas por sí solos no llevan la información suficiente para el reconocimiento facial [46]. Recientemente surgieron varios métodos para la extracción de características locales. Para evitar la alta dimensionalidad de los datos de entrada únicas regiones locales de una imagen se describen las características extraídas son más robustas frente a la oclusión parcial, iluminación y pequeño tamaño de la muestra. Los algoritmos utilizados para la extracción de características locales son Gabor Wavelets, discret Cosinus Transform y patrones binarios locales. Es todavía una cuestión abierta la investigación de cuál es la mejor manera de preservar la información espacial en la aplicación de una extracción de características locales, ya que la información espacial es información útil potencialmente [46].
2.2.3.2.
Reconocimiento facial (Patrones Binarios Locales).
La idea básica de patrones binarios locales es resumir la estructura local de una imagen mediante la comparación de cada píxel con su vecindario. Se toma un píxel como el centro y el umbral de sus vecinos en contra. Si la intensidad del píxel central es mayor-igual su vecino, a continuación, denotar con 1 y 0 en caso contrario. Se va a terminar con un número binario para
cada píxel, al igual 11001111. Así que con 8 píxeles circundantes que va a terminar con 2 ^ 8 combinaciones posibles, llamados patrones binarios locales o, a veces referido como códigos 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 descripción más 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 función definida como:
(2) Esta descripción le permite capturar los detalles de grano muy fino en las imágenes. De hecho, los autores fueron capaces de competir con el estado de los resultados de la técnica para la clasificación de la textura. Poco después 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 número arbitrario de vecinos en un círculo 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 extensión de los códigos LBP originales, por lo que a veces se llama LBP extendido (también conocida como Circular LBP). Si un punto de coordenadas en el círculo no se corresponde con las coordenadas de imagen, interpolación el punto de LET. La informática tiene un montón de esquemas de interpolación inteligentes, la aplicación Open CV hace una interpolación bilineal:
(3) Por definición el operador LBP es robusto frente a las transformaciones de escala de grises monótonas. Podemos comprobar fácilmente esto mirando la imagen LBP de una imagen modificada artificialmente como se muestra en la figura 7
Figura 7. Imágenes 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 electrónico diseñado específicamente para realizar unas determinadas funciones, habitualmente formando parte de un sistema de mayor entidad. La característica 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 anfitrión al que ayuda a gobernar y del que forma parte. En el diseño de un sistema embebido se suelen implicar ingenieros y técnicos especializados tanto en el diseño electrónico hardware como el diseño del software. A su vez también se requerirá la colaboración 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 módulo electrónico alojado dentro de un sistema de mayor entidad (‘host’ o anfitrión) al que ayuda en la realización tareas tales como el procesamiento de información generada por sensores, el control de determinados actuadores, etc. El módulo o tarjeta, además puede haber sido desarrollado para satisfacer una serie de requisitos específicos de la aplicación a la que está dirigido. Entre éstos, podemos citar:
-
Tamaño: por lo general deberá ser reducido, aunque también es posible que se desee que adopte un formato estándar: PC-104, Eurocard, etc. Margen de temperatura especifico del ámbito de aplicación: o Gran consumo (0ºC hasta 70ºC) o Industrial y automoción. Márgenes de temperatura hasta 125ºC o Aeroespacial o Militar o Electro medicina. Consumo de energía: En aplicaciones en las que es necesario el empleo de baterías, se buscará minimizar éste. Robustez mecánica: Existen aplicaciones donde los dispositivos sufren un alto nivel de vibraciones, golpes bruscos, etc. En el diseño se deberá tener en cuenta dicha posibilidad. Coste: No es lo mismo diseñar un producto a medida con pocas unidades que diseñar un producto para el competitivo mercado del gran consumo. La calibración de los costes es esencial y es tarea de los ingenieros de diseño [34].
2.2.4.2.
Software.
En lo que se refiere al software, se tendrán requisitos específicos según la aplicación. En general para el diseño de un SE no se dispone de recursos ilimitados sino que la cantidad de memoria será escasa, la capacidad de cálculo y dispositivos externos será limitada, etc. Podemos hablar de las siguientes necesidades:
Trabajo en tiempo real. Optimizar al máximo los recursos disponibles. Disponer de un sistema de desarrollo específico para cada familia de microprocesadores empleados. Programación en ensamblador, aunque en los últimos años, 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 módulo típico de SE [34].
2.2.5. INTERNET DE LAS COSAS IOT IoT se refiere a un paradigma emergente que consiste la reunión de personas, procesos, datos y cosas para hacer conexiones en red más relevantes, convirtiendo la información en acciones que crean nuevas capacidades, experiencias más ricas y oportunidades económicas sin precedentes para las empresas, los individuos y los países [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 identificación por radiofrecuencia (RFID), alrededor del año 2000. Su idea era visionaria: se dirigen a descubrir información sobre un objeto etiquetado navegado en una dirección 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 elaboración del código electrónico de producto (EPC), es decir, un identificador universal que proporciona una identidad única para cada objeto físico, con el objetivo de difundir el uso de la RFID en redes en todo el mundo. Hoy en día, el concepto de las cosas es más general y no se limita a RFID solamente. Una cosa puede ser cualquier objeto real/física (por ejemplo, RFID, sensores, actuadores, elementos inteligentes), sino también una entidad digital / virtual, que se mueve en el tiempo y el espacio y puede ser identificada por los números de identificación asignados, nombres o direcciones de ubicación [37]. Por lo tanto, las cosas son fáciles de ser leídas, reconocibles, localizables, direccionales y o controlable a través de Internet. Por otra parte, esta nueva generación de dispositivos inteligentes son gracias a los componentes electrónicos integrados que les permiten sentir como la computación, comunicación, y se integran a la perfección con el entorno circundante. La
asociación ''un dispositivo / una función'' desaparece, sino todo el conjunto de objetos se convierte en el lugar en el que se activa la función, 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 serán la mayoría del sistema. Serán muy heterogéneas en términos de capacidades de recursos, tiempo de vida y tecnologías de la comunicación. Se superarán los dispositivos clásicos tales como teléfonos inteligentes y tabletas, que, por el contrario, formarán un camino para acceder a Internet. En el núcleo, en lugar de tener sistemas de computación tradicionales, la nube proporcionará la abstracción de un conjunto de equipos y ofrecerá servicios de computación y almacenamiento. Se prevé que el número de cosas conectada superará los 7 billones de dólares en 2025, con una estimación de unos 1.000 dispositivos por persona. Una parte de ellos será usable [27], pero la mayoría 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 máquinas, dispositivos móviles 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 compañías [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 través de una página web. También se puede configurar alertas Email o SMS dependiendo del valor de tus sensores, como por ejemplo "Envíame un SMS cuando mi garaje esté abierto" o "Envíame un Email cada vez que haya un movimiento en mi habitación"[51]. UBIDOTS posee una amplia colección de dispositivos compatibles entre ellos se encuentra RASPBERRY PI y Arduino. También posee amplias librerías y conexiones con lenguajes de programación como Python, Java, PHP, entre otros. Para la extracción y utilización de las variables que allí se encuentran se puede hacer conexión 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 están 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 multiteléfono. También es posible usar las bibliotecas Qt gracias al proyecto Necesitas SDK. El desarrollo de aplicaciones para Android no requiere aprender lenguajes complejos de programación. Todo lo que se necesita es un conocimiento aceptable de Java y estar en posesión del kit de desarrollo de software o «SDK» provisto por Google el cual se puede descargar gratuitamente [53]. Todas las aplicaciones están comprimidas en formato APK, que se pueden instalar sin dificultad desde cualquier explorador de archivos en la mayoría 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 versión estable fue publicada en diciembre de 2014 [53]. Está basado en el software IntelliJ IDEA de JetBrains, y es publicado de forma gratuita a través 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 mínimo y Mac OS X, desde 10.8.5 en adelante [53].
2.2.6.2.
Bases de datos.
Una base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico [57].
-
MySQL.
Es un sistema de gestión de bases de datos relacional, multihilo y multiusuario con más 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. DISEÑO
Para la creación de esta idea fue necesario identificar el problema descrito anteriormente y por medio de éste buscar una solución práctica, económica y accesible. En esta etapa se describió el problema, los objetivos, alcances, limitaciones y la guía de trabajo en general así como se hizo necesaria la escritura del anteproyecto escrito anteriormente. 3.1. DIAGRAMA DE BLOQUES. A continuación se presenta en la figura 12 el diseño propuesto en un diagrama de bloques y una descripción general de la funcionalidad de cada bloque.
Figura 22. Diagrama de Bloques funcionamiento del sistema de seguridad para automóviles.
-
Sensores. Los sensores ubicados en el vehículo tendrán la función de, en primer lugar, detectar las
posibles perturbaciones en el medio en donde estén ubicados y luego se encargarán de convertir estas perturbaciones en señales eléctricas que serán utilizadas para generar alertas. También se hará uso de una cámara que permita por medio de reconocimiento facial la apertura de puertas.
Cámara digital.
-
La cámara utilizada en este proyecto se encarga de obtener imágenes para poder entrenar el sistema de reconocimiento facial y de obtener imagen del entorno donde se encuentra el vehículo cada cierto tiempo. La cámara utilizada es la cámara estándar para RASPBERRY Pi que cuenta con una gran resolución y alta definición para aplicaciones de seguridad [63]. A continuación se enuncian las características de la cámara seleccionada para el proyecto: • • • • • -
Tamaño: 25mm x 20mm x 9mm Peso: 3g aproximadamente Resolución: 5 Megapíxeles. Tamaños de imagen: 2592 x 1944 imágenes estáticas, Video: 1080p, 720p60 o 640x480p60/90 a 30 fps. (marcos por segundo) [63]. Administración de energía. Se requiere una fuente de alimentación que provea a los dispositivos (sensores, y tarjeta
principal) ubicados en el automóvil, energía para su activación y funcionamiento. Por esta razón se utilizará la fuente de energía con la que cuentan los automóviles, para el suministro de energía que necesita cada dispositivo. En caso de que los sensores estén demasiado alejados de la fuente principal, se podría considerar una fuente de energía 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 programación PYTHON. Su función también es obtener datos proporcionados por la aplicación Android que se encuentran en la nube, para realizar diferentes acciones como obtener imágenes con la cámara 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 detección 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 conexión inalámbrica 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 información de sensores en tiempo real [64]. De esta manera, la información adquirida por los sensores seleccionados anteriormente y que han sido conectados a la tarjeta de desarrollo RASPBERRY PI B+ [61], serán almacenados en este servidor aprovechando las facilidades de conexión 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 aplicación Android, y desde esta igualmente se pueden enviar variables para que sean almacenadas. -
Interacción con el usuario. (Aplicación Android). Para notificar al usuario sobre alguna perturbación en el vehículo, se diseña una aplicación
para teléfonos móviles, inicialmente en el sistema operativo Android. Esta aplicación está directamente conectada a la base de datos que proporciona UBIDOTS, donde están almacenadas las variables obtenidas de los sensores. A partir de los datos obtenidos de UBIDOTS, la aplicación permitirá tomar alguna clase de decisión al respecto, como por ejemplo, si el vehículo 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 implementación 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 mayoría de ellas se encuentran centradas únicamente para los usuarios de carros gama alta.
Se plantea un diseño más acorde a las herramientas con las que cuentan las personas en Colombia actualmente para la solución 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 serían las formas de utilizar el servicio de alertas.
3.2.2. LIMITACIONES El proyecto se restringe a realizar la parte electrónica del sistema de seguridad y realizar una prueba ubicando los sensores adecuadamente en el auto, pero no se implementará la parte mecánica del vehículo, 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 presentación. Para trabajos futuros se pueden implementar dos o más de ellos.
Este sistema se limita a las personas que tengan la capacidad económica de costear la conexión a internet para su correcto funcionamiento. En caso de que el usuario no tenga conectividad a la red, quedaría excluido de la protección del sistema puesto que las notificaciones llegarían tarde y se perdería su verdadera función.
En la primera parte de la creación de sistema, sólo 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 diseñará exclusivamente para el sistema Android, debido a que es más simple, más económico y tiene un mayor número de consumidores.
El sistema de apertura de puertas a partir del reconocimiento facial estará diseñado únicamente para automóviles cuyas puertas cuentan con mecanismos de apertura manual. Para los automotores que cuentan con apertura con asistencia eléctrica, no será posible de implementar debido a que las puertas están conectadas a la unidad de control del auto.
3.3. RECURSOS 3.3.1. HUMANOS. Se contó con la asesoría del ingeniero Julián Camargo, y el desarrollo del proyecto se llevó a cabo por los estudiantes de ingeniería electrónica de la Universidad Distrital Michael Guzmán y Lina Toquica. Además de las contribuciones hechas por el revisor en la evaluación que realizó, Ingeniero Gustavo Puerto. 3.3.2. FÍSICOS Y MATERIALES
Se hará necesaria la adquisición de los sensores seleccionados, la tarjeta de desarrollo, módulo WIFI y la cámara digital. Se contará en la etapa de implementación con un televisor que tenga puerto HDMI para poder programar la RASPBERRY Pi por medio de la interfaz gráfica. De igual forma se necesita para el control de la tarjeta de desarrollo un cargador de 5V que suministre la energía, un mouse y un teclado. Se contó con un automóvil Renault Megane sedan modelo 2002 para realizar las pruebas del proyecto e instalar los dispositivos. 3.3.3. ECONÓMICOS Para el desarrollo adecuado del sistema propuesto, se contará con el presente presupuesto en el que se muestra el cálculo de los gastos para la obtención de los equipos y materiales necesarios para lograr el objetivo tal y como se muestra a continuación: Tabla 1. COSTOS.
EQUIPO O MATERIAL RASPBERRY Pi 1 modelo B+. Adaptador de red WIFI. Cámara. Sensores. Elementos adicionales. TOTAL
PRECIO $ 120.000 $ 20.000 $ 80.000 $ 100.000 $ 50.000 $ 370.000
4. Implementación 4.1. SELECCIÓN Y PRUEBA DE SENSORES.
Para la selección de los sensores que se implementaron el sistema se tuvieron en cuenta varios aspectos fundamentales. Como primer aspecto, se tuvo en cuenta la dimensión de éstos para facilitar la instalación sobre el automóvil. Como segundo aspecto, se buscaron sensores digitales ya que la RASPBERRY Pi no cuenta con un ADC (conversor analógico digital). Por último, se tuvo en cuenta que éstos contaran con un tiempo de respuesta elevado para poder generar las alertas a tiempo. A continuación se muestran los sensores seleccionados. 4.1.1. SENSOR CAPACITIVO TTP223B. Este sensor básicamente funciona como un pulsador, cuando su superficie entra en contacto con la piel, la capacitancia cambia y al superar un umbral determinado envía un 1 lógico. Las figuras 13 y 14 muestran el circuito del sensor TTP223b y la estructura física [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 alimentación (VCC y GND) y un pin que proporciona la señal digital. Las características principales de este sensor se enumeran a continuación [64].
Voltaje de operación: 2V ~ 5.5V DC Corriente de operación máxima: 3uA (VDD=3V) Tiempo de respuesta máximo: 220mS (VDD=3V) Ajuste de sensibilidad con capacitor externo CS Dimensiones: 23*23 mm Todas sus características facilitan su uso en este proyecto ya que el voltaje de
alimentación puede ser proporcionado por la RASPBERRY Pi, es de muy bajo consumo, su
tiempo de respuesta es lo suficientemente bajo para esta aplicación y su tamaño ayuda a que la instalación en cualquier superficie sea simple. 4.1.2. SENSOR DE MOVIMIENTO PIR HC-SR501. Cualquier cuerpo que tenga una temperatura mayor a 0°K (−273,15°C) emite radiación infrarroja. El sensor HC-SR501 es un sensor PIR (sensor infrarrojo pasivo), estos sensores son capaces de detectar pequeños cambios de en los niveles de radiación infrarroja, lo que se puede traducir en detección de movimiento. Al detectar movimiento este sensor envía un 1 lógico [65]. En la figura 16 se muestra la estructura física del mismo.
Figura 56. Sensor PIR HC-SR501 (vista superior e inferior) [65]
Este sensor cuenta con 2 pines de alimentación (+power y GND) y un pin que proporciona la señal digital de salida. A continuación se muestran las principales características de este sensor. • • • • • • • • •
Voltaje de operación: 4V ~ 20V DC Corriente de operación: 65mA Corriente en reposo: 50uA Tiempo de respuesta: 200mS Ajuste de sensibilidad con potenciómetro Ajuste de tiempo con potenciómetro Dimensiones: 32*24 mm Salida en alto 3.3V / salida en bajo 0V Angulo de detección: < 110° [65]. El hecho de que el sensor tenga la posibilidad de graduar la sensibilidad con un
potenciómetro, que presente bajo consumo en estado de reposo, que sea flexible para su polarización y que tenga un pequeño tamaño ayuda a que el uso de este sensor sea muy simple.
4.1.3. SENSOR DE ULTRASONIDO HC - SR04 Este sensor emite una ráfaga de ultrasonido en una frecuencia que está sobre el rango audible, luego recibe la señal (eco) que retorna cuando esta ráfaga golpea sobre alguna superficie. El HC –SR04 permite obtener el tiempo en retornar la señal y conociendo la velocidad del sonido (340m/s aproximadamente) se puede calcular la distancia a la que está algún objeto. En la figura 17 su estructura física [66].
Figura 67. Sensor HC - SR04 [66].
Este sensor cuenta con 4 pines (figura 21), 2 pines de alimentación (Vcc y GND), un pin que se encarga de recibir el pulso que le indica cuándo emitir la ráfaga de ultrasonido (Trig) y el pin que envía la señal al recibir la ráfaga (echo). A continuación se muestran las principales características del HC - SR0. • • • •
Voltaje de operación: 5V DC Corriente de operación: 15mA Tiempo de respuesta: < 100mS Dimensiones: 45*20*15 mm [66]. Gracias a su principio de funcionamiento, este sensor proporciona medidas que brindan
una precisión suficiente para la implantación en este proyecto. 4.1.4. ACELERÓMETRO ADLX345 El ADXL345 es un pequeño y delgado acelerómetro de 3 ejes de ultra baja potencia. Con medición de alta resolución (13 bits) que puede medir hasta ± 16 g. Los datos se pueden obtener a través de interfaz SPI de 3 o 4 hilos o I2C. A continuación la estructura física del acelerómetro [67].
Figura 78. Acelerómetro ADLX345 [67].
Este acelerómetro cuenta con 8 pines, 2 pines de alimentación (VCC y GND), dos pines de interrupción (INT1 e INT2) y los pines de los protocolos de comunicación, 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 características son [67].
Voltaje de operación: 2V ~ 3.6V DC Corriente de operación: 40uA Corriente en reposo: 2uA Detección de pequeños impulsos Detección de caída libre Dimensiones: 3*5*1 mm [67]. Además de su bajo consumo y su pequeño tamaño el ADXL345 es adecuado para la
implementación en el proyecto ya que permite medir la aceleración dinámica ocasionada por algún movimiento o impacto. 4.1.5. RFID En el desarrollo del proyecto se utiliza el lector RFID-RC522 como primera validación. Este módulo da la opción de controlarse con SPI o comunicación serial UART. Este dispositivo cuenta con 64 bloques de memoria que permiten su configuración y cada bloque tiene una capacidad de 16 bytes. Al realizar la lectura de un dispositivo pasivo obtiene su número de serie (5 valores hexadecimales), sus principales características son las siguientes [71].
Voltaje de operación: 3.3V DC Corriente de operación máxima: 30mA Frecuencia de operación: 13.56MHz Distancia de lectura: 0~60mm} Velocidad máxima: 10Mbit/s
Dimensiones: 40*60 mm
Figura 89. Módulo RFID-RC522
4.2. UBIDOTS Y RASPBERRY. 4.2.1. UBIDOTS
Creación de una cuenta.
Para ser un usuario en UBIDOTS se debe ingresar un nombre usuario, una contraseña y un correo electrónico.
Figura 90. Interfaz de inscripción en UBIDOTS [68]
Una vez se es usuario de UBIDOTS se puede proceder a crear fuentes y variables.
Creación 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 página para crear una fuente.
Figura 101. Interfaz de creación de fuentes [69]
Creación de variables.
El siguiente paso es crear las variables en la fuente creada, al crear la variable se tendrá dar un nombre, además se pueden poner otros datos opcionales como la unidad de la variable, una descripción y un tag como se muestra en la siguiente figura.
Figura 112. Creación 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].
Obtención 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 Fundación RASPBERRY Pi, con el objetivo de estimular la enseñanza de ciencias de la computación en las escuelas [47]. Se entiende que es un producto con propiedad registrada pero de libre uso. En cambio el software sí es código abierto, siendo su sistema operativo oficial una versión adaptada de Debian, denominada RaspBian, aunque permite otros sistemas operativos, incluido una versión de Windows 10.
En realidad, se trata de una diminuta placa base de 85 x 54 milímetros (del tamaño aproximado de una tarjeta de crédito) 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 sólo 256MB de RAM). En función del modelo que escojamos, dispondremos de más o menos opciones de conexión, 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 ratón. En cuanto a la conexión 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 inalámbrico 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 ratón [48]. La RASPBERRY Pi B+ no sería una versión renovada completamente de la RASPBERRY PI. Aunque si tiene algunos cambios respecto a su predecesor, el producto continúa la misma línea de diseño tanto en el aspecto económico como tecnológico. 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 más) Energía: 600mA hasta 1.8A a 5V (Se mejora el consumo de energía y la calidad de audio) Pines GPIO: 40 (en el RASPBERRY Pi B había 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 propósito general y otros componentes de la tarjeta con IDLE que es un ambiente de desarrollo integrado para el lenguaje de programación de código abierto Python. En la figura 26 se muestra la distribución de los 40 pines en la RASPBERRY PI B+.
Figura 156.Distribución de los pines de la RASPBERRY PI [61].
-
Instalación de UBIDOTS en RASPBERRY PI Para poder utilizar las librerías que ofrece UBIDOTS para el manejo de la información de
los sensores en RASPBERRY, se deben instalar los componentes necesarios. Para realizar la instalación 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.
Instalación de las librerías de UBIDOTS
$ sudo apt-get install python-setuptools $ sudo easy_install pip $ sudo pip install ubidots Una vez termine la instalación, se puede usar las librerías de UBIDOTS en Python. -
WIFI en RASPBERRY Pi A pesar de que las RASPBERRY cuenta con un puerto Ethernet que le proporciona
conexión a internet, en este proyecto se requiere que la conexión de la tarjeta a internet sea de forma inalámbrica. Por esta razón 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 módulo se debe descarga e instalar el driver del mismo como se muestra a continuación. $ wget https://dl.dropboxusercontent.com/u/80256631/8188eu-20151215.tar.gz $tar xzf 8188eu-20151215.tar.gz $./install.sh Una vez se ejecutan estas líneas en la consola de la RASPBERRY, el driver queda instalado y al reiniciar la RASPBERRY pi el módulo proporciona conexión inalámbrica 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 continuación. 4.3.1. SENSOR CAPACITIVO TTP223B. La conexión de este sensor a la RASPBERRY PI es muy sencilla, se escogió como fuente de alimentación 3,3 V lo que permite que la una conexión directa al pin de la tarjeta, y se tomó el pin número 40 como para recibir la señal que se obtiene del sensor.
Figura 178.Conexión del sensor Capacitivo TTP223B a la RESPBERRY PI
Luego de realizar la conexión del sensor con la tarjeta, se procede a realizar el código en Python, como se observa en la figura 29.
Figura 189.Código en Python para el sensor TTP223B
En el código, 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 señal del sensor se utilizó una interrupción en el pin 40, cada vez que la tarjeta detectó un flanco de subido en el pin 40 ejecuta la función CAP_ON que se muestra en la figura 16. Cada vez que se activa la interrupción, 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 Según los requerimientos de este sensor el voltaje de operación 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 señal que entrega el sensor como se muestra en la figura 31.
Figura 31. Conexión del sensor de movimiento HC-SR501
Luego de realizar la conexión correspondiente se realiza el código en Python.
Figura 202. Código en Python del sensor de movimiento HC-SR501
En el código se define el pin 11 de la RASPBERRY PI como entrada para señal 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 envía un 1 lógico al activarse el código que se realizó en Python utiliza una interrupción, 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 operación 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. Conexión del sensor de Ultrasonido HC - SR04
Para realizar el código en Python se tuvo en cuenta los fundamentos de funcionamiento de este sensor. Que se describe en los siguientes pasos.
Enviar un Pulso 1 lógico de al menos de 10uS por el Pin Trigger. El sensor envía 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 duración del pulso y se puede calcular con las siguiente fórmula (Utilizando la velocidad del sonido = 340m/s): (3)
Figura 235. Código del sensor de ultrasonido
Además de plasmar en el código los pasos que se mencionaron anteriormente, en este también 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. ACELERÓMETRO ADXL345 Para este sensor el voltaje de operación 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 información que el sensor proporciona se utiliza el protocolo de comunicación I2C por lo que los pines SDA y SCL del acelerómetro se conectan a los pines SDA y SCL de la RASPBERRY PI (pines 3 y 5 respectivamente).
Figura 37. Conexión del Acelerómetro ADXL345
Antes de realizar el código hay que tener en cuenta que la interfaz I2C de la RASPBERRY pi está encendida, este proceso se realiza en el menú de configuración de RASPBERRY pi en la opción 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 acelerómetro conectado a la RASPBERRY PI se procede a realizar el código. Para que el acelerómetro envíe información, se deben modificar los registros DATA_FORMAT, BW_RATE y POWER_CTL de éste para configurar aspectos como la tasa de transmisión, el número de bits de resolución y además para habilitar la transmisión. Estos registros se establecen enviando los valores que deben tener por medio de la RASPBERRY PI. Para realizar esta
configuración se utilizó una librería que realiza esta tarea como se muestra en el anexo A, de esta forma el código implementado se reduce considerablemente.
Figura 269. Código del acelerómetro ADXL345
En el código se crea un objeto (adxl) con la clase ADXL345() que realiza la configuración del acelerómetro 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 acelerómetro. 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 acelerómetro en UBIDOTS
4.4.RECONOCIMIENTO FACIAL Y RFID Para realizar el sistema de apertura de puertas se utilizaron dos métodos que lo habilitan, de esta forma se tiene doble validación y un sistema más seguro. 4.4.1. RFID Para este proyecto se escogió como protocolo de comunicación el SPI para realizar la conexión 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 módulo RFID a un pin de propósito general de la RASPBERRY (pin 22), La conexión se muestra en la siguiente figura.
Figura 281. Conexión del módulo RFID a la RASPBERRY PI
Antes de realizar el código se debe encender el módulo SPI de la RASPBERRY PI en el menú de configuración 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 módulo como modos de transmisión y recepción y los ajustes para el temporizador interno, se utiliza una librería externa que se encarga de realizar esta configuración como se muestra en el anexo A. utilizando esta librería el código implementado se simplifica como se muestra en la siguiente figura.
Figura 303. Código del módulo RFID.
En el código se definen tanto la llave de usuario de UBIDOTS como el ID de la variable que se creó para el módulo, además se define el ID, obtenido previamente, del sensor RFID que se va a utilizar como primera validación del sistema de apertura de puertas. Luego en un bucle se espera a que el lector detecte algún 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 validación se opta por utilizar un sistema de reconocimiento facial. Para implementar este sistema se utiliza una cámara diseñada especialmente para RASPBERRY PI gracias a las ventajas que tiene sobre una cámara USB convencional. Se debe activar el módulo en el menú de configuración de RASPBERRY para que la RASPBERRY pi permita utilizar la cámara. Dicho menú se despliega digitando él siguiente comando desde consola. $ Sudo raspi-config
Figura 314. Menú
de configuración de RASPBERRY PI
Para realizar el reconocimiento facial se instaló el software Open CV. Open CV es software libre, y permite hacer análisis digital de imágenes. La instalación se ilustra en el anexo B. A continuación se enseñan los pasos que se siguieron para lograr hacer el reconocimiento facial: Detección del rostro en la imagen
-
Open CV utiliza un algoritmo llamado Haar-like features (características de Haar), este algoritmo permite obtener información de una zona concreta de la imagen mediante operaciones aritméticas simples, lo que ayuda a reducir carga computacional.
El algoritmo usa 3
características de Haar.
Característica de dos rectángulos Característica de tres rectángulos Característica de cuatro rectángulos
(a)
(b)
(c)
Figura 45. Características de dos rectángulos (a), Características de tres rectángulos (b), Características de cuatro rectángulos (c) [72]
En todos los casos anteriores la obtención del valor de la característica consiste en la resta entre el valor de una o más 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 comparación 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 código que se implementó para realizar el reconocimiento del rostro en una imagen se muestra en la siguiente figura.
Figura 326. Código para reconocer rostros.
En el código se debe importar el la dirección en donde se encuentra el archivo que permite realizar el algoritmo de Haar y las librerías de Open CV. Luego se adquiere una imagen con la cámara de RASPBERRY Pi, en caso que en la imagen se detecte un rostro, éste se extrae de la imagen utilizando el método que se mencionó anteriormente.
Figura 337. Extracción del rostro en la imagen
-
Reconocimiento facial. Open CV permite hacer el reconocimiento a través 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 imágenes de la persona, el algoritmo encuentra características particulares en las imágenes que conforman la base de dato y este entrenamiento se puede guardar en un archivo.
Figura 348. Código para realizar el entrenamiento.
En el código se define una función (get_images_and_labels) que se encarga de convertir todas las imágenes a blanco y negro, identificar el rostro y extraerlo, luego convertir las imágenes a matrices y guardarlas en un arreglo. De esta forma se entrega este arreglo a la función de entrenamiento de Open CV y luego, este se guarda en el archivo “micara”.
Figura 359. Imágenes para el entrenamiento del sistema de reconocimiento facial.
Habiendo terminado el entrenamiento, se realiza un código que adquiera una imagen con la cámara, y compare los datos obtenidos en el entrenamiento con los obtenidos de la imagen recién tomada. El código que se implementó para realizar la identificación se muestra a continuación.
Figura 360. Código para realizar la identificación.
El código adquiere una imagen con la cámara, 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 predicción, la cual arroja un valor de confiabilidad, con el que se puede discriminar si es la persona de la imagen recién adquirida es la misma persona de la base de datos.
Figura 371. Prueba del Reconocimiento facial del personaje entrenado.
4.5. DESARROLLO DE LA APLICACIÓN ANDROID. 4.5.1. HERRAMIENTAS Y TECNOLOGÍAS UTILIZADAS PARA LA APLICACIÓN. -
Android. El sistema operativo Android presentaba un inconveniente importante a la hora de decidir
cómo empezar a crear la aplicación. Este problema se denomina segmentación y consiste en la existencia en el mercado de una gran cantidad de versiones distintas de Android instaladas en los dispositivos que además presentan trabas relacionadas con la retro compatibilidad entre ellas. A diferencia de Apple, cuyo sistema operativo es exclusivo del dispositivo que la propia compañía fabrica, Android se instala en una gran variedad de marcas y son estas las que controlas las versiones a instalar en el teléfono, produciendo que sigan en funcionamiento versiones antiguas que no son compatibles con las aplicaciones si estas se desarrollan directamente para las versiones más 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 versión es inestable por el momento. En el grafico mostrado a continuación puede verse la cuota de mercado de cada versión de Android a fecha de enero de 2016, cuatro meses antes del inicio de este proyecto [74].
Figura 382. Datos porcentuales sobre la distribución de versiones de Android, Enero de 2016 [73].
Es por esta razón que al inicio de este proyecto se tomó la decisión de comenzar el desarrollo de la aplicación Android eligiendo la versión 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 público potencial menos del 10% para esta plataforma. Tras tomar esta decisión se dio comienzo el trabajo en Android utilizando para ello el entorno de desarrollo ANDROID STUDIO [53]. Para la programación 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 "Máquina virtual Java" que interpreta el código 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 versión de Android es la llamada MySQL remota
almacenada en un servidor público, 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 gestión necesarias y que es rápido y eficiente para la gestión del tipo de información requerido en esta aplicación.
4.5.2. FASES DE IMPLEMENTACIÓN En el caso de la aplicación móvil, uno de los objetivos de este proyecto, el principal problema estaba en el tiempo. Debido a compaginar la realización del proyecto con el sistema de seguridad implementado con la tarjeta de desarrollo RASPBERRY PI, el número posible de horas semanales a dedicar planteaba un problema si se decidía realizar toda la funcionalidad a la vez. La decisión consistió en seguir el método iterativo dividiendo el proyecto en las etapas necesarias para ir consiguiendo secciones completas hasta la creación de la primera fase de la aplicación (Interfaz gráfica de Bienvenida, interfaz de registro e ingreso). Tras finalizar esta primera fase, se comenzaría la creación de la parte final (interfaz principal del sistema de seguridad). Tras cada etapa se realizaron pruebas tanto en emuladores de dispositivos como en dispositivos físicos. Las fases con sus respectivas etapas son:
4.5.2.1.
Primera fase (Interfaz de bienvenida, Interfaz de Ingreso y registro):
Creación de una interfaz gráfica de bienvenida.
Figura 393. Interfaz gráfica de Bienvenida.
En esta etapa se crea una interfaz gráfica a partir de sintaxis XML autogenerada por Android Studio y conectada directamente a una Actividad (Una clase relacionada con la interfaz gráfica creada), donde se puede programar los botones y acciones requeridas en lenguaje Java (Ver Anexo C).
En esta página el usuario puede encontrar un mensaje de Bienvenida, un botón que le permite al usuario ver la siguiente página para el acceso a la página principal. Esta página tiene como funcionalidad adicional verificar la correcta conexión de internet del celular. De ser fallida esta conexión el botón de comenzar quedara inhabilitado.
Creación de una base de datos de conexión remota en un servidor público 000webhost.com [75] Allí se almacenan datos de nombre, edad, correo electrónico y contraseña de los usuarios
que se registren por medio de la interfaz gráfica de registro. En esta etapa se hará uso de un servidor público que tiene funcionalidades como almacenamiento de archivos y bases de datos online. -
Creación de una cuenta o servidor.
Para la creación de una base de datos haciendo uso de esta página se debe crear una cuenta en la cual un subdominio web gratis es otorgado. Se puede asignar el nombre que se desee.
Figura 54. Creación de cuenta 000webhost.
Luego de crear la cuenta, se puede acceder a un panel de control, donde se pueden encontrar todas las utilidades y características de la cuenta, para el caso de este proyecto MySQL como base de datos y para administración de ella PHPMyAdmin.
Figura 55. Características y Utilidades de la cuenta.
-
Creación de la base de datos.
Luego de tener creada una cuenta se prosiguió a crear la base de datos.
Figura 406. Creación de la base de datos MySQL.
Para la creación de la base de datos es requerido un nombre para la base, un nombre de usuario y contraseña. Luego de ser creada la base el servidor otorga un host. De esta forma se tienen las siguientes características de la base de datos: -
Host: mysql6.000webhost.com Nombre de usuario: a7156801_prueba Contraseña: ******* Nombre de la base de datos: a7156801_prueba
Creación de tablas. Por último se prosiguió a crear una tabla para almacenar la información de registro de
usuarios: nombre, edad, correo electrónico, contraseña. Esto se realiza desde la opción phpMyAdmin, aquí se puede editar el tipo y tamaño de campo que será creado.
Figura 57. Estructura base de datos.
Generación de los algoritmos PHP para obtención y almacenamiento de datos en la base de datos de conexión remota.
Para la conexión, gestión y consulta de campos en la base de datos son necesarios una serie de códigos PHP:
Conexión con la base de datos.
Figura 58. Conexión con la base de datos.
Para comprobar la correcta conexión, se guarda el archivo de texto con una extensión .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 conexión correcta de la base de datos haciendo uso del dominio propio:
Figura 420. Comprobación Conexión base de datos.
Ingreso de información 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 información en la base.
Figura 431. Estamento SQL INSERT.
Consulta de información de la base de datos.
La consulta y obtención de datos usada para el ingreso de usuarios registrados se realizó por medio de la cadena JSON cuyo acrónimo es JavaScript Object Notation, es un estándar basado en texto plano para el intercambio de información, por lo que se usa en muchos sistemas que requieren mostrar o enviar información para ser interpretada por otros sistemas, la ventaja de JSON al ser un formato que es independiente de cualquier lenguaje de programación, es que los servicios que comparten información por éste método, no necesitan hablar el mismo idioma, es decir, el emisor puede ser Java y el receptor PHP, cada lenguaje tiene su propia librería para codificar y decodificar cadenas de JSON [76]. Es así como la cadena JSON utilizada es la siguiente:
Figura 442. Conexión 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 conexión. Para comprobar el funcionamiento de la cadena JSON existen varios servicios online. En este caso se hizo uso de JSONLINT [77]:
Figura 63. Validación de cadena JSON.
Se puede obtener entonces un arreglo con los campos que se encuentran en la base de datos.
Creación de una interfaz gráfica para el ingreso de usuarios registrados que permite acceder a la página principal.
En esta etapa se genera una interfaz gráfica de la misma forma que en la etapa anterior. En esta fase se encuentra un espacio para ser completado con el correo electrónico y contraseña del usuario anteriormente registrado. En caso de no tener una cuenta, se puede acceder a la página de Registro por medio del link “REGISTRESE”. Es necesario mencionar que en la actividad asociada a esta interfaz, se encuentra el llamado al código php para la consulta de información (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 electrónico Y contraseña, coinciden con los datos consultados en la base de datos, el software permitirá el ingreso a la página principal del sistema de seguridad, en caso contrario enviará un mensaje de usuario o contraseña incorrecta.
Figura 64.Usuario Registrado en la base de datos.
(a)
(b)
Figura 65. (a) Ingreso Usuario registrado. (b) Usuario y contraseña incorrecta.
Creación de una interfaz para el debido registro de usuarios en caso de no tenerlo.
Se genera una interfaz gráfica para el registro de nuevos usuarios. Allí se encuentran los siguientes campos que serán completados por el usuario: Nombre, Edad, Correo Electrónico, Contraseña. Al oprimir el botón REGISTRAR, el sistema realiza la conexión con el código php (Registrarusuario.php) almacenado en el administrador de archivos de 000webhost con el cual la aplicación puede insertar los datos de los campos con la información 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 Gráfica principal):
Desarrollo de la interfaz gráfica de la página principal. En esta etapa desarrolló una interfaz de página principal que le permite al usuario
activar el sistema con el botón ACTIVAR SISTEMA.
Figura 67. Interfaz gráfica Activar sistema.
Al presionar ACTIVAR SISTEMA, la aplicación envía un (9) a la variable de UBIDOTS ONOFF, variable que es obtenida por la RASPBERRY para encender el sistema.
Conexión con UBIDOTS para la obtención de variables desde la nube.
Para conectar la aplicación con Android existe una librería en ANDROID STUDIO que permite la obtención y envío de variables a la nube.
Figura 6845. Librerías UBIDOTS.
Se requiere entonces verificar el ID del usuario en UBIDOTS y obtener el ID de cada variable que se desee obtener.
Figura 69. Obtención de ID del usuario.
Figura 70. ID de la Variable Movimiento.
Es de vital importancia concederle permisos de internet a la aplicación, en caso contrario no es posible obtener la conexión con las variables.
Figura 461. Permisos de uso de Internet [78].
Para la obtención y envío de variables desde la aplicación se hizo uso de una clase anidada llamada ApiUbidots, esta clase se extiende AsyncTask. AsyncTask es una clase Android creada para hacer operaciones asincrónicas. La extensión de esta clase es obligatoria para todas las operaciones que necesita para conectarse a Internet [78]. A Continuación se muestra la clase AsyncTask para la obtención de la variable MOVIMIENTO almacenada en UBIDOTS.
Figura 72. Clase AsyncTask para obtención de variable MOVIMIENTO.
A continuación se muestra la clase AsyncTask para el envío de la variable ONOFF (Activa o desactiva el sistema) a la nube.
Figura 473. Clase Asyntask para el envío de variables.
Desarrollo de botones y comandos para poder encender o apagar el sistema de seguridad por medio de envío de datos a la nube y que luego son obtenidos por la RASPBERRY.
Para encender y apagar el sistema, como se dijo anteriormente, se envía un (9) a la variable ONOFF de UBIDOTS con el botón ACTIVAR SISTEMA, y un (0) con el botón 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.
Generación de notificaciones y alerta sonora como acción 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 notificación de que el auto fue intervenido específicamente en la manija del carro donde está ubicado el sensor. Para cada sensor se envía una notificación diferente para saber qué parte del vehículo está siendo perjudicada.
Figura 74. Código para enviar notificaciones.
Figura 75. Notificación 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 vehículo.
Figura 76. Interfaz de Alertas.
Al abrir la notificación de la barra de estado del celular, se da la opción 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 aplicación da múltiples opciones de compartir un
mensaje de auxilio que es autogenerado.
Figura 78. Opción SHARE (compartir).
De esta forma se podría enviar un mensaje a la policía para su inmediata intervención. -
Obtener imagen: Para la obtención 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 aplicación 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 aplicación desde Dropbox.
-
Encender o Apagar alarma. Para encender o apagar una alarma sonora configurada en la RASPBERRY, se envía 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. Evaluación 5.1. UBICACIÓN ESTRATÉGICA E LA RED DE SENSORES EN EL AUTOMÓVIL: En las siguientes figuras se muestran imágenes que ilustran la ubicación que se escogió para los sensores, cámara y módulo RFID.
SENSOR DE ULTRASONIDO.
Se propone instalar el sensor de ultrasonido en el espejo retrovisor del automóvil. De esta forma cuando alguien se acerque demasiado a la puerta, el sensor activara una de las alarmas en la aplicación móvil.
Figura 8048. Ubicación del sensor de ultrasonido.
SENSOR CAPACITIVO. Aprovechando el pequeño tamaño 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 teléfono móvil.
Figura 81. Ubicación del sensor capacitivo.
SENSOR DE MOVIMIENTO.
El sensor de movimiento está pensado para alertar al dueño si existe movimiento dentro de auto, por lo que se propone que su ubicación sea debajo del volante.
ACELERÓMETRO. El único objetivo del acelerómetro es identificar si el auto está en movimiento por lo que
se propone ubicar en el suelo del auto, bajo la silla del conductor.
MÓDULO RFID. Ya que el lector o funciona si se pone tras un cuerpo metálico, se propone ubicarlo detrás
de la ventana del conductor, de esta forma el lector podrá leer el ID del sensor RFID.
Figura 82. Ubicación del módulo RFID.
CÁMARA. De igual forma se propone ubicar la cámara detrás de la ventana del conductor en la parte
superior, de esta forma la cámara puede tener un mejor ángulo y capturar el rostro al momento de adquirir la imagen.
Figura 83. Ubicación de la cámara.
6. Análisis de Resultados ANÁLISIS DE RESULTADOS.
SENSORES Las pruebas realizadas mostraron una muy buena respuesta de los sensores, ya que por su
pequeño tamaño son ideales para aplicaciones móviles con en este caso, además sus requerimientos de alimentación son muy comunes y en general su consumo es muy bajo (menor a 100mA entre todos). Ya que la mayoría de estos sensores tienen circuitos que adecúan su señal, la conexión 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 código principal. Tabla 2. Respuesta de los sensores ultrasonido y Acelerómetro.
Prueba/Sensor 1 2 3 4
Ultrasonido (cm) 5.69 5.65 5.76 5.74
Acelerómetro (eje Y) 0.176 0.172 0.172 0.184
Ya que los sensores capacitivo y de movimiento se activan por interrupción, 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 elección ya que permite realizar innumerables
proyectos gracias a todas sus características. Para este proyecto fue bastante útil, ya que el módulo de la cámara 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 adición de un módulo para agregarle esta característica, es muy sencilla. Además 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 interacción con el usuario sea mucho más cómoda que con otras tarjetas de desarrollo. A esto se le suma que para
realizar proyectos cuenta con el lenguaje de programación Python que le permite al desarrollador acceder a todas las características 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 imágenes, por lo que para proyectos que tengan mucho más procesamiento de imágenes 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 librerías que tiene para la RASPBERRY Pi, permite que el acceso y la modificación de la información de los sensores sea muy simple. Además de tener librerías para la RASPBERRY Pi, también es compatible con Android, lo que ayudó a que el desarrollo de la aplicación fuera un poco más sencillo. A pesar de ser una herramienta muy útil, sus servicios solo son gratuitos si el número de variables que se crean es menor a 15. Por lo tanto, si se quiere utilizar en un proyecto con un número de sensores considerable, se deberá pagar una cuota mensual que depende del número de variables.
RFID Y RECONOCIMIENTO FACIAL La implementación del módulo RFID y de la cámara para el sistema de apertura de
puertas mostró resultados positivos. El módulo RFID-RC522 permite realiza lecturas de los sensores pasivos a gran velocidad y permite que a primera validación del sistema se realice rápidamente; también es un sistema que un alto nivel de seguridad, ya que no solo los sensores pasivos tiene su propio ID sino que además el módulo 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 número de imágenes 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 identificación 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 86.8151 Si 1 85.7761 Si 2 87.9817 Si 3 70.9062 Si 4 101.8568 No 5 Las pruebas que se ilustran en la tabla anterior se realizaron con diferentes expresiones faciales, por esta razón 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 según las pruebas realizadas. Se calculó el error tomando como valor esperado el umbral definido.
APLICACIÓN PARA ANDROID El uso del IDE (entorno de desarrollo integrado) Android Studio para realizar de la
aplicación que interactúa con el usuario, permitió crear una interfaz gráfica intuitiva y fácil de manejar para cualquier persona que cuente con un Smartphone. La integración de UBIDOTS a este entorno de desarrollo es muy simple y facilita que el manejo y la obtención de información obtenida por los sensores. En cuanto a resultados cuantitativos de la aplicación, se tienen las siguientes pruebas: Tabla 4. Tiempo de respuesta de los sensores a las notificaciones.
Prueba 1 2 3 4 5 Entonces el tiempo promedio de respuesta es:
Tiempo de respuesta 20 S 25 S 10 S 15 S 27 S
7. Conclusiones Los resultados arrojaron que la elección de los sensores fue adecuada, ya que tienen una respuesta rápida y efectiva, lo que ayuda a que la información que arrojan se pueda subir rápidamente a la nube y, por ende, enviar ágilmente las alertas al usuario. Además, ya que su configuración es simple, se puede implementar en casi cualquier microcontrolador, de esta forma se podría ampliar el sistema conectando los microcontroladores al sistema embebido por medio de algún protocolo de comunicación inalámbrico. El uso de sensores digitales como los utilizados en este proyecto, permiten un fácil manejo de datos evitando el acondicionamiento de señales y un módulo ADC. El entorno de desarrollo RASPBERRY Pi es un dispositivo impresionante. No sólo resulta extremadamente asequible, sino que abre la puerta a infinitas posibilidades para el desarrollo de nuevas aplicaciones y para la simple educación tecnológica 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 librería 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 validación. 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 automóviles. El desarrollo de aplicaciones móviles es uno de los negocios más activos del momento, siendo una gran oportunidad de crecimiento tanto para desarrolladores como empresas. Es así como la aplicación Android usada en el sistema de seguridad para automóviles facilitó la forma de interacción con el usuario, primero por su facilidad en la forma de programar, debido a que se pudieron aprovechar los conocimientos adquiridos acerca de la programación orientada y segundo por las ventajas de tener a la mano del usuario la estabilidad de la aplicación. Al hacer uso de un servidor público como 000webhost para la administración de la base de datos por medio de estamentos PHP, se hace rentable crear aplicaciones que necesiten gestión
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 aplicación. UBIDOTS no solo permitió facilitar el proceso de almacenamiento y adquisición de la información de los sensores, sino que además 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 están o no activos, lo que permite detectar si existe algún error en alguno de los sensores o cuando se activó por última vez. Trabajos Futuros - Teniendo las bases electrónicas del sistema de seguridad, solo queda como trabajo futuro implementar la parte mecánica para el completo funcionamiento y estética del sistema. -
Como mejora para el sistema se pueden integrar más sensores en otras partes del
carro como la tapa de la gasolina, la puerta del baúl y demás puertas del vehículo. -
El buzzer usado en este proyecto se puede reemplazar por la integración del
sistema de seguridad con la alarma sonora propia del automóvil. -
En cuanto a la aplicación se espera que esta pueda ser comercializada en su
versión Android por medio de la Google Play y se pueda generar la versión IOS para Iphone y se comercialice en la AppStore. -
Se pueden implementar más acciones en la página de alertas de la aplicación
como acceder al sistema de frenos y si el vehículo ha sido interferido, que se mantenga el freno de mano activado e imposibilite al ladrón mover el auto. -
Se puede incrementar la seguridad y confiabilidad de datos de la aplicación
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 implementación de un sistema de seguridad como este, no solo se limita a
vehículos, sino puede ser usado en casas, almacenes y fábricas gracias a su facilidad de implementación, ubicación y costo.
Referencias [1] Toribio, L. (2008). Diseño y construcción de un prototipo mecatrónico de navegación autónoma y simulación del control. Universidad de las Américas 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 mecánico a sistema tecnológico complejo. El caso de los automóviles. División de Investigación de la Facultad de Contaduría y Administración de la UNAM. México D.F. [4] Torres,JJ. (2014) ¿Qué es y cómo funciona el Internet de las cosas?, Recuperado de http://hipertextual.com/archivo/2014/10/internet-cosas/ [5] Céspedes E.N., Castillo-Romero L.F, Duarte-Velásquez Y.A., Torres-Guzmán G.A., (2013) Hurto de automotores y estrategias contra el delito: una mirada desde la academia, el victimario y la Policía. [6] CISCO “Internet de las Cosas y la evolución de Internet”, www.cisco.com/web/ES/campaigns/internet-de-las-cosas/index.html.
recuperado de
[7] Ministerio de Tecnologías de la Información y las Comunicaciones. (2014). Boletín 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 Cómo la próxima evolución de Internet lo cambia todo,( Abril 2011) recuperado de http://www.cisco.com/web/LA/soluciones/executive/assets/pdf/internet-of-things-iotibsg.pdf [10]
Postscapes, Dispositivos para autos. http://postscapes.com/connected-car-devices
(2015).
Recuperado
de
[11] Gascó, D. (2010), Redes de sensores inalámbricos, la tecnología 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 tecnológico: Notas sobre la historia de la convergencia del sector automotriz–sector electrónico. En J. Flores y F. Novelo. Innovación industrial, desarrollo rural e integración internacional. México: Universidad Autónoma 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 oil’s 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:393–422
[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. 60–61.
[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. 1650–1654.
[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. 467–472.
[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 MobiCom’01, Rome, Italy, pp. 272–286.
[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). Pág. 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 (WVLSI’00), Orlando, Florida, pp. 9–12.
[31]
González 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 imágenes. Universidad Autónoma de Puebla Facultad de Ciencias de la Computación.
[34]
Urrea Miñarro, Benito. (2009). Apuntes de sistemas embebidos. Universidad de Murcia
[35]
Internet de las cosas. Recuperado de: http://www.cisco.com/web/ES/campaigns/internetde-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 127–144. [37]
Atzori, L., Iera, A., Morabito, G. (2010). The Internet of Things: a survey. Computer Networks 54:2787–2805
[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 1645–1660 [41] Pérez 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. http://www.skillten.com/cursos/matter001/capacitivos.pdf
Recuperado
de:
[43] ABC del Acelerómetro. (2014). Recuperado de: http://5hertz.com/tutoriales/?p=228 [44]
Detectores de movimiento, como funciona, cual elegir. Recuperado http://saberyhacer.com/detectores-de-movimiento-como-funciona-cual-elegir
de:
[45] Llamazares, J. C. ¿Cómo 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 evolución 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-deubidots-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 Google’s Android Market. Recuperado de: http://www.wired.com/2010/06/independent-app-stores-take-on-googlesandroid-market/ [55] Mer (2011). Cómo 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-tabletlas-aplicaciones-que-se-descargan-en-el-ordenador/ [56]
Codexexempla. Sintaxis de XML. http://www.codexexempla.org/curso/curso_1_2.php
Recuperado
de:
[57] ¿Qué es una Base de datos? - Definición de Base de datos. Recuperado de: https://www.masadelante.com/faqs/base-de-datos [58]
MySQL 5.5 Release Notes. (2016). Revisión: http://dev.mysql.com/doc/relnotes/mysql/5.5/en/
7964.
Recuperado
de:
[59]
MySQL 5.1 Release Notes. (2016). Revisión: http://dev.mysql.com/doc/relnotes/mysql/5.1/en/
7964.
Recuperado
de:
[60] Probar Sensor de movimiento PIR directo en Arduino. (2015). Recuperado de: http://www.forosdeelectronica.com/f11/probar-sensor-movimiento-pir-directo-arduino127986/ [61]
Raspberry Pi 2 Model B. [online]. https://www.raspberrypi.org/products/raspberry-pi-2-model-b/
Recuperado
de:
[62] TP-Link “especificaciones”, recuperado de http://www.tp-link.com/en/products/details/cat11_TL-WN725N.html#specifications [63]
Raspberry Pi Foundation. Camera Module https://www.raspberrypi.org/help/camera-module-setup/
Setup.
Recuperado
de:
[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 https://www.mpja.com/download/31227sc.pdf
Detector.
Recuperado
de:
[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/datasheets/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). Extracción automática de caras en imágenes captadas con móviles Android. Universitat Politècnica de Catalunya. [73] Imagen toma de: http://www.compudemano.com/foros/discusion/informe-android-enero2016-lollipop-crece-pero-marshmallow-no-despega.106783/ [74] Pérez, E. (2015). Informe Android Marzo: Lollipop está en el 5% y KitKat ya es la versión más utilizada. Recuperado de: http://www.elandroidelibre.com/2015/04/informe-androidmarzo-lollipop-y-kitkat.html [75] 000webhost. https://www.000webhost.com/ [76]
¿Qué es JSON y dónde se usa? (2013). Recuperado http://canela.me/articulo/%C2%BFqu%C3%A9-es-json-y-d%C3%B3nde-se-usa
de:
[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] Librería para el acelerómetro https://github.com/pimoroni/adxl345-python
ADXL345.
Recuperado
de:
[81] Librería para el módulo RFID-R522. Recuperado de: https://github.com/mxgxw/MFRC522python [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 http://robologs.net/2014/04/25/instalar-opencv-en-raspberry-pi-2/
Pi.
Recuperador
de:
ANEXOS ANEXO A-LIBRERÍAS SENSORES PYTHON. - LIBRERÍA PARA EL ACELERÓMETRO ADXL345: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71.
# # # # # # # #
ADXL345 Python library for Raspberry Pi author: Jonathan Williamson license: BSD, see LICENSE.txt included in this package This is a Raspberry Pi Python implementation to help you get started with the Adafruit Triple Axis ADXL345 breakout board: http://shop.pimoroni.com/products/adafruit-triple-axis-accelerometer
import smbus from time import sleep # select the correct i2c bus for this revision of Raspberry Pi revision = ([l[12:-1] for l in open('/proc/cpuinfo','r').readlines() if l[:8]=="Revision"]+['0000'])[0] bus = smbus.SMBus(1 if int(revision, 16) >= 4 else 0) # ADXL345 constants EARTH_GRAVITY_MS2 = 9.80665 SCALE_MULTIPLIER = 0.004 DATA_FORMAT BW_RATE POWER_CTL
= 0x31 = 0x2C = 0x2D
BW_RATE_1600HZ BW_RATE_800HZ BW_RATE_400HZ BW_RATE_200HZ BW_RATE_100HZ BW_RATE_50HZ BW_RATE_25HZ
= = = = = = =
0x0F 0x0E 0x0D 0x0C 0x0B 0x0A 0x09
RANGE_2G RANGE_4G RANGE_8G RANGE_16G
= = = =
0x00 0x01 0x02 0x03
MEASURE AXES_DATA
= 0x08 = 0x32
class ADXL345: address = None def __init__(self, address = 0x53): self.address = address self.setBandwidthRate(BW_RATE_100HZ) self.setRange(RANGE_2G) self.enableMeasurement() def enableMeasurement(self): bus.write_byte_data(self.address, POWER_CTL, MEASURE) def setBandwidthRate(self, rate_flag): bus.write_byte_data(self.address, BW_RATE, rate_flag) # set the measurement range for 10-bit readings def setRange(self, range_flag): value = bus.read_byte_data(self.address, DATA_FORMAT) value &= ~0x0F; value |= range_flag; value |= 0x08; bus.write_byte_data(self.address, DATA_FORMAT, value) # returns the current reading from the sensor for each axis # # parameter gforce: # False (default): result is returned in m/s^2 # 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]