sistema telemÁtico para el registro, control de...
TRANSCRIPT
1
SISTEMA TELEMÁTICO PARA EL REGISTRO, CONTROL DE
INGRESO/SALIDA Y CONSULTAS DE TRAFICO DE MOTOCICLETAS EN LA
FACULTAD TECNOLÓGICA DE LA UNIVERSIDAD DISTRITAL FRANCISCO
JOSÉ DE CALDAS
JOAN SEBASTIÁN MARTÍNEZ GALVIS
WILBER DAVID AMAYA CRUZ
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD TECNOLÓGICA
INGENIERÍA EN TELEMÁTICA
BOGOTÁ
2017
2
SISTEMA TELEMÁTICO PARA EL REGISTRO, CONTROL DE
INGRESO/SALIDA Y CONSULTAS DE TRAFICO DE MOTOCICLETAS EN LA
FACULTAD TECNOLÓGICA DE LA UNIVERSIDAD DISTRITAL FRANCISCO
JOSÉ DE CALDAS
JOAN SEBASTIÁN MARTÍNEZ GALVIS
WILBER DAVID AMAYA CRUZ
TUTOR:
MIGUEL ÁNGEL LEGUIZAMÓN PÁEZ
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD TECNOLÓGICA
INGENIERÍA EN TELEMÁTICA
BOGOTÁ
2017
3
Tabla de contenido
1. Introducción ........................................................................................................ 7
2. Planteamiento del Problema ............................................................................. 8
2.1. Planteamiento de la solución ............................................................................... 8
2.2. Solución tecnológica ............................................................................................. 8
3. Objetivos ............................................................................................................ 10
3.1. Objetivo General .................................................................................................. 10
3.2. Objetivos Específicos ......................................................................................... 10
4. Alcances y limitaciones ................................................................................... 11
4.1. Alcances ............................................................................................................... 11
4.2. Limitaciones ......................................................................................................... 11
5. Justificación ...................................................................................................... 12
5.1. Económica ............................................................................................................ 12
5.2. Tecnológica .......................................................................................................... 12
6. Marco de Referencia ........................................................................................ 13
6.1. Marco teórico ....................................................................................................... 13
6.1.1. NFC ............................................................................................................................ 13
6.1.2. ISO 1443 .................................................................................................................... 15
6.1.3. RFID RC522 ................................................................................................................ 15
6.1.4. Raspberry pi .............................................................................................................. 16
6.1.5. Spring Boot ................................................................................................................ 18
6.1.6. Maven ........................................................................................................................ 18
6.1.7. Python ....................................................................................................................... 19
6.1.8. ThymeLeaf ................................................................................................................. 20
6.1.9. Raspbian .................................................................................................................... 21
6.1.10. Servo SG90 ................................................................................................................ 22
6.1.11. BDD ............................................................................................................................ 23
6.1.12. Tarjeta inalámbrica ralink 802.1n.............................................................................. 25
6.2. Marco histórico .................................................................................................... 25
6.2.1. APLICACIÓN WEB PARA EL CONTROL DE ENTRADA Y SALIDA DE EQUIPOS Y USO DE
PARQUEADEROS DE LA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD
TECNOLÓGICA POR MEDIO DE LA LECTURA DEL CÓDIGO DE BARRAS ..................................... 25
6.2.2. DISEÑO Y CONSTRUCCIÓN DEL PROTOTIPO DE UN SISTEMA OPTIMIZADO PARA EL
INGRESO A PARQUEADEROS VEHICULARES CON TARJETAS INTELIGENTES ............................. 25
6.3. Marco de metodología ......................................................................................... 26
7. Desarrollo e implementación .......................................................................... 30
7.1. Definición de Historias de usuario BDD ........................................................... 30
7.2. Diagrama entidad/relación .................................................................................. 41
4
7.3. Configuracón y cableado raspberry .................................................................. 41
8. Aplicación en Funcionamiento ....................................................................... 47
9. Conclusiones .................................................................................................... 58
10. Bibliografía ..................................................................................................... 59
11. Anexos ............................................................................................................ 63
Cronograma ..................................................................................................................... 63
Manual de usuario(adjunto) ........................................................................................... 64
Manual del programador(adjunto) ................................................................................ 64
Articulo IEE (adjunto) ..................................................................................................... 64
5
Lista de Tablas
Tabla 1 Spike de hardware ........................................................................................................... 30
Tabla 2 Cotización de los componentes de hardware .............................................................. 31
Tabla 3 Spike de requerimientos de software ............................................................................ 31
Tabla 4 Configuración de componentes de Hardware ............................................................. 32
Tabla 5 Validación de los datos obtenidos por el lector ........................................................... 32
Tabla 6 Simulación de la apertura de las puertas del parqueadero ....................................... 33
Tabla 7 Instalación y configuración del servidor de aplicaciones linux .................................. 33
Tabla 8 Desarrollo del frontend de la plataforma del sistema ................................................. 34
Tabla 9 Desarrollo del frontend del formulario de registro para los usuarios
(estudiantes/profesores) ........................................................................................................ 35
Tabla 10 Desarrollo de frontend para la validación de los usuario por parte del usuario
administrador ........................................................................................................................... 35
Tabla 11 Desarrollo del frontend login para el usuario administrador .................................. 36
Tabla 12 Realizar modelo entidad / relación de la BD ............................................................. 36
Tabla 13 Realizar query de la BD (toptechboy, 2015) .............................................................. 37
Tabla 14 Realizar la instalación de la BD en MySQL ............................................................... 37
Tabla 15 Desarrollo del Backend resumen de la página ......................................................... 38
Tabla 16 Registro formulario de usuario estudiante / profesor ............................................. 38
Tabla 17 Activación de los usuarios registrado ......................................................................... 39
Tabla 18 Integración de frontend y backend landing de resumen .......................................... 40
Tabla 19 Integración de frontend y backend landing de resumen generar reportes ........... 40
Tabla 20 Construcción de la maqueta ........................................................................................ 41
Tabla 21Conexión entre RC522 t RPi2 ....................................................................................... 44
6
Lista de Ilustraciones
Ilustración 1 Diagrama Entidad / Relación ................................................................................. 41
Ilustración 2 Servo Connected to Raspberry Pi GPIO Pins ..................................................... 42
Ilustración 3 RC522 con Raspberry ............................................................................................. 44
Ilustración 4 Puesta en marcha desde el servidor linux ........................................................... 47
Ilustración 5 Ejecución de la instalación ..................................................................................... 48
Ilustración 6 Ejecución de la instalación parte 2 ........................................................................ 48
Ilustración 7 Instalación y empaquetamiento de los archivos correspondientes .................. 49
Ilustración 8 Instalación y empaquetamiento de los archivos correspondientes - exitoso . 49
Ilustración 9 Empaquetamiento de la aplicación ....................................................................... 50
Ilustración 10 Empaquetamiento de aplicación - exitoso ......................................................... 50
Ilustración 11 Login de la aplicación ............................................................................................ 51
Ilustración 12 Resumen de la aplicación parte 1 ....................................................................... 52
Ilustración 13 Resumen de la aplicación parte 2 ....................................................................... 52
Ilustración 14 Exportar graficas .................................................................................................... 53
Ilustración 15 Guardar graficas / histórico de datos .................................................................. 53
Ilustración 16 Usuarios registrado ............................................................................................... 54
Ilustración 17 Módulo de modificación - datos del estudiante ................................................. 54
Ilustración 18 Campo de texto estado del usuario .................................................................... 55
Ilustración 19 Input especial para seleccionar el color de la moto ......................................... 55
Ilustración 20 Formulario de asignación de moto a un usuario ya existente ........................ 56
Ilustración 21 Confirmación exitosa de asociación de moto .................................................... 56
Ilustración 22 Botón de creación de nuevo estudiante ............................................................. 56
Ilustración 23 Formulario de registro de estudiantes ................................................................ 57
7
1. Introducción
Actualmente es de vital importancia el uso de las redes y conexión entre ellas, con
el fin de poder acceder a una gran variedad de servicios y adquisición de recursos;
los cuales facilitan en gran manera la forma en la cual se desarrolla e interactúa el
ser humano con su entorno, dando a lugar a un auge en el desarrollo de
aplicaciones y dispositivas que facilitan una gran variedad de tareas.
Poder realizar un control y mediciones es de gran ayuda para cualquier entidad,
por ende lo que se busca mediante este trabajo es desarrollar un prototipo de un
sistema telemático mediante el cual se facilite el registro, control del ingreso y
salida de motos para el parqueadero de la Universidad Distrital Francisco José de
Caldas de la facultad tecnológica mediante el uso de RFC.
El medio más común mediante el cual es utilizado este tipo de sistema consiste en
tarjetas inteligentes, dado a que facilitan en gran manera su portabilidad al igual
que otorga un nivel alto de seguridad y privacidad de los datos que contienen.
8
2. Planteamiento del Problema
La facultad tecnológica de la Universidad Distrital Francisco José de Caldas
cuenta con un servicio de parqueadero para la comunidad académica, de acuerdo
a la observación realizada se evidencia que se tienen algunas dificultades tales
como:
- Una gran cantidad de motocicletas intentan realizar el ingreso o la salida del
parqueadero en el mismo momento.
- La disposición de espacios sin las características adecuadas para el uso de
parqueadero de motocicletas.
- La cantidad del personal de seguridad a cargo del parqueadero en ocasiones
no es suficiente para poder realizar la gestión de ingreso y salida de las motos.
- Falta de una modelo de control eficiente y automático para el ingreso, salida y
gestión de motocicletas, que hacen uso del parqueadero.
2.1. Planteamiento de la solución
¿Cuál sería una solución que perdure en el tiempo y realmente minimice de forma
significativa las problemáticas mencionadas en cuanto al ingreso, salida y gestión
de motocicletas, las cuales utilizan el parqueadero de la facultad tecnológica de la
Universidad Distrital Francisco José de Caldas?
2.2. Solución tecnológica
De acuerdo a lo que se planteaba en el proyecto del año 2013, se decide mejorar
su funcionalidad mediante el uso de NFC para facilitar la utilización del mismo y
además generar reportes de acuerdo a la información de los diferentes usuarios
que utilizan el parqueadero y seguidamente actualizar la tecnología que se
implementa por una más versátil.
Se creará un sistema telemático basado en los componentes descritos a
continuación:
1. Servicio web con bases de datos relacionales en MySQL para el registro,
control de ingreso/salida y presentación de información sobre tráfico por medio
de tablas y gráficos estadísticos, desarrollado en el lenguaje JAVA, mediante la
implementación del framework Spring que será ejecutado en servidores
apache tomcat.
9
2. Interfaz electromecánica (lector de chips NFC), conectada al servicio web.
Dicho sistema constará de un proceso de comunicación inalámbrica entre la
interfaz electromecánica con el lector para chip NFC y el carnet estudiantil o tarjeta
con chip NFC, para validar posteriormente la información suministrada en el
registro de la motocicleta, y así autorizar o denegar el ingreso al parqueadero,
teniendo información que será dispuesta en una interfaz de usuario, para temas de
monitoreo y gestión.
10
3. Objetivos
3.1. Objetivo General
Desarrollar un sistema telemático que permita el registro de motocicletas para el
control de acceso y consultas en tiempo real de tráfico del servicio de parqueadero
en la Facultad Tecnológica de la Universidad Distrital Francisco José de Caldas.
3.2. Objetivos Específicos
- Implementar un modelo de comunicación eficiente entre los dispositivos físicos
necesarios (NFC a través del carnet universitario u otro tipo de tarjeta) y el
sistema telemático, que permita la recolección de información para su posterior
validación y análisis.
- Desarrollar un servicio web que permita a los usuarios remotos consultar
información referente a las motocicletas que utilizan el parqueadero.
- Disponer de acceso al sistema telemático en dispositivos Android y en
navegadores de escritorio.
- Realizar una plataforma de reportes con la información del uso del
parqueadero, referente a horas pico y número de motocicletas que utilizan el
servicio, entre otros datos que puedan ser de utilidad.
- Completar todas las user story de acuerdo a lo que se plantea en los sprint
planning.
11
4. Alcances y limitaciones
4.1. Alcances
El alcance del proyecto constara de la entrega del prototipo funcional y maquetado
de lo que sería la simulación del ingreso al parqueadero de la Universidad Distrital
Francisco José de Caldas facultad tecnológica, seguidamente de una aplicación
mediante la cual se pueda realizar la medición de los diferentes aspectos que se
planearon dentro de los objetivos del mismo proyecto, entre los cuales se incluye
permitirle al usuario (administrador) poder visualizar la cantidad de motos que se
encuentran dentro del parqueadero dentro de un determinado tiempo, además se
contara con un formulario para que cada uno de los diferentes usuarios pueda
registrarse para poder acceder al servicio de parqueadero.
4.2. Limitaciones
- La puesta en marcha y construcción real del sistema ya depende de las
decisiones que se realicen por parte de las autoridades correspondientes a
cargo en la Universidad Distrital.
- Dado a que se trata de un prototipo, los diferentes dispositivos implementados
para su desarrollo y ejecución se adquieren de acuerdo a la estructura para el
mismo, cabe mencionar que de igual forma también se plantea lo necesario
para la implementación y desarrollo a una escala mayor.
- El sistema está planeado con el fin de que funcione únicamente para la
facultad tecnológica de la Universidad Francisco José de Caldas.
12
5. Justificación
Con el fin de poder facilitar la gestión de ingreso y su respectivo control a la zona
de parqueadero de la universidad Distrital Francisco José de Caldas facultad
tecnológica se plantea esta solución al inconveniente que se presenta en el
momento de ingreso y salida.
5.1. Económica
Como tal el acceso al uso de dispositivos que permitan la comunicación y lectura
de datos tales como el RFID al igual que NFC se encuentran a la mano en el
marcado y su costo es relativamente bajo en comparación de otro tipo de sistemas
que podrían facilitar este mismo tipo de tarea.
De igual forma para la ejecución de este proyecto se plantea el siguiente modelo
de negocio, mediante el uso del carnet universitario, una tarjeta inteligente o una
etiqueta clave cuyo costo oscila entre los 100 y 130 pesos la unidad,
seguidamente para la ejecución y puesta en marcha del proyecto se propone la
idea de realizar un cobro con el fin de poder adquirir la tarjeta y así el acceso al
parqueadero para los estudiantes.
5.2. Tecnológica
Gracias al gran desarrollo que ha tenido el área de las comunicaciones a nivel
mundial se puede tener fácil acceso a tecnologías consideradas de punta con un
bajo costo y un gran potencial para el desarrollo de aplicaciones del ámbito de
telemática de igual forma se cuenta con una documentación bastante completa
referente al uso de todo este tipo de dispositivos tales como NFC y RFID lo cual
nos permite sacarle su mayor potencial sin dejar de lado cualquier inconveniente a
aspectos tales como la seguridad de los datos que se manejan como si al igual de
las diferentes interfaces que las utilizan.
13
6. Marco de Referencia
6.1. Marco teórico
6.1.1. NFC
“Aunque la tecnología NFC no es una novedad (en 2003 fue aprobada como
estándar ISO/IEC), pues ya por 2008 se empezaron a ver los primeros periféricos
que hacían uso de la tecnología combinada con el Bluetooth, es ahora cuando la
misma está en boca de todos.
¿Y qué es eso de la tecnología NFC? ¿Para qué sirve? A esas preguntas que te
estás haciendo ahora que sabes que el Nexus S lo lleva integrado y que Apple
tiene grandes planes para ella, te contestaremos en este NFC a fondo.
NFC, tecnología inalámbrica de corto alcance
NFC significa Near Field Communication. Se trata de una tecnología inalámbrica
que funciona en la banda de los 13.56 MHz (en esa banda no hace falta licencia
para usarla) y que deriva de las etiquetas RFID de las que seguro has oído hablar,
pues están presentes en abonos de transporte o incluso sistemas de seguridad de
tiendas físicas.
NFC es una plataforma abierta pensada desde el inicio para teléfonos y
dispositivos móviles. Su tasa de transferencia puede alcanzar los 424 kbit/s por lo
que su enfoque más que para la transmisión de grandes cantidades de datos es
para comunicación instantánea, es decir, identificación y validación de
equipos/personas.
Su punto fuerte está en la velocidad de comunicación, que es casi instantánea sin
necesidad de emparejamiento previo. Como contrapartida, el alcance de la
tecnología NFC es muy reducido, pues se mueve como máximo en un rango de
los 20 cm. A su favor también juega que su uso es transparente a los usuarios y
que los equipos con tecnología NFC son capaces de enviar y recibir información al
mismo tiempo.
La tecnología NFC puede funcionar en dos modos:
- Activo, en el que ambos equipos con chip NFC generan un campo
electromagnético e intercambian datos.
- Pasivo, en el que solo hay un dispositivo activo y el otro aprovecha ese campo
para intercambiar la información.
14
Seguridad de la tecnología NFC
Seguro que todo te parece muy interesante, pero estás pensando en la seguridad.
Bien hecho. Dado que estamos ante una comunicación por radiofrecuencia, la
lectura de nuestra transmisión es una posibilidad que existe siempre. En el caso
de la tecnología NFC se cuenta con la ventaja de la poca distancia a la que la
misma opera, pero no se puede descartar la copia de los códigos de nuestro chip
para un uso fraudulento. Además, no solo la posibilidad de robar nuestros datos
está ahí, sino que la modificación o inserción de errores en la misma también
existe. Así que la seguridad vendrá de la mano de las que adopten las
transacciones de esas comunicaciones, como puede ser la SSL.
Usos de la tecnología NFC
La premisa básica a la que se acoge el uso de la tecnología NFC es aquella
situación en la que es necesario un intercambio de datos de forma inalámbrica. Lo
usos que más futuro tienen son la identificación, la recogida e intercambio de
información y sobre todo, el pago.
- Identificación: el acceso a lugares donde es precisa una identificación podría
hacerse simplemente acercando nuestro teléfono móvil o tarjeta con chip NFC
a un dispositivo de lectura. Los abonos de autobús son un ejemplo muy válido.
- Recogida/intercambio de datos: Google es el principal protagonista de este
uso, pues en combinación con las etiquetas RFID, utilidades como marcar
dónde estamos, recibir información de un evento o establecimiento son
inmediatas.
- Sincronización instantánea de dispositivos: algunos fabricantes también están
utilizando esta tecnología para sincronizar sus diferentes dispositivos. Por
ejemplo, son sólo acercar tu móvil a unos altavoces estos se sincronizarían
automáticamente de forma más sencilla que en el caso del Bluetooth, que
primero requiere emparejarlos.
- Automatización de acciones: las etiquetas NFC o NFC Tags son pequeñas
pegatinas que podemos poner en diferentes sitios y configurarlas para que al
pasar el móvil sobre ellas realicen configuraciones automáticas. Por ejemplo,
puedes tener una en la entrada de tu casa para que al entrar la toques con el
móvil para activar el WiFi y poner el modo vibración, u otra en el coche para
activar el Bluetooth. Sus usos son tantos como puedas imaginar.
- Pago con el teléfono móvil: sin duda alguna es la estrella de los usos del NFC.
La comodidad de uso y que el gasto pueda estar asociado a nuestra factura o
15
una cuenta de banco son armas muy poderosas y esta tecnología está camino
de ser el método de pago del futuro.”1
6.1.2. ISO 1443
“ISO / IEC 14443-3: 2011 describe:
- Sondeo para tarjetas u objetos de proximidad (PICC) que entran en el campo
de un dispositivo de acoplamiento de proximidad (PCD);
- El formato de bytes, los marcos y la temporización utilizados durante la fase
inicial de comunicación entre los PCD y los PICC;
- El contenido inicial del comando Request y Answer to Request;
- Métodos para detectar y comunicarse con un PICC entre varios PICC
(anticolisión);
- Otros parámetros necesarios para inicializar las comunicaciones entre un PICC
y un PCD;
- Medios opcionales para facilitar y acelerar la selección de un PICC entre varios
PICC basados en criterios de aplicación.
- El protocolo y los comandos utilizados por las capas superiores y por las
aplicaciones y que se utilizan después de la fase inicial se describen en ISO /
IEC 14443-4.
ISO / IEC 14443-3: 2011 es aplicable a PICCs de Tipo A y de Tipo B (como se
describe en ISO / IEC 14443-2)”2.
6.1.3. RFID RC522
“El Módulo Lector RFID-RC522 RF utiliza 3.3V como voltaje de alimentación y se
controla a través del protocolo SPI, así como el protocolo UART, por lo que es
compatible con casi cualquier micro controlador, Arduino o tarjeta de desarrollo. El
RC522 también utiliza un sistema avanzado de modulación y demodulación para
todo tipo de dispositivos pasivos de 13.56Mhz. Puesto que se hará una lectura y
escritura de la tarjeta, es necesario conocer las características de los bloques de
memoria una tarjeta: La tarjeta que viene con el módulo RFID cuenta con 64 1 PENALVA, J. (25 de Enero de 2011). NFC: qué es y para qué sirve. Recuperado el 1 de Abril de 2017, de NFC: qué es y para qué sirve: https://www.xataka.com/moviles/nfc-que-es-y-para-que-sirve 2 ISO. (Abril de 2011). ISO/IEC 14443-3:2011. Obtenido de ISO/IEC 14443-3:2011: https://www.iso.org/standard/50942.html
16
bloques de memoria (0-63) donde se hace lectura y/o escritura. Cada bloque de
memoria tiene la capacidad de almacenar sobre todo hasta 16 Bytes. El número
de serie consiste de 5 valores hexadecimales, se podría utilizar esto para hacer
una operación dependiendo del número de serie.
Características del módulo lector rc522 RF
- Modelo: MF522-ED
- Corriente de operación: 13-26mA a 3.3V
- Isb de stand by: 10-13mA a 3.3V
- Ism de sleep-mode: <80uA
- Im máxima: 30mA
- Frecuencia de operación: 13.56Mhz
- Distancia de lectura: 0 a 60mm
- Protocolo de comunicación: SPI
- Velocidad de datos máxima: 10Mbit/s
- Dimensiones: 40 x 60 mm
- Temperatura de operación: -20 a 80ºC
- Humedad de operación: 5%-95%
- Máxima velocidad de SPI: 10Mbit/s
- Incluye pines, llavero y tarjeta”3
6.1.4. Raspberry pi
“Raspberry Pi es un computador de placa reducida, computador de placa única o
computador de placa simple (SBC) de bajo costo 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.
En cambio el software sí es open source, siendo su sistema operativo oficial una
versión adaptada de Debian, denominada Raspbian, aunque permite usar otros
sistemas operativos, incluido una versión de Windows 10. En todas sus versiones
incluye un procesador Broadcom, una memoria RAM, una GPU, puertos USB,
HDMI, Ethernet (El primer modelo no lo tenía), 40 pines GPIO y un conector para
3 Hetpro Store. (25 de Abril de 2014). Módulo RFID-RC522 RF con Arduino UNO SPI. Recuperado el 23 de Julio de 2017, de Módulo RFID-RC522 RF con Arduino UNO SPI: https://hetpro-store.com/TUTORIALES/modulo-lector-rfid-rc522-rf-con-arduino/
17
cámara. Ninguna de sus ediciones incluye memoria, siendo esta en su primera
versión una tarjeta SD y en ediciones posteriores una tarjeta MicroSD”4
“Para que funcione, basta con que añadamos nosotros mismos un medio de
almacenamiento (como por ejemplo una tarjeta de memoria SD), enchufarlo a la
corriente gracias a cualquier cargador de tipo microUSB (el mismo que sirve para
recargar la mayoría de los teléfonos móviles, cuyo coste es ínfimo) y, si lo
deseamos, incorporar un chasis para que todo quede a buen recaudo y su
apariencia sea más estética. Estos pueden ser desde cajas predeterminadas
hasta una que fabriquemos nosotros mismos echándole grandes dosis de
imaginación.
La fundación de Raspberry Pi pone a disposición desde su página web Raspbian,
una distribución de Linux basada en Debian, pero también podemos recurrir a
muchas de las distribuciones específicas que la comunidad de usuarios ha
desarrollado para diversos fines.
En función del modelo que escojamos, dispondremos de más o menos opciones
de conexión, pero siempre tendremos al menos un puerto de salida de video HDMI
y otro de tipo RCA, minijack de audio y un puerto USB 2.0 al que conectar un
teclado y ratón.
En cuanto a conexión de red se refiere, podemos disponer de Ethernet para
enchufar un cable RJ-45 directamente al router o recurrir a adaptadores
inalámbricos WiFi. 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
enchufar el teclado y el ratón.
Para el almacenamiento, Raspberry Pi recomienda utilizar una tarjeta SD con una
capacidad mínima de 4 Gbytes y de clase 4 (este valor aparece siempre impreso
en la tarjeta, e indica su rendimiento en cuanto a velocidad se refiere).
Para enchufar nuestra Raspberry Pi a un monitor o televisor, necesitaremos un
cable HDMI o, si no disponemos de tal entrada de video, un cable HDMI a DVI.
También es posible recurrir en su lugar a la salida analógica RCA (identificada en
nuestra tele por un cable amarillo).
Centrándonos en el teclado y ratón, lo más sencillo es adquirir un conjunto
inalámbrico que conectaremos mediante un único adaptador, y así no
necesitaremos de más puertos USB.”5
4 Wikipedia. (20 de Julio de 2017). Raspberry Pi. Recuperado el 23 de Julio de 2017, de Raspberry Pi: https://es.wikipedia.org/wiki/Raspberry_Pi
18
6.1.5. Spring Boot
“Es una de las tecnologías dentro del mundo de Spring de las que más se está
hablando últimamente. ¿Qué es y cómo funciona Spring Boot? Para entender el
concepto primero debemos reflexionar sobre como construimos aplicaciones con
Spring Framework.
Fundamentalmente existen tres pasos a realizar. El primero es crear un proyecto
Maven/Gradle y descargar las dependencias necesarias. En segundo lugar
desarrollamos la aplicación y en tercer lugar la desplegamos en un servidor. Si nos
ponemos a pensar un poco a detalle en el tema, únicamente el paso dos es una
tarea de desarrollo. Los otros pasos están más orientados a infraestructura.”6
Spring MVC
“Debido a la explosión de las aplicaciones móviles cada día nos encontramos con
una mayor necesidad de utilizar frameworks web que generen paginas HTML
sencillas de tal forma que luego puedan decorarse con otras tecnologías tipo
Bootstrap ,JQuery mobile o similares. A este tipo de categoría pertenece el
framework Spring MVC que cada día es más utilizado en las empresas. La
siguiente comparativa es interesante para ver que cuota de mercado tiene cada
framework.”7
6.1.6. Maven
“Maven es una herramienta de software para la gestión y construcción de
proyectos Java creada por Jason van Zyl, de Sonatype, en 2002. Es similar en
funcionalidad a Apache Ant (y en menor medida a PEAR de PHP y CPAN de Perl),
pero tiene un modelo de configuración de construcción más simple, basado en un
formato XML. Estuvo integrado inicialmente dentro del proyecto Jakarta pero
ahora ya es un proyecto de nivel superior de la Apache Software Foundation.
Maven utiliza un Project Object Model (POM) para describir el proyecto de
software a construir, sus dependencias de otros módulos y componentes externos,
y el orden de construcción de los elementos. Viene con objetivos predefinidos para
5 Castro, A. (23 de Enero de 2014). ¿Qué es Raspberry Pi, dónde comprarla y cómo usarla? Recuperado el 23 de Julio de 2017, de ¿Qué es Raspberry Pi, dónde comprarla y cómo usarla?: http://computerhoy.com/noticias/hardware/que-es-raspberry-pi-donde-comprarla-como-usarla-8614 6 Caules, C. Á. (8 de Marzo de 2016). ¿Qué es Spring Boot? Recuperado el 23 de Julio de 2017, de ¿Qué es Spring Boot?: http://www.arquitecturajava.com/que-es-spring-boot/ 7 Caules, C. Á. (20 de Noviembre de 2013). Spring MVC Configuración. Recuperado el 23 de Julio de 2017, de Spring MVC Configuración: http://www.arquitecturajava.com/spring-mvc-configuracion/
19
realizar ciertas tareas claramente definidas, como la compilación del código y su
empaquetado.
Una característica clave de Maven es que está listo para usar en red. El motor
incluido en su núcleo puede dinámicamente descargar plugins de un repositorio, el
mismo repositorio que provee acceso a muchas versiones de diferentes proyectos
Open Source en Java, de Apache y otras organizaciones y desarrolladores. Este
repositorio y su sucesor reorganizado, el repositorio Maven 2, pugnan por ser el
mecanismo de facto de distribución de aplicaciones en Java, pero su adopción ha
sido muy lenta. Maven provee soporte no solo para obtener archivos de su
repositorio, sino también para subir artefactos al repositorio al final de la
construcción de la aplicación, dejándola al acceso de todos los usuarios. Una
caché local de artefactos actúa como la primera fuente para sincronizar la salida
de los proyectos a un sistema local.
Maven está construido usando una arquitectura basada en plugins que permite
que utilice cualquier aplicación controlable a través de la entrada estándar. En
teoría, esto podría permitir a cualquiera escribir plugins para su interfaz con
herramientas como compiladores, herramientas de pruebas unitarias, etcétera,
para cualquier otro lenguaje. En realidad, el soporte y uso de lenguajes distintos
de Java es mínimo. Actualmente existe un plugin para .Net Framework y es
mantenido, y un plugin nativo para C/C++ fue alguna vez mantenido por Maven”8
6.1.7. Python
“Es un lenguaje de programación interpretado cuya filosofía hace hincapié en una
sintaxis que favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma, ya que soporta
orientación a objetos, programación imperativa y, en menor medida, programación
funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.
Es administrado por la Python Software Foundation. Posee una licencia de código
abierto, denominada Python Software Foundation License, que es compatible con
la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en
ciertas versiones anteriores.
Características y paradigmas
8 Wikipedia. (28 de Junio de 2016). Maven. Recuperado el 23 de Julio de 2017, de Maven: https://es.wikipedia.org/wiki/Maven
20
Python es un lenguaje de programación multiparadigma. Esto significa que más
que forzar a los programadores a adoptar un estilo particular de programación,
permite varios estilos: programación orientada a objetos, programación imperativa
y programación funcional. Otros paradigmas están soportados mediante el uso de
extensiones.
Python usa tipado dinámico y conteo de referencias para la administración de
memoria.
Una característica importante de Python es la resolución dinámica de nombres; es
decir, lo que enlaza un método y un nombre de variable durante la ejecución del
programa (también llamado enlace dinámico de métodos).
Otro objetivo del diseño del lenguaje es la facilidad de extensión. Se pueden
escribir nuevos módulos fácilmente en C o C++. Python puede incluirse en
aplicaciones que necesitan una interfaz programable.
Aunque la programación en Python podría considerarse en algunas situaciones
hostiles a la programación funcional tradicional del Lisp, existen bastantes
analogías entre Python y los lenguajes minimalistas de la familia Lisp como puede
ser Scheme.”9
6.1.8. ThymeLeaf
“Es una librería Java que implementa un motor de plantillas de
XML/XHTML/HTML5 (también extensible a otros formatos) que puede ser utilizado
tanto en modo web como en otros entornos no web. Se acopla muy bien para
trabajar en la capa vista del MVC de aplicaciones web, pero puede procesar
cualquier archivo XML, incluso en entornos desconectados.
Proporciona un módulo opcional para la integración con Spring MVC, por lo que se
puede utilizar para reemplazar completamente a los archivos JSP en tus
aplicaciones construidas con esta tecnología.
El objetivo principal de Thymeleaf es permitir la creación de plantillas de una
manera elegante y un código bien formateado. Sus dialectos Standard y
SpringStandard permiten crear potentes plantillas naturales que se pueden
visualizar correctamente en los navegadores de Internet, por lo que también
9 Wikipedia. (22 de Julio de 2017). Python. Recuperado el 23 de Julio de 2017, de Python: https://es.wikipedia.org/wiki/Python
21
funcionan como prototipos estáticos. Thymeleaf también puede extenderse
desarrollando tus propios dialectos.
Características importantes
- Motor de plantillas Java para XML, XHTML y HTML5. Extensible para otros
formatos.
- Trabaja en entornos web y no web (desconectados). No existe dependencia
fuerte con el API Servlet.
- Basado en conjunto de características modulares llamadas Dialectos.
o Las características del Dialecto (por ejemplo: evaluación, iteración, etc.)
son aplicadas para relacionarlos con las etiquetas de las plantillas y/o
atributos.
o Dos dialectos disponibles listos para ser utilizados: Standard y
SpringStandard (para aplicaciones Spring MVC, la misma sintaxis que
para Standard).
o Los desarrolladores pueden extender y crear sus dialectos
personalizados.
- Muchas plantillas listas para ser utilizadas (extensibles):
o XML: validando otra vez o no un DTD.
o XHTML 1.0 y 1.1: validando otra vez o no el estándar DTD.
o HTML5: código XML y basado en HTML5. El código no XML es
automáticamente eliminado y convertido en formato XML.
- Soporte completo (y extensible) a la internacionalización.
- Configurable, alto rendimiento del caché del analizador de plantillas que reduce
al mínimo las entradas/salidas.
- Traducción automática DOCTYPE —de plantilla DTD ha resultado DTD— para
validaciones (opcional) de plantillas y código resultante.
- Extremadamente extensible: puede ser utilizado como un framework de motor
de plantillas si es necesario.
- Documentación completa incluyendo varias aplicaciones de ejemplo.”10
6.1.9. Raspbian
“Raspbian es un sistema operativo libre y gratuito basado en Debian y optimizado
para el hardware de la Raspberry Pi. Para quienes aún no les haya quedado claro
10 Wikipedia. (24 de Marzo de 2015). Thymeleaf. Recuperado el 23 de Julio de 2017, de Thymeleaf: https://es.wikipedia.org/wiki/Thymeleaf
22
qué es un sistema de esta naturaleza, diremos que es el conjunto de programas
básicos y utilitarios (programas de soporte, pues), que permiten que la Raspberry
haga algo útil. Sin embargo, Raspbian es algo más que un sistema operativo, pues
viene con unos 35 mil paquetes, precompilados, de forma tal que sea fácil instalar
el que necesitemos en la Raspberry Pi.
La primera remesa de paquetes precompilados, optimizados para el mejor
desempeño del dispositivo Pi, se completó apenas en junio de este año (poco más
de 35,000 paquetes). Sin embargo, Raspbian está en un desarrollo activo, con
énfasis en dar estabilidad y desempeño a los paquetes que originalmente se
escribieron y que están en la distribución de Linux, Debian, para poner a
disposición pública lo antes posible.
Cabe decir que Raspbian no está afiliado de ninguna manera con la Fundación
Raspberry Pi. Raspbian fue creado por un pequeño pero dedicado grupo de
desarrolladores que ya son fanáticos de la Raspberry Pi, las metas educativas de
esta computadora y, por supuesto, del proyecto Debian.
Raspbian es una comunidad de software fundada y soportada por los propios
miembros de forma libre y gratuita. Y aunque Raspbian es gratis, el desarrollo del
sistema tuvo su costo. Así, los autores de este sistema operativo piden el apoyo
de la comunidad vía donativos.”11
6.1.10. Servo SG90
“Los servos son motores de corriente continua (CC), pero en lugar tener un giro
continuo que podamos aprovechar (para mover un molino por ejemplo), están
preparados para moverse a un ángulo fijo en respuesta a una señal de control, y
mantenerse fijos en dicha posición. Estos servomotores son muy frecuentes en
Aero modelismo y en robótica, puesto que su funcionamiento y control son muy
precisos.
Un servo principalmente está formado por un conjunto reductor (engranajes), un
motor de CC y por último por un circuito de control, aunque en la práctica se
comporta como un bloque funcional que posiciona su eje en un ángulo preciso en
función de la señal de control.
Habitualmente los servos tiene un margen de operación, es decir, pueden
moverse entre 0º y ángulo dado, que suele ser de 180º. Normalmente estos
11 Michelone, M. L. (2 de Agosto de 2012). Raspbian: Sistema operativo gratuito para la Raspberry Pi. Recuperado el 23 de Julio de 2017, de Raspbian: Sistema operativo gratuito para la Raspberry Pi: https://www.unocero.com/2012/08/02/raspbian-sistema-operativo-gratuito-para-la-raspberry-pi/
23
pequeños servos funcionan sobre 5V y el control se realiza mediante una señal de
control PWM, en la que el ancho el pulso indica el ángulo que deseamos que
adopte el eje.
En este proyecto vamos a utilizar un Micro Servo SG90 Tower Pro, puesto que es
ideal para las primeras experiencias de aprendizaje y prácticas con servos, ya que
sus requerimientos de energía son bastante bajos y se permite alimentarlo con la
misma fuente de alimentación que el circuito de control, es decir, si se conecta a
un Arduino, se puede alimentar durante las pruebas desde el puerto USB del PC
sin mayor problema, aunque es recomendable alimentar el Arduino con una fuente
de alimentación externa de más de 700 mA, para evitar problemas de corriente.
Principales características
- Dimensiones (L x W x H) = 22.0 x 11.5 x 27 mm (0.86 x 0.45 x 1.0 pulgadas)
- Peso: 9 gramos
- Longitud de cable de conector: 24.5cm
- Velocidad: 0.10 seg/60° @ 4.8V
- Torque: 1.8 Kg-cm @ 4.8V
- Voltaje de funcionamiento: 3.0-7.2V
- Temperatura de funcionamiento: -30℃ ~ 60℃
- Ángulo de rotación: 180°
- Ancho de pulso: 500-2400 µs”12
6.1.11. BDD
“Behavior-Driven Development o BDD es un proceso de desarrollo software, si
bien se relaciona principalmente con el Testing, que es de donde surge. BDD
busca un lenguaje común para unir la parte técnica y la de negocio, y que sea
desde ese lenguaje común desde donde arranque el Testing y, desde ahí, el
desarrollo.
En BDD, las pruebas de aceptación se escriben usando historias de usuario, ya
sabes aquello tan usado en agilidad (sino léete el anterior post)… “Como [rol]
quiero [característica] para que [los beneficios].”
12 García, M. d. (13 de Enero de 2016). Programar posiciones en un Micro Servo Tower Pro SG90 9G. Recuperado el 23 de Julio de 2017, de Programar posiciones en un Micro Servo Tower Pro SG90 9G: http://miarduinounotieneunblog.blogspot.com.co/2016/01/programar-posiciones-en-un-micro-servo.html
24
Y, siguiendo con lo anterior, posteriormente escribir criterios de aceptación para
esas historias de usuario, haciéndolo en términos de escenarios:
Dado [contexto inicial], cuando [se produce el evento], entonces [resultados]
Given [initial context], when [event occurs], then [ensure some outcomes].
Así, simplificadamente, el ciclo básico de BDD sería el siguiente…
1 – Escribir las historias de usuario.
2 – Escribir los escenarios.
3 – Automatizar las pruebas de aceptación.
Con la idea final de tener un mismo “framework” de comunicación y colaboración
entre desarrolladores, QA y roles no técnicos, o de negocio, en un proyecto de
software. Y para tener ese punto común entre todos esos actores, algo clave es
tener un lenguaje común, y ahí es donde aparece Gherkin.
Gherkin
Es un lenguaje entendible por el negocio, lo que se llama un DSL (Domain-
Specific Language), más o menos cercano al lenguaje natural. Está pensado para
que lo entienda “negocio”, los usuarios, etc. Su idea es contar como se “comporta”
el software sin entrar en detalles de implementación.
Es un lenguaje muy simple. Sólo tienen 5 sentencias:
- Feature
- Scenario
- Given
- When
- Then”13
13 Garzas, J. (15 de Diciembre de 2014). Enlace permanente a Entendiendo qué es BDD (Behavior-Driven Development) (I). Recuperado el 30 de Julio de 2017, de Enlace permanente a Entendiendo qué es BDD (Behavior-Driven Development) (I): http://www.javiergarzas.com/2014/12/bdd-behavior-driven-development-1.html
25
6.1.12. Tarjeta inalámbrica ralink 802.1n
“Tambíen llamadas tarjetas Wi-Fi, son tarjetas para expansión de capacidades
que sirven para enviar y recibir datos sin la necesidad de cables en las redes
inalámbricas de área local ("W-LAN "Wireless Local Area Network"), esto es entre
redes inalámbricas de computadoras. La tarjeta de red se inserta dentro de las
ranuras de expansión ó "Slots" integradas en la tarjeta principal ("Motherboard") y
se atornilla al gabinete para evitar movimientos y por ende fallas. Todas las
tarjetas de red inalámbricas integran una antena de recepción para las señales.”14
6.2. Marco histórico
6.2.1. APLICACIÓN WEB PARA EL CONTROL DE ENTRADA Y SALIDA DE
EQUIPOS Y USO DE PARQUEADEROS DE LA UNIVERSIDAD
DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD
TECNOLÓGICA POR MEDIO DE LA LECTURA DEL CÓDIGO DE
BARRAS15
Durante el 2013 se realizó un proyecto con unas características similares para
realizar el control de los diferentes vehículos que ingresan al parqueadero
mediante el uso de lector de barras que se encuentra en los diferentes carnets de
la comunidad estudiantil, pero el cual no fue implementado en la Universidad.
6.2.2. DISEÑO Y CONSTRUCCIÓN DEL PROTOTIPO DE UN SISTEMA
OPTIMIZADO PARA EL INGRESO A PARQUEADEROS
VEHICULARES CON TARJETAS INTELIGENTES
“Descripción y formulación de problema
Debido a que los parqueaderos no poseen un sistema dinámico, el administrador
del parqueadero no tiene la información de los parqueaderos disponibles ni
ocupados, ni la ubicación de los mismos; por lo tanto no puede le brinda al usuario
un óptimo servicio en el que pueda ubicar un sitio disponible para su vehículo en el
14 Informática Moderna. (2017). TARJETA DE RED INALÁMBRICAS. Obtenido de TARJETA DE RED INALÁMBRICAS: http:/www.informaticamoderna.com/Tarjetas_red_inalam.htm 15 Briceño Pinilla, J. S. (2013). Aplicación Web para el control de entrada y salida de equipos y uso de parqueaderos de la Universidad Distrital Francisco José de Caldas Facultad Tecnológica por medio de la lectura del código de barras. Bogotá: Universidad Distrital Francisco José de Caldas.
26
menor tiempo posible, agilizando la circulación dentro del parqueadero y
permitiendo que el usuario permanezca mayor tiempo en el área de comercio.
¿Cómo un sistema optimizado de ingreso para vehículos a un parqueadero con
tarjetas inteligentes, puede mejorar la organización y control del
establecimiento?”16
6.3. Marco de metodología
Para el desarrollo de esta monografía se desea utilizar como metodología SCRUM
Agile debido a que permite una gestión rápida y ágil frente a la evaluación y
desarrollos de proyectos sin importar su complejidad ni su tamaño, de igual forma
permite desarrollar de manera coordinada, con gran control de las mismas y
siempre buscando maximizar los resultados, para ello se realiza la gestión
mediante los siguientes elementos:
- User Story: todas las actividades que se requieren para la ejecución y
desarrollo del proyecto son asignadas en diferentes User Story (historias de
usuario), tales como: creación de base de datos, desarrollo de front-end de la
plataforma, funcionamiento de back-end.
- Product backlog: permite organizar las diferentes user story de acuerdo a su
prioridad y peso con el fin de dar un orden con respecto a su organización para
futuro desarrollo.
- Sprint planning meeting: el equipo de trabajo se reúne con el fin de definir las
user story que se desarrollaran en el sprint.
- Sprint backlog: las user story que se desean desarrollar durante un sprint
(periodo de tiempo que varía entre 1 a 4 semanas dependiendo de la
dificultad).
- Daily meeting: son reuniones cortas que se realizan todos los días con las
cuales se permite dar a conocer a los diferentes miembros del equipo de las
actividades que se han concluido y las que están en progreso.
16 Andrés Tomas Garzon Ayala, B. E. (noviembre de 2006). DISEÑO Y CONSTRUCCIÓN DEL PROTOTIPO DE UN SISTEMA OPTIMIZADO PARA EL INGRESO A PARQUEADEROS VEHÍCULARES CON TARJETAS INTELIGENTES. Obtenido de DISEÑO Y CONSTRUCCIÓN DEL PROTOTIPO DE UN SISTEMA OPTIMIZADO PARA EL INGRESO A PARQUEADEROS VEHÍCULARES CON TARJETAS INTELIGENTES Recuperado el 1 de Abril de 2017, http://biblioteca.usbbog.edu.co:8080/Biblioteca/BDigital/38007.pdf
27
Al dar por terminado un sprint se realiza una REVIEW en la cual el equipo muestra
los diferentes avances y desarrollos que se realizaron a lo largo del tiempo de
trabajo junto al acompañamiento de algunos usuarios o interesados en el proyecto
con el fin de que ellos hagan una retroalimentación de lo que se ha realizado.
Una vez se termina la review el equipo procede a realizar una reunión de
retrospectiva para que el mismo equipo se dé una retroalimentación de las
actividades que tomaron lugar durante el sprint que se finalizó. Por último se
realiza nuevamente Sprint Planning meeting para acordar cuales son las
siguientes historias de usuario que entrarán a desarrollarse en el siguiente sprint.
“Scrum es un proceso en el que se aplican de manera regular un conjunto de
buenas prácticas para trabajar colaborativamente, en equipo, y obtener el mejor
resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su
selección tiene origen en un estudio de la manera de trabajar de equipos
altamente productivos.
En Scrum se realizan entregas parciales y regulares del producto final, priorizadas
por el beneficio que aportan al receptor del proyecto. Por ello, Scrum está
especialmente indicado para proyectos en entornos complejos, donde se necesita
obtener resultados pronto, donde los requisitos son cambiantes o poco definidos,
donde la innovación, la competitividad, la flexibilidad y la productividad son
fundamentales.
Scrum también se utiliza para resolver situaciones en que no se está entregando
al cliente lo que necesita, cuando las entregas se alargan demasiado, los costes
se disparan o la calidad no es aceptable, cuando se necesita capacidad de
reacción ante la competencia, cuando la moral de los equipos es baja y la rotación
alta, cuando es necesario identificar y solucionar ineficiencias sistemáticamente o
cuando se quiere trabajar utilizando un proceso especializado en el desarrollo de
producto.
Ver en detalle cuales son los beneficios de Scrum, sus fundamentos y sus
requisitos.
El proceso
En Scrum un proyecto se ejecuta en bloques temporales cortos y fijos (iteraciones
que normalmente son de 2 semanas, aunque en algunos equipos son de 3 y hasta
4 semanas, límite máximo de feedback y reflexión). Cada iteración tiene que
proporcionar un resultado completo, un incremento de producto final que sea
susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite.
28
El proceso parte de la lista de objetivos/requisitos priorizada del producto, que
actúa como plan del proyecto. En esta lista el cliente prioriza los objetivos
balanceando el valor que le aportan respecto a su coste y quedan repartidos en
iteraciones y entregas.
Las actividades que se llevan a cabo en Scrum son las siguientes:
Planificación de la iteración
El primer día de la iteración se realiza la reunión de planificación de la iteración.
Tiene dos partes:
- Selección de requisitos (4 horas máximo). El cliente presenta al equipo la lista
de requisitos priorizada del producto o proyecto. El equipo pregunta al cliente
las dudas que surgen y selecciona los requisitos más prioritarios que se
compromete a completar en la iteración, de manera que puedan ser
entregados si el cliente lo solicita.
- Planificación de la iteración (4 horas máximo). El equipo elabora la lista de
tareas de la iteración necesarias para desarrollar los requisitos a que se ha
comprometido. La estimación de esfuerzo se hace de manera conjunta y los
miembros del equipo se auto asignan las tareas.
Ejecución de la iteración
Cada día el equipo realiza una reunión de sincronización (15 minutos máximos).
Cada miembro del equipo inspecciona el trabajo que el resto está realizando
(dependencias entre tareas, progreso hacia el objetivo de la iteración, obstáculos
que pueden impedir este objetivo) para poder hacer las adaptaciones necesarias
que permitan cumplir con el compromiso adquirido. En la reunión cada miembro
del equipo responde a tres preguntas:
- ¿Qué he hecho desde la última reunión de sincronización?
- ¿Qué voy a hacer a partir de este momento?
- ¿Qué impedimentos tengo o voy a tener?
Durante la iteración el Facilitador (Scrum Master) se encarga de que el equipo
pueda cumplir con su compromiso y de que no se merme su productividad.
- Elimina los obstáculos que el equipo no puede resolver por sí mismo.
- Protege al equipo de interrupciones externas que puedan afectar su
compromiso o su productividad.
29
Durante la iteración, el cliente junto con el equipo refina la lista de requisitos (para
prepararlos para las siguientes iteraciones) y, si es necesario, cambian o re
planifican los objetivos del proyecto para maximizar la utilidad de lo que se
desarrolla y el retorno de inversión.
Inspección y adaptación
El último día de la iteración se realiza la reunión de revisión de la iteración. Tiene
dos partes:
- Demostración (4 horas máximo). El equipo presenta al cliente los requisitos
completados en la iteración, en forma de incremento de producto preparado
para ser entregado con el mínimo esfuerzo. En función de los resultados
mostrados y de los cambios que haya habido en el contexto del proyecto, el
cliente realiza las adaptaciones necesarias de manera objetiva, ya desde la
primera iteración, re planificando el proyecto.
- Retrospectiva (4 horas máximo). El equipo analiza cómo ha sido su manera de
trabajar y cuáles son los problemas que podrían impedirle progresar
adecuadamente, mejorando de manera continua su productividad. El
Facilitador se encargará de ir eliminando los obstáculos identificados.”17
17 Proyectos agiles. (2015). Recuperado el 1 de Abril de 2017, de Proyectos agiles : https://proyectosagiles.org/que-es-scrum/
30
7. Desarrollo e implementación
7.1. Definición de Historias de usuario BDD
No. 1
Nombre de la Historia de Usuario Spike de hardware
Descripción
Realizar una investigación referente a los componentes de hardware que son necesarios para el desarrollo e implementación de la lectura de las tarjetas inteligentes.
Validaciones
- Conocer los diferentes componentes que darían la posibilidad de realizar el funcionamiento de lo planteado en el proyecto
Criterios de Aceptación
Dado
Cuando
Entonces
Puntos de Estimación 1
Tabla 1 Spike de hardware
No. 2
Nombre de la Historia de Usuario
Cotización de los componentes de hardware
Descripción
Realizar una cotización de los diferentes componentes de hardware necesarios para lograr la implementación y puesta en marcha para el sistema de lectura de las tarjetas inteligentes.
Validaciones
- Obtener varias cotizaciones y propuestas económicas de los materiales necesarios para el desarrollo del proyecto
Criterios de Aceptación
Dado
Cuando
31
Entonces
Puntos de Estimación 1
Tabla 2 Cotización de los componentes de hardware
No. 3
Nombre de la Historia de Usuario
Spike de requerimientos de software
Descripción
Realizar una investigación de los posibles lenguajes de programación que nos faciliten desarrolla el proyecto de la forma más viable y con los mejores estándares referentes al código.
Validaciones
- Obtener un listado de los diferentes lenguajes de programación con los cuales se pueda desarrollar el proyecto
Criterios de Aceptación
Dado
Cuando
Entonces
Puntos de Estimación 1
Tabla 3 Spike de requerimientos de software
No. 4
Nombre de la Historia de Usuario
Configuración de componentes de Hardware
Descripción
Configurar el sistema electromecánico de lectura de las tarjetas inteligentes
Validaciones
- El sistema debe ser capaz de obtener la información que poseen las diferentes tarjetas inteligentes
Criterios de Aceptación
Dado Que el usuario desea ingresar al parqueadero de la universidad
Cuando Pase su tarjeta inteligente a través
32
del lector
Entonces
El lector tomara los valores que se encuentran registrado en la tarjeta inteligente
Puntos de Estimación 5
Tabla 4 Configuración de componentes de Hardware
No. 5
Nombre de la Historia de Usuario
Validación de los datos obtenidos por el lector
Descripción
Realizar una validación de los datos que se obtienen a través del uso del lector junto a la tarjeta inteligente.
Validaciones
- Consultar los datos que se tienen en la tarjeta inteligente
- Consultar en la base de datos si se encuentra valores relacionados a la tarjeta.
- Enviar una respuesta de afirmativo o negativo referente a la consulta de los datos en la BD.
Criterios de Aceptación
Dado Que el usuario desea ingresar al parqueadero de la universidad
Cuando Pase su tarjeta inteligente a través del lector
Entonces
El sistema validara si se encuentran los datos de la tarjeta y el usuario en la BD
Puntos de Estimación 3
Tabla 5 Validación de los datos obtenidos por el lector
No. 6
Nombre de la Historia de Usuario
Simulación de la apertura de las puertas del parqueadero
Descripción
Generar la funcionalidad que permita mover el servo motor con el fin de realizar una simulación de la apertura de las puertas del parqueadero y posterior ingreso
33
Validaciones
- El servo motor debe permitir abrir las puertas del parqueadero de la universidad después que el usuario haya sido validado
Criterios de Aceptación
Dado Que el usuario desea ingresar al parqueadero de la universidad
Cuando Pase su tarjeta inteligente a través del lector
Entonces El sistema permitirá que el servo motor abra la puerta de ingreso
Puntos de Estimación 5
Tabla 6 Simulación de la apertura de las puertas del parqueadero
No. 7
Nombre de la Historia de Usuario
Instalación y configuración del servidor de aplicaciones linux
Descripción
Instalación, configuración y puesta en marcha de un servidor de aplicaciones basado en linux, con sistema operativo Ubuntu Server 16.04, habilitado para la ejecución de aplicaciones web en lenguaje JAVA, sobre apache tomcat y MySQL, además de los ajustes de seguridad y demás necesarios para la comunicación remota con el sistema electromecánico.
Validaciones
Criterios de Aceptación
Dado
Cuando
Entonces
Puntos de Estimación 5
Tabla 7 Instalación y configuración del servidor de aplicaciones linux
No. 8
Nombre de la Historia de Usuario
Desarrollo del frontend de la plataforma del sistema
Descripción
34
Planeación, análisis, diseño, desarrollo e implementación de una plataforma web
Validaciones
- El usuario administrador podrá ingresar a la plataforma con el fin de consumir los diferentes servicios que se tienen en esta.
- Visualizar la cantidad de motos inscritas al parqueadero
- Visualizar la cantidad de motos que se encuentran en el parqueadero en tiempo real.
Criterios de Aceptación
Dado Que el usuario ingrese a la plataforma
Cuando Seleccione las diferentes consultas que se tienen en esta
Entonces
Podrá visualizar los diferentes datos relativos al uso del parqueadero
Puntos de Estimación 13
Tabla 8 Desarrollo del frontend de la plataforma del sistema
No. 9
Nombre de la Historia de Usuario
Desarrollo del frontend del formulario de registro para los usuarios (estudiantes/profesores)
Descripción
Desarrollar el formulario que le permita a los profesores y estudiantes poder postularse para utilizar el servicio de parqueadero de la universidad
Validaciones
- El usuario podrá ingresar sus datos básicos con el fin de solicitar el servicio de parqueadero
Criterios de Aceptación
Dado Que el usuario ingrese a la plataforma
Cuando Llene el formulario de registro
Entonces Sus datos serán almacenados
35
para una posterior aprobación por parte de un usuario administrados
Puntos de Estimación 8
Tabla 9 Desarrollo del frontend del formulario de registro para los usuarios (estudiantes/profesores)
No. 10
Nombre de la Historia de Usuario
Desarrollo de frontend para la validación de los usuario por parte del usuario administrador
Descripción
Permitirle al usuario administrador dar de alta a los usuario que se hayan registrado y de igual manera asignar una tarjeta inteligente
Validaciones
- Visualizar los diferentes usuarios que se han registrado en el formulario de registro
- Permitir dar un estado de “activo” a los usuarios que se hayan registrado
- Ingresar el número de la tarjeta inteligente perteneciente a cada usuario
Criterios de Aceptación
Dado Que el usuario ingrese a la plataforma
Cuando Seleccione los usuarios que se le darán de alta
Entonces Asignara la tarjeta inteligente correspondiente al usuario
Puntos de Estimación 13
Tabla 10 Desarrollo de frontend para la validación de los usuario por parte del usuario administrador
No. 11
Nombre de la Historia de Usuario
Desarrollo del frontend login para el usuario administrador
Descripción
36
Desarrollar el login de la plataforma para que los usuarios de administración ingresen
Validaciones
- El usuario de administración ingresara su Nick de usuario y contraseña para acceder a los servicios de la aplicación.
Criterios de Aceptación
Dado Que el usuario ingrese a la plataforma
Cuando Complete los datos de login
Entonces
Si son válidos le permitirá ingresar y realizar el consumo de las operaciones
Puntos de Estimación 13
Tabla 11 Desarrollo del frontend login para el usuario administrador
No. 12
Nombre de la Historia de Usuario
Realizar modelo entidad / relación de la BD
Descripción
Desarrolla el modelo de entidad / relación que permita la mejor forma de generar la persistencia de los datos que serán utilizados en la plataforma.
Validaciones
- Obtener el diagrama entidad / relación con los diferentes campos necesarios para la BD
- Desarrollar la normalización de los datos.
Criterios de Aceptación
Dado
Cuando
Entonces
Puntos de Estimación 5
Tabla 12 Realizar modelo entidad / relación de la BD
No. 13
37
Nombre de la Historia de Usuario Realizar query de la BD
Descripción
Desarrolla el query que permita la creación de la base de datos para el uso de la plataforma
Validaciones
- El query debe permitir crear la base de datos con sus diferentes tablas y sus llaves tanto primarias como los secundarios y los campos correspondientes a cada una de las tablas.
Criterios de Aceptación
Dado Cuando
Entonces
Puntos de Estimación 2
Tabla 13 Realizar query de la BD (toptechboy, 2015)
No. 14
Nombre de la Historia de Usuario
Realizar la instalación de la BD en MySQL
Descripción
Ejecutar el query que permita la creación de la BD
Validaciones
- Obtener la base de datos necesaria para el uso de la aplicación.
Criterios de Aceptación
Dado
Cuando
Entonces
Puntos de Estimación 1
Tabla 14 Realizar la instalación de la BD en MySQL
No. 15
Nombre de la Historia de Usuario
Desarrollo del Vacíen resumen de la página
Descripción
38
Construcción del modelo vista-controlador, además de funcionar en las capas, de Seguridad, repositorio, entidad, modelo, configuración y componentes.
Validaciones
- Desarrollo de los diferentes componentes necesarios para la utilización de la aplicación visualizar la cantidad de motos inscritas y el número de motos que se encuentran en tiempo real
Criterios de Aceptación
Dado Que el usuario administrador ingrese a la página e inicie sesión
Cuando Cargue el landing de la página
Entonces
Visualizara la cantidad de motos inscritas y el número de motos que se encuentran en tiempo real.
Puntos de Estimación 20
Tabla 15 Desarrollo del Backend resumen de la página
No. 16
Nombre de la Historia de Usuario
Registro formulario de usuario estudiante / profesor
Descripción
Mediante el formulario de registra obtener y almacenar los datos pertenecientes a cada uno de los usuarios
Validaciones
- Darle funcionalidad al formulario de almacenar los datos ingresados en la base de datos
Criterios de Aceptación
Dado Que los usuarios ingresen a la aplicación
Cuando Ingresen sus datos en el formulario de registro
Entonces
Los datos serán almacenados en la BD de la aplicación para un futura activación de los usuarios
Puntos de Estimación 13
Tabla 16 Registro formulario de usuario estudiante / profesor
39
No. 17
Nombre de la Historia de Usuario
Activación de los usuarios registrado
Descripción
Posterior al registro realizado por el usuario (estudiante / profesor) el usuario administrador podrá visualizar los registros y activarlos o desactivarlos
Validaciones
- Permitir al rol de administrador activar/ desactivar a los usuarios (estudiantes / profesores)
Criterios de Aceptación
Dado
Que el administrador ingrese a la aplicación a activar los usuarios registrado a través del formulario
Cuando Seleccione algún usuario
Entonces
Podrá activar o desactivar al usuario seleccionado según corresponda
Puntos de Estimación 13
Tabla 17 Activación de los usuarios registrado
No. 18
Nombre de la Historia de Usuario
Integración de frontend y backend landing de resumen
Descripción
Mediante el frontend consumir los diferentes servicios que prestan los componentes del backend con respecto a la zona de resumen de la aplicación en donde se visualiza la cantidad de motos registradas y las que se encuentran en tiempo real dentro del parqueadero
Validaciones
- Permitir visualizar los datos correspondientes a las motos
Criterios de Aceptación
Dado Que el usuario Administrador inicie sesión
Cuando Haya ingresado sus datos y sean correctos
Entonces Podrá visualizar la cantidad de
40
motos que se tienen registradas y la cantidad de las mismas que se encuentran en el parqueadero
Puntos de Estimación 20
Tabla 18 Integración de frontend y backend landing de resumen
No. 19
Nombre de la Historia de Usuario
Integración de frontend y backend landing de resumen generar reportes
Descripción
Permitirle al usuario administrador generar reportes a cerca de los datos que son mostrados en la aplicación
Validaciones
- El usuario administrador debe poder generar reportes, es decir imprimirlos mismos
Criterios de Aceptación
Dado Que el usuario Administrador inicie sesión
Cuando Haya ingresado sus datos y sean correctos
Entonces
Podrá visualizar la cantidad de motos que se tienen registradas y la cantidad de las mismas que se encuentran en él y generar un reporte de los datos correspondientes.
Puntos de Estimación 20
Tabla 19 Integración de frontend y backend landing de resumen generar reportes
No. 20
Nombre de la Historia de Usuario Construcción de la maqueta
Descripción
Desarrolla una maqueta con el fin de simular como sería el procedimiento de funcionamiento del ingreso al parqueadero
Validaciones
41
- Las puertas deben abrirse en el momento en que un usuario registrado pase su tarjeta inteligente
Criterios de Aceptación
Dado
Que un usuario (estudiante / profesor) desee ingresar al parqueadero y se encuentra registrado para el uso del mismo
Cuando Pase su tarjeta inteligente a través del lector
Entonces Se abrirán las puertas permitiéndole el ingreso
Puntos de Estimación 3
Tabla 20 Construcción de la maqueta
7.2. Diagrama entidad/relación
Ilustración 1 Diagrama Entidad / Relación
7.3. Configuracón y cableado raspberry
42
Ilustración 2 Servo Connected to Raspberry Pi GPIO Pins18
“El cable de tierra es negro, el cable rojo es de 5 voltios, y el cable amarillo es la
línea de control. Si está utilizando un servo diferente, tendrá que leer las
instrucciones para ver cuál es el código de color para sus tres cables, pero es
probable que sea similar al mío. El esquema a continuación muestra cómo debe
enganchar el servo. Obsérvese que tengo el 5V enganchado al pin físico 2, el
servo de tierra enganchado al pin físico 9 de Pi, y la línea de control de servo
conectada al pin físico 11 de Pi.
18 Toptechboy. (2 de Junio de 2015). RASPBERRY PI LESSON 28: CONTROLLING A SERVO ON RASPBERRY PI WITH PYTHON. Recuperado el 26 de Julio de 2017, de RASPBERRY PI LESSON 28: CONTROLLING A SERVO ON RASPBERRY PI WITH PYTHON: http://www.toptechboy.com/raspberry-pi/raspberry-pi-lesson-28-controlling-a-servo-on-raspberry-pi-with-python/
43
hora con el servo conectado, estamos listos para tratar de controlarlo. Para este
ejemplo, trabajaremos en el shell de Python. Para ingresar al shell de python, abra
una ventana Terminal y, en el símbolo del sistema, escriba:
$ Sudo python
Es importante incluir sudo, ya que el Raspberry Pi sólo permite el acceso a los
pines GPIO al superusuario. Por lo tanto, debe introducir el shell de python como
un superusuario. Cuando escriba el comando anterior, debe moverse al shell de
Python, y debería ver el indicador de shell de python de:
>>> import RPi.GPIO como GPIO Ahora necesitamos decirle al Pi qué esquema de numeración de pines queremos
usar. Por lo tanto, tenemos que emitir el comando:
>>> GPIO.setmode (GPIO.BOARD)
Ahora necesitamos decirle al Pi que el pin físico 11 será un pin de salida:
>>> GPIO.setup (11, GPIO.OUT)
La posición de los servos es controlada por la amplitud de pulso de una señal
PWM de 50 Hz. Por lo tanto, necesitamos activar la secuencia PWM a 50 Hz.
Tenga en cuenta que para una señal de 50 Hz, el Periodo de la señal es 1/50 =
.02 segundos o 20 milisegundos. Tenga presente este Período ya que volveremos
a él más adelante. Comenzamos por crear un objeto PWM en el Pin 11 con una
señal de 50 Hz con el comando:
>>> pwm = GPIO.PWM (11,50)
Ahora podemos iniciar la secuencia pwm dando un comando para especificar el
DutyCycle de la señal.”19
19 Toptechboy. (2 de Junio de 2015). RASPBERRY PI LESSON 28: CONTROLLING A SERVO ON RASPBERRY PI WITH PYTHON. Recuperado el 26 de Julio de 2017, de RASPBERRY PI LESSON 28: CONTROLLING A SERVO ON RASPBERRY PI WITH PYTHON: http://www.toptechboy.com/raspberry-pi/raspberry-pi-lesson-28-controlling-a-servo-on-raspberry-pi-with-python/
44
RC522 con Raspberry
Ilustración 3 RC522 con Raspberry20
En la tabla acontinuacuón se muestra la conexión entre RC522 y Rpi2
RC522 pin Rpi2 pin nr Nombre del pin
SDA 24 GPIO8
SCK 23 GPIO11
MOSI 19 GPIO10
MISO 21 GPIO9
IRQ Observacón no conectado
Tierra Tierra Tierra
RST 22 GPIO25
3.3 V 1 3V3
Tabla 21Conexión entre RC522 t RPi221
20 martijnschut. (4 de Abril de 2016). RC522 with Raspberry Pi 2. Recuperado el 26 de Julio de 2017, de RC522 with Raspberry Pi 2: http://www.martijnschut.nl/rc522-with-raspberry-pi-2/ 21 martijnschut. (4 de Abril de 2016). RC522 with Raspberry Pi 2. Recuperado el 26 de Julio de 2017, de RC522 with Raspberry Pi 2: http://www.martijnschut.nl/rc522-with-raspberry-pi-2/
45
“Necesitamos habilitar todas las bibliotecas de python y la interfaz SPI en el RPi2
para que funcione.
Para instalar el entorno python:
Sudo apt-get install python-dev
Habilitar la interfaz spi, para ello edite el achivo /boot/config.txt y agregue las dos
lineas siguientes:
device_tree_param=spi=on
dtoverlay=spi-bcm2708
Para comprobar si la interfaz esta funcionando, reinicie el Rpi y ejecute las
siguientes instrucciones
$ dmesg I grep spi
La salida se verá así:
[ 10.886588] bcm2708_spi 3f204000.spi: master is unqueued, this is deprecated
[ 10.901487] bcm2708_spi 3f204000.spi: SPI Controller at 0x3f204000 (irq 80)
Ahora descargue e instale la librería SPI python:
git clone https://github.com/lthiery/SPI-Py.git
$ cd SPI-Py
$ sudo python setup.py install
Ahora descargue y ejecute la librería RC522:
$ git clone https://github.com/rasplay/MFRC522-python.git
$ cd MFRC522-python
$ python read.py
La salida se verá así:
Card detected
46
Card read UID: 98,40,242,197,125”22
22 martijnschut. (4 de Abril de 2016). RC522 with Raspberry Pi 2. Recuperado el 26 de Julio de 2017, de RC522 with Raspberry Pi 2: http://www.martijnschut.nl/rc522-with-raspberry-pi-2/
47
8. Aplicación en Funcionamiento
A continuación se presnetaran pruebas del correcto funcionamiento de la
aplicación:
Puesta en marcha del servicio a través del servidor linux
Ilustración 4 Puesta en marcha desde el servidor linux
48
Ilustración 5 Ejecución de la instalación
Ilustración 6 Ejecución de la instalación parte 2
Instalación y empaquetamineto de los archivos correspondientes
49
Ilustración 7 Instalación y empaquetamiento de los archivos correspondientes
Ilustración 8 Instalación y empaquetamiento de los archivos correspondientes - exitoso
50
Ilustración 9 Empaquetamiento de la aplicación
Ilustración 10 Empaquetamiento de aplicación - exitoso
Ingreso a la aplicación
51
Ilustración 11 Login de la aplicación
Resumen general de los usuarios registrados para utilizar el servicio del
parqueadero de la facultad junto a la visualización en tiempo real de las motos que
se encuentran en el parqueadero.
52
Ilustración 12 Resumen de la aplicación parte 1
Ilustración 13 Resumen de la aplicación parte 2
Para cada una de las graficas se puede generar los reportes pertenecientes a las
motos como un archivo de imagen .jpg
53
Ilustración 14 Exportar graficas
Ilustración 15 Guardar graficas / histórico de datos
Posteriormente en le menu lateral del lado izquierdo dentro de la opción de
Gestión de estudiantes se podran encontrar a cada uno de los usuarios
registrados a través de la aplicación
54
Ilustración 16 Usuarios registrado
En donde se pondra visualizar la información ingresada para cada uno de los
usuarios
Ilustración 17 Módulo de modificación - datos del estudiante
55
Y lo más importante el estado de activo o inactivo para el uso del parqueadero
Ilustración 18 Campo de texto estado del usuario
Dentro de la gestión de los estudiantes se le podra agregar las motos acada uno
de los usuarios, en donde se seleccionar el color de la moto, placa y se agregar un
archivo digital perteneciente a la tarjeta de propiedad
Ilustración 19 Input especial para seleccionar el color de la moto
56
Ilustración 20 Formulario de asignación de moto a un usuario ya existente
Posteriormente se podra visualizar que la operación fue realizada con éxito
Ilustración 21 Confirmación exitosa de asociación de moto
En la parte inferior de la sección de gestión de estudiantes se encuentra un boton
que nos permitira ingresar a los nuevos usuarios
Ilustración 22 Botón de creación de nuevo estudiante
Mediante el cual se accedera al formulario de registro
57
Ilustración 23 Formulario de registro de estudiantes
58
9. Conclusiones
- Se logran desarrollar mediante python y utilizando raspberry un sistema que
permite la lectura de las tarjetas inteligentes.
- Se plantea y contruye el prototipo con el cual se demuestra el funcionamiento
de la aplicación y la puesta en marcha del mismo.
- Se aplicacan y se profundizan los conocimientos adquiridos a lo largo de la
carrera y de igual forma se abarca nuevos sectores de conocimiento mediante
la implementación y uso de otro tipo de plataformas con las cuales no se habia
tenido contacto a lo largo de lo transcurrido en la facultad.
- Se cumple a cabalidad con las diferentes historias de usuario y con las
practicas dadas por la metodologia de Scrum Agile.
- Finalmente se logra dar por completsado cada uno de los objetivos que se
plantearon al inicio del proyecto.
59
10. Bibliografía
Castro, A. (23 de Enero de 2014). ¿Qué es Raspberry Pi, dónde comprarla y cómo
usarla? Recuperado el 23 de Julio de 2017, de ¿Qué es Raspberry Pi, dónde
comprarla y cómo usarla?: http://computerhoy.com/noticias/hardware/que-es-
raspberry-pi-donde-comprarla-como-usarla-8614
Caules, C. Á. (8 de Marzo de 2016). ¿Qué es Spring Boot? Recuperado el 23 de
Julio de 2017, de ¿Qué es Spring Boot?: http://www.arquitecturajava.com/que-es-
spring-boot/
Caules, C. Á. (20 de Noviembre de 2013). Spring MVC Configuración. Recuperado
el 23 de Julio de 2017, de Spring MVC Configuración:
http://www.arquitecturajava.com/spring-mvc-configuracion/
García, M. d. (13 de Enero de 2016). Programar posiciones en un Micro Servo
Tower Pro SG90 9G. Recuperado el 23 de Julio de 2017, de Programar posiciones
en un Micro Servo Tower Pro SG90 9G:
http://miarduinounotieneunblog.blogspot.com.co/2016/01/programar-posiciones-
en-un-micro-servo.html
Hetpro Store. (25 de Abril de 2014). Módulo RFID-RC522 RF con Arduino UNO
SPI. Recuperado el 23 de Julio de 2017, de Módulo RFID-RC522 RF con Arduino
UNO SPI: https://hetpro-store.com/TUTORIALES/modulo-lector-rfid-rc522-rf-con-
arduino/
Michelone, M. L. (2 de Agosto de 2012). Raspbian: Sistema operativo gratuito para
la Raspberry Pi. Recuperado el 23 de Julio de 2017, de Raspbian: Sistema
operativo gratuito para la Raspberry Pi:
https://www.unocero.com/2012/08/02/raspbian-sistema-operativo-gratuito-para-la-
raspberry-pi/
Wikipedia. (28 de Junio de 2016). Maven. Recuperado el 23 de Julio de 2017, de
Maven: https://es.wikipedia.org/wiki/Maven
Wikipedia. (22 de Julio de 2017). Python. Recuperado el 23 de Julio de 2017, de
Python: https://es.wikipedia.org/wiki/Python
Wikipedia. (20 de Julio de 2017). Raspberry Pi. Recuperado el 23 de Julio de
2017, de Raspberry Pi: https://es.wikipedia.org/wiki/Raspberry_Pi
60
Wikipedia. (24 de Marzo de 2015). Thymeleaf. Recuperado el 23 de Julio de 2017,
de Thymeleaf: https://es.wikipedia.org/wiki/Thymeleaf
Andrés Tomas Garzon Ayala, B. E. (noviembre de 2006). DISEÑO Y
CONSTRUCCIÓN DEL PROTOTIPO DE UN SISTEMA OPTIMIZADO PARA EL
INGRESO A PARQUEADEROS VEHÍCULARES CON TARJETAS
INTELIGENTES. Obtenido de DISEÑO Y CONSTRUCCIÓN DEL PROTOTIPO DE
UN SISTEMA OPTIMIZADO PARA EL INGRESO A PARQUEADEROS
VEHÍCULARES CON TARJETAS INTELIGENTES Recuperado el 1 de Abril de
2017, http://biblioteca.usbbog.edu.co:8080/Biblioteca/BDigital/38007.pdf
Briceño Pinilla, J. S. (2013). Aplicación Web para el control de entrada y salida de
equipos y uso de parqueaderos de la Universidad Distrital Francisco José de
Caldas Facultad Tecnológica por medio de la lectura del código de barras. Bogotá:
Universidad Distrital Francisco José de Caldas.
DOINTECH SAS. (2015). Control de Acceso Vehicular. Obtenido de Control de
Acceso Vehicular Recuperado el 1 de Abril de 2017,
http://www.dointech.com.co/control-acceso-vehicular.html
PENALVA, J. (25 de Enero de 2011). NFC: qué es y para qué sirve. Recuperado
el 1 de Abril de 2017, de NFC: qué es y para qué sirve:
https://www.xataka.com/moviles/nfc-que-es-y-para-que-sirve
Piñero, I. A. (15 de Abril de 2013). NFC (I): Explicación, tutorial básico.
Recuperado el 1 de Abril de 2017, de NFC (I): Explicación, tutorial básico:
http://androcode.es/2013/04/nfc-i-explicacion-tutorial-basico-y-sorteo/
Proyectos agiles. (2015). Recuperado el 1 de Abril de 2017, de Proyectos agiles:
https://proyectosagiles.org/que-es-scrum/
Softeng. (2017). Metodología Scrum para desarrollo de software - aplicaciones
complejas. Recuperado el 1 de Abril de 2017, de Metodología Scrum para
desarrollo de software - aplicaciones complejas: https://www.softeng.es/es-
es/empresa/metodologias-de-trabajo/metodologia-scrum.html
ISO. (Abril de 2011). ISO/IEC 14443-3:2011. Obtenido de ISO/IEC 14443-3:2011:
https://www.iso.org/standard/50942.html
Garzas, J. (15 de Diciembre de 2014). Enlace permanente a Entendiendo qué es
BDD (Behavior-Driven Development) (I). Recuperado el 30 de Julio de 2017, de
Enlace permanente a Entendiendo qué es BDD (Behavior-Driven Development)
(I): http://www.javiergarzas.com/2014/12/bdd-behavior-driven-development-1.html
61
Wikipedia. (20 de Julio de 2017). Raspberry Pi. Recuperado el 23 de Julio de
2017, de Raspberry Pi: https://es.wikipedia.org/wiki/Raspberry_Pi
Hetpro Store. (25 de Abril de 2014). Módulo RFID-RC522 RF con Arduino UNO
SPI. Recuperado el 23 de Julio de 2017, de Módulo RFID-RC522 RF con Arduino
UNO SPI: https://hetpro-store.com/TUTORIALES/modulo-lector-rfid-rc522-rf-con-
arduino/
Castro, A. (23 de Enero de 2014). ¿Qué es Raspberry Pi, dónde comprarla y cómo
usarla? Recuperado el 23 de Julio de 2017, de ¿Qué es Raspberry Pi, dónde
comprarla y cómo usarla?: http://computerhoy.com/noticias/hardware/que-es-
raspberry-pi-donde-comprarla-como-usarla-8614
Caules, C. Á. (8 de Marzo de 2016). ¿Qué es Spring Boot? Recuperado el 23 de
Julio de 2017, de ¿Qué es Spring Boot?: http://www.arquitecturajava.com/que-es-
spring-boot/
Wikipedia. (28 de Junio de 2016). Maven. Recuperado el 23 de Julio de 2017, de
Maven: https://es.wikipedia.org/wiki/Maven
Caules, C. Á. (20 de Noviembre de 2013). Spring MVC Configuración. Recuperado
el 23 de Julio de 2017, de Spring MVC Configuración:
http://www.arquitecturajava.com/spring-mvc-configuracion/
Wikipedia. (22 de Julio de 2017). Python. Recuperado el 23 de Julio de 2017, de
Python: https://es.wikipedia.org/wiki/Python
García, M. d. (13 de Enero de 2016). Programar posiciones en un Micro Servo
Tower Pro SG90 9G. Recuperado el 23 de Julio de 2017, de Programar posiciones
en un Micro Servo Tower Pro SG90 9G:
http://miarduinounotieneunblog.blogspot.com.co/2016/01/programar-posiciones-
en-un-micro-servo.html
Wikipedia. (24 de Marzo de 2015). Thymeleaf. Recuperado el 23 de Julio de 2017,
de Thymeleaf: https://es.wikipedia.org/wiki/Thymeleaf
Michelone, M. L. (2 de Agosto de 2012). Raspbian: Sistema operativo gratuito para
la Raspberry Pi. Recuperado el 23 de Julio de 2017, de Raspbian: Sistema
operativo gratuito para la Raspberry Pi:
https://www.unocero.com/2012/08/02/raspbian-sistema-operativo-gratuito-para-la-
raspberry-pi/
Garzas, J. (15 de Diciembre de 2014). Enlace permanente a Entendiendo qué es
BDD (Behavior-Driven Development) (I). Recuperado el 30 de Julio de 2017, de
62
Enlace permanente a Entendiendo qué es BDD (Behavior-Driven Development)
(I): http://www.javiergarzas.com/2014/12/bdd-behavior-driven-development-1.html
Toptechboy. (2 de Junio de 2015). RASPBERRY PI LESSON 28: CONTROLLING
A SERVO ON RASPBERRY PI WITH PYTHON. Recuperado el 26 de Julio de
2017, de RASPBERRY PI LESSON 28: CONTROLLING A SERVO ON
RASPBERRY PI WITH PYTHON: http://www.toptechboy.com/raspberry-
pi/raspberry-pi-lesson-28-controlling-a-servo-on-raspberry-pi-with-python/
martijnschut. (4 de Abril de 2016). RC522 with Raspberry Pi 2. Recuperado el 26
de Julio de 2017, de RC522 with Raspberry Pi 2: http://www.martijnschut.nl/rc522-
with-raspberry-pi-2/
Informática Moderna. (2017). TARJETA DE RED INALÁMBRICAS. Obtenido de
TARJETA DE RED INALÁMBRICAS:
http:/www.informaticamoderna.com/Tarjetas_red_inalam.htm
63
11. Anexos
Cronograma
64
Manual de usuario(adjunto)
Manual del programador(adjunto)
Articulo IEE (adjunto)