Escuela Superior Politécnica de Chimborazo: Facultad de Informática Y Electrónica
Escuela Superior Politécnica de Chimborazo: Facultad de Informática Y Electrónica
Riobamba – Ecuador
2016
©2016, Daniela Karina Lara Tuz; Roberto Javier Vallejo Molina
Se autoriza la reproducción total o parcial, con fines académicos, por cualquier medio o
procedimiento, incluyendo la cita bibliográfica del documento, siempre y cuando se reconozca
el Derecho de Autor.
- ii -
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
DECANO DE LA FACULTAD DE
INFORMÁTICA Y ELECTRÓNICA ______________ ______________
DIRECTOR DE ESCUELA DE
ELECTRÓNICA, TELECOMUNICACIONES
Y REDES ______________ ______________
DIRECTOR DE TRABAJO DE
TITULACIÓN ______________ ______________
- iii -
Nosotros, Daniela Karina Lara Tuz; Roberto Javier Vallejo Molina, somos responsables de las
ideas, doctrinas y resultados expuestos en este Trabajo de Titulación y el patrimonio intelectual
de la Tesis de Grado pertenece a la Escuela Superior Politécnica de Chimborazo.
__________________________
__________________________
- iv -
DEDICATORIA
Dedico este trabajo a mi Dios, quien ha sabido guiarme en cada paso que doy, por enseñarme el
valor de la vida y regalarme fuerzas para superar todos los obstáculos que se me han presentado
sin desfallecer, por enseñarme a ser una mujer esforzada, valiente, por su provisión, su amor y
por cumplir las promesas que un día hizo en mí, por hacerme entender que sin el nada soy.
A mis amados padres Washington y Gladys por su amor, apoyo, guía constante, porque gracias
a su esfuerzo diario he podido cumplir mis sueños y ahora soy lo que soy, un Dios les pague por
todo, porque muchas veces se han sacrificado ustedes para que no me falte a mí, porque sé que
siempre estarán a mi lado festejando mis triunfos, ayudándome en mis más duras luchas y
porque a pesar de las adversidades son la primera bendición que tiene mi vida.
A mi madrecita preciosa por su ayuda, afecto, consejos y sobre todo comprensión, por ser mi
compañera de batalla, mi mejor amiga, mi inspiración, el primer motivo para salir adelante, mi
ejemplo y mi guerrera incansable, por luchar conmigo de la mano día a día, por tener las
palabras precisas en cada circunstancia de mi vida, mil gracias por siempre creer en mí aun
cuando nadie lo hizo, porque nunca te importó nada de lo que nadie diga siempre te la has
jugado todo por mí y por estar a mi lado amándome sin condiciones a pesar de mis errores, por
eso y más te amo mucho mi preciosa.
A ti mi amado esposo Javy que aparte de ser mi compañero de tesis, has sido el pintor de mis
sueños, porque contigo he vivido de la mano esta dura travesía, por tu paciencia, amor,
dedicación, perseverancia, por enseñarme que el amor es sufrido, benigno, que no tiene envidia,
no busca lo suyo, sino el bienestar de la persona amada, que todo lo puede, todo lo cree, todo lo
espera, todo lo soporta, por estar a mi lado compartiendo los buenos y sobretodo malos
momentos, por siempre tener esas palabras que dan felicidad a mi vida, agradezco a Dios por el
maravilloso hombre que ha puesto a mi lado, por ese futuro tan anhelado que construiremos
juntos y por eso siempre bendigo tu vida mi amor.
A ti mi amado angelito/a, mi bebito hermoso que te formas dentro de mí, porque no sabes la
dicha que sentimos, cuánto te esperamos, anhelamos y deseamos que ya estés nosotros tus
papitos que te amaremos siempre, porque desde ya eres nuestra fuerza para vencer las
adversidades con la ayuda de nuestro Señor, bendigo tu vida mi chiquito porque sé que eres un
hijo con promesa y que llegarás mucho más lejos que nosotros.
Y a mis hermanos Mauricio y Ricardo por los consejos, penas, alegrías vividas, porque siempre
supe que me cuidaban y han estado allí, al igual que yo siempre estaré aquí para ustedes.
Dany
- v-
DEDICATORIA
Dedico este trabajo a mi Dios, quien supo guardarme a lo largo del camino, darme la fuerza para
seguir adelante y no desmayar en las dificultades, por forjar mi caracter enseñándome a encarar
las adversidades que se han puesto delante de mí, porque tú eres mi escudo, mi roca, mi
fortaleza, por amor de tu nombre me conducirás y guiarás.
A mis 3 padres Greta, Vero y Hugo por su amor, guía y comprensión, porque gracias a ustedes
soy el hombre que soy ahora, por sus enseñanzas y consejos que han sido la base de mis
decisiones. A ustedes mis amados padres que gracias a su sudor he podido cumplir mis sueños,
por mancharse sus manos para que las mías puedan estar limpias, mil gracias porque sé que
estarán observando mis pasos por lejos que me vaya, porque contaré con su apoyo haga lo que
haga y esté donde esté, porque me han demostrado que la vida es un reto, un desafío y un
regalo.
A ti mi bendición, mi esposa, gracias por llegar a mi vida cuando más lo necesitaba, por
enseñarme que no hay obstáculo que no podamos superar, por ser el motor que impulsa mi
caminar, mi bastón en los momentos difíciles, mi ayuda idónea la mujer que Dios me permitió
entregarle todo mi amor, por los momentos buenos así como los malos, teniendo la seguridad
que nuestro amor lo puede todo.
A mi hijo/a, porque desde ya te amamos y esperamos ansiosos tu llegada, recuerda que te amo
mucho, sigue adelante y nunca te dejes vencer aunque te digan que no se puede lograr las metas,
tu puedes hacerlos con constancia, rectitud y con la ayuda de Dios.
Y a mis hermanos Estefy, Santy y Jeremy por ser ese toque de alegria y locura que necesita mi
vida, por las peleas, lágrimas y sonrisas que hemos compartido, que a pesar de las edades no
han sido barrera para demostrarnos lo mucho que nos amamos, recuerden que mis logors no son
más que la base para que ustedes escalen mucho más alto.
Javy
- vi -
AGRADECIMIENTO
En primer lugar a nuestro Padre Celestial, nuestra Roca y Fortaleza, por su amor excepcional,
por regalarnos el don de la vida, los sueños, por caminar a nuestro lado siempre, por sus
promesas, por cada bendición que nos regala día a día y permitirnos cumplir nuestra meta tan
anhelada.
A nuestros padres Washington, Gladys, Hugo y Verónica que han sido el motor que nos impulsa
a salir adelante, por su ejemplo, dedicación, por creer en nosotros y por su apoyo incondicional
en cada etapa de nuestra vida.
A nuestra familia y amigos que han formado una parte muy importante de nuestras vidas,
gracias por su amistad, compañía, esperanza, por las palabras de ánimo en todo momento y por
esas manos extendidas desinteresadamente.
Un agradecimiento muy especial a nuestro Director el Ing. Santiago Cisneros por su ayuda,
apoyo incondicional, su guía, paciencia y motivación, ya que su enseñanza académica y moral
han sido de gran beneficio, a los Ingenieros Jorge Yuquilema, José Guerra por la supervisión y
colaboración que nos han brindado.
Dany y Javier
- vii -
TABLA DE CONTENIDO
PORTADA ................................................................................................................................ i
DERECHOS DE AUTOR ........................................................................................................ ii
CERTIFICACIÓN ....................................................................................................................iii
DECLARACIÓN DE RESPONSABILIDAD ........................................................................ iv
DEDICATORIA ....................................................................................................................... v
DEDICATORIA ...................................................................................................................... vi
AGRADECIMIENTO ............................................................................................................ vii
TABLA DE CONTENIDO .....................................................................................................viii
ÍNDICE DE TABLAS ............................................................................................................... xi
ÍNDICE DE FIGURAS ............................................................................................................ xii
ÍNDICE DE GRÁFICOS ........................................................................................................xiii
ÍNDICE DE ABREVIATURAS ............................................................................................. xiv
RESUMEN ............................................................................................................................. xvii
ABSTRACT.......................................................................................................................... xviii
INTRODUCCIÓN ..................................................................................................................... 1
ANTECEDENTES DEL PROBLEMA .................................................................................... 1
JUSTIFICACIÓN DEL TRABAJO DE TITULACIÓN ......................................................... 3
JUSTIFICACIÓN TEÓRICA ................................................................................................... 3
JUSTIFICACIÓN APLICATIVA ............................................................................................ 4
FORMULACIÓN DEL PROBLEMA ...................................................................................... 4
METODOLOGÍA ...................................................................................................................... 5
OBJETIVOS ............................................................................................................................... 5
CAPÍTULO I
1 MARCO TEÓRICO REFERENCIAL ................................................................. 6
1.1 Introducción ............................................................................................................ 6
1.2 Near Field Communication (NFC) ........................................................................ 6
1.2.1 Roles de NFC en la comunicación .......................................................................... 8
1.2.1.1 Rol Iniciador............................................................................................................. 8
1.2.6.1 Rol Objetivo ............................................................................................................. 8
1.2.2 Establecimiento de la conexión ............................................................................... 8
1.2.3 Interacción NFC...................................................................................................... 9
1.2.4 Especificaciones Técnicas ....................................................................................... 9
1.2.4.1 Estándares de Regulación ...................................................................................... 10
1.2.5 Modos de Funcionamiento .................................................................................... 11
- viii -
1.2.5.1 Modo de funcionamiento Pasivo ............................................................................. 11
1.2.5.1 Modo de funcionamiento Activo ............................................................................. 11
1.2.6 Modos de Comunicación u Operación .................................................................. 12
1.2.6.1 Modo Punto a Punto ............................................................................................... 12
1.2.6.2 Modo Lectura-escritura .......................................................................................... 12
1.2.6.3 Modo Emulación de tarjeta .................................................................................... 13
1.2.7 NFC Forum ........................................................................................................... 13
1.2.8 Formato de Intercambio de Datos (NDEF) .......................................................... 14
1.2.8.1 Estructura de Registro NDEF ................................................................................ 14
1.2.8.2 Mensajes NDEF ..................................................................................................... 16
1.2.8.3 Fragmento de Registros NDEF .............................................................................. 17
1.2.8.4 Definición de Tipo de Registro (RTD) .................................................................... 18
1.2.9 Modulación y Codificación NFC ......................................................................... 18
1.2.10 Dispositivos Inteligentes NFC ............................................................................... 19
1.2.10.1 Teléfonos Móviles ................................................................................................... 19
1.2.10.2 Lectores NFC ......................................................................................................... 20
1.2.10.3 Tags o Etiquetas NFC ............................................................................................ 20
1.2.11 Tipos de Ataques a NFC ........................................................................................ 21
1.2.12 Ventajas y Desventajas NFC ................................................................................. 23
1.2.13 Comparación con otras Tecnologías Inalámbricas .............................................. 23
1.2.14 NFC en el ámbito de la Gestión Académica.......................................................... 26
1.3 MODULO OPEN HARDWARE ARDUINO ..................................................... 27
1.3.1 Tipos de Arduino (Hardware) .............................................................................. 27
1.3.2 Entorno de desarrollo Arduino ............................................................................. 32
1.4 ANDROID ............................................................................................................. 33
1.4.1 Herramientas de desarrollo Android ..................................................................... 34
1.4.2 IDE de desarrollo para Android ............................................................................ 35
1.4.4.1 Android Studio ......................................................................................................... 36
CAPÍTULO II
2 MARCO METODOLÓGICO ............................................................................. 38
2.1 Introducción .......................................................................................................... 38
2.2 Requerimientos del hardware del sistema ......................................................... 38
2.2.1 Concepción de la arquitectura general del sistema ............................................... 39
2.2.2 Diseño de la arquitectura d sistema ....................................................................... 39
2.2.3 Consideraciones Evaluativas ................................................................................. 40
- ix -
2.3 Análisis y selección del Hardware del Sistema de Comunicación para el Acceso
mi a la Información Académica ................................................................................ 41
2.3.1 Alternativas de Tecnologías Inalámbricas ............................................................ 41
2.3.2 Alternativas Plataformas Arduino ......................................................................... 45
2.4 Hardware que integra el sistema desarrollado .................................................. 48
2.4.1 Placa Arduino Mega 2560 .................................................................................... 48
2.4.2 Shield Ethernet Arduino ........................................................................................ 49
2.4.3 Shield Adafruit PN532........................................................................................... 50
2.5 Requerimientos del software del sistema ............................................................ 53
2.6 Selección de los softwares a emplear en el desarrollo del sistema de
…...comunicación para el Acceso a Información Académica .................................. 53
2.7 Desarrollo de la etapa software............................................................................ 53
2.7.1 Desarrollo de la aplicación ................................................................................... 54
2.7.2 Software Arduino ................................................................................................... 58
2.7.2.1 Librerías ................................................................................................................. 60
2.7.2.2 Funciones ............................................................................................................... 60
2.7.2 Desarrollo de la base de datos en MySQL ............................................................. 62
CAPÍTULO III
3 MARCO, DISCUSIÓN Y ANÁLISIS DE RESULTADOS ............................... 63
3.1 Introducción .......................................................................................................... 63
3.2 Verificación del funcionamiento del sistema de comunicación ......................... 63
3.2.1 Planificación de Pruebas ....................................................................................... 64
3.2.1.1 Evaluación del bloque de comunicación ................................................................. 64
3.2.1.2 Evaluación del rango de operación Vs. El tiempo de descarga .............................. 67
3.3.1 Requerimientos del sistema de comunicación desarrollado .............................. 67
3.4 Recolección y Análisis de Datos ........................................................................... 67
3.4.1 Método Actual........................................................................................................ 68
3.4.2 mis Sistema de Comunicación con NFC ...................................................................... 69
3.4.3 Método Actual Vs. Sistema de Comunicación con NFC....................................... 70
3.5 Análisis de Resultados ......................................................................................... 71
3.6 Análisis de Corriente ........................................................................................... 71
3.7 Análisis Económico ............................................................................................... 72
CONCLUSIONES .................................................................................................................... 73
RECOMENDACIONES .......................................................................................................... 74
BIBLIOGRAFÍA ..........................................................................................................................
ANEXOS .......................................................................................................................................
- x-
ÍNDICE DE TABLAS
- xi -
ÍNDICE DE FIGURAS
- xii -
ÍNDICE DE GRÁFICOS
- xiii -
ÍNDICE DE ABREVIATURAS
- xv -
PHP Hypertext Preprocessor (Preprocesador de Hipertexto)
PICC Proximity Integrated Circuit Card (Tarjeta de circuito integrado de
proximidad)
PWM Pulse Width Modulation (Modulación por Ancho de pulsos)
P2P Peer to Peer (Modo punto a punto)
QPSK Quadrature Phase Shift Keying (Modulación por Desplazamiento de
Fase Cuaternaria)
RF Radio Frequency (Radiofrecuencia)
RFC Request for Comments (Solicitud de Comentarios)
RFID Radio Frequency Identification (Identificación por Radio Frecuencia)
RTD Record Type Definition (Definición de tipo de registro)
RTN Record Type Name (Nombre de Tipo de Registro)
SCK Serial Clock (Reloj serie)
SD Secure Digital (Seguro Digital.)
SDK Software Development Kit (Kit de Desarrollo de Software)
SE Secure Element (Elemento Seguro)
SIM Subscriber Identify Module (Modulo de Identificación de Abonado)
SNEP Simple NDEF Exchange Protocol (Protocolo de Intercambio Simple
NDEF)
SPI Serial Peripheral Interface (Protocolo de Interfaz Serial)
SR Short Record (Registro corto)
SRAM Static Random Access Memory (Memoria Estática de Acceso
Aleatorio)
SS Slave Select (Selecciodo de dispositivos)
TNF Type Name Format (Nombre del tipo de formato)
UART Universal Asynchronous Receiver-Transmitter (Transmisor-Receptor
Asíncrono Universal)
URI Uniform Resource Identifier (Identificador de Recursos Uniformes)
URL Uniform Resource Locator (Identificador de Recursos Uniformes)
USA United States of America (Estados Unidos de América)
USB Universal Serial Bus (Bus Universal en Serie)
VCD Vicinity Coupling Device (Dispositivo de Acoplamiento de
Proximidades)
XML Extensible Markup Language (Lenguaje de Marcas Extensible)
- xvi -
RESUMEN
- xvii -
ABSTRACT
It was analyzed, implemented or designed a communication system using the near-field wireless
technology (NFC), for access to academic information of students of the Faculty of Computer
Science and Electronics FIE - ESPOCH. A comparative analysis of various alternatives and
selection of best Arduino boards and then be engaged in the implementation technologies was
established. The wireless communication channel between the devices primarily used the NDEF
and LLCP protocols defined on ISO / IEC 18092 standards and the Institute of Electrical and
Electronics Engineers (IEEE 802.2). Shield Ethernet that was responsible for sending and
receiving IP frames required and Shield Adafruit PN532 for transmission: the design and
subsequent implementation of an Arduino Mega 2560 that acted as a control center and
processing, helping as an intermediary between the devices required and / or receipt of the
request and subsequent submission of the application from the database to the Smartphone
wirelessly; in addition he had a mobile application that contains a detailed list of all documents
and / or files having assigned an identification number which was subsequently sent through
technology to the shield NFC, being receipted and processed by the control device, which he
made the respective request to the file server developed in the System Operational Database
(MySQL) and displayed on a PC for verification and storage. The results indicated that the
system has a high effectiveness rate of 72.84% compared to the traditional method. Thanks to
the development of this system it was possible to expedite the processes used in each procedure
performed, obtaining a secure and reliable real-time download. The installation of this Type of
system and devices is highly recommended in educational institutions because of the great help,
effectiveness and cost.
- xviii -
INTRODUCCIÓN
En este sistema se utilizará redes inalámbricas las cuales utilizan el espectro electromagnético a
través de sus ondas para enviar y recibir la información, este procedimiento será utilizado para
establecer la comunicación entre el módulo NFC.
Además se expone los objetivos, métodos y técnicas a seguir para el desarrollo y culminación
de este trabajo de titulación.
El término NFC apareció por primera vez en el año 2002 con el propósito de intentar conseguir
un protocolo compatible con las tecnologías para la transmisión sin contacto existentes en ese
momento y con el fin de obtener una tecnología de corto alcance que permita una conexión
instantánea entre dispositivos y establecer una comunicación de manera intuitiva, sencilla, ágil y
simple.
- 1-
NFC es una tecnología inalámbrica de corto alcance óptima para una comunicación instantánea,
siendo capaz de enviar y recibir información al mismo tiempo, uno de los principales usos es la
identificación y validación de equipos/personas.
NFC entró con fuerza en la industria de las comunicaciones móviles hace unos años y, aunque
parecía ser una alternativa a Bluetooth e IrDa, muy pocos fabricantes fueron los que se lanzaron
al mercado de NFC, lo que provocó que dicha tecnología no terminara de despegar, sin embargo
en la actualidad muchos dispositivos ya integran esta tecnología de forma nativa.
Los últimos años han sido testigos del creciente interés del uso potencial de las comunicaciones
inalámbricas y sus diversas aplicaciones, hoy en día están inmersas en las actividades
cotidianas, ayudando sin duda a mejorar la calidad o estilo de vida de las personas.
En esta década NFC ha tenido un gran desarrollo, abriendo un amplio abanico de posibilidades
y aplicaciones atractivas para el usuario, ya que ayuda a automatizar muchas funciones o
actividades de la vida diaria contribuyendo a hacerla mucho más sencilla, pudiéndola ocupar en
diferentes aplicaciones dependiendo de las necesidades de los usuarios.
El Software y Hardware Libre, se caracterizan por su fácil acceso y manejo, sin estar atados a
ningún tipo de licencia o patente para su uso, dando grandes prestaciones y siendo muy versátil
en el desarrollo de nuevas aplicaciones y usos, permitiendo a su vez que comunidades que
trabajan sobre estos aporten valiosas ideas que ayudan al desarrollo de las distintas tecnologías,
siendo las plataformas Arduino y Android los ejemplos más representativos.
- 2-
JUSTIFICACIÓN DEL TRABAJO DE TITULACIÓN
JUSTIFICACIÓN TEÓRICA
Las entidades educativas y/o personas buscan dinamizar, optimizar y reducir los tiempos de
procesos o trámites, con el fin de hacer más fácil o sencilla la actividad realizada y disminuir el
tiempo empleado, como respuesta a ello nace el uso de nuevas tecnologías con el fin de
satisfacer los requerimientos y necesidades de los usuarios finales, tal es el caso de la tecnología
NFC que mediante ondas electromagnéticas permite transmitir y recibir datos de forma
inmediata.
Para el desarrollo de la aplicación se empleará SDK Tools y Android Studio, que son
herramientas de desarrollo de aplicaciones para Android y JDK que es un software que provee
herramientas para la creación de programas en Java, esta interfaz permitirá que el usuario envíe
las peticiones mediante NFC y posteriormente el Arduino mande la información almacenada en
el servidor, dando como resultado que el usuario final obtenga el requerimiento enviado en la
petición inicial.
Como resultado final se logrará desarrollar un sistema de comunicación con NFC que
proporcionará a los estudiantes los documentos necesarios como modelos de solicitudes para
- 3-
diversos trámites, mallas curriculares, entre otros, facilitando y simplificando de esta manera los
procesos internos de la facultad.
JUSTIFICACION APLICATIVA
En el transcurso del ciclo académico existe un gran entorpecimiento de los procesos rutinarios
de la facultad, debido a la falta de información y acceso a documentación de vital importancia
para los estudiantes como son: solicitudes y oficios, lo que genera grandes colas y con ello no se
dinamizan los trámites correspondientes.
¿En qué nivel mejorará el tiempo de acceso a la información académica por parte de los
estudiantes de la FIE-ESPOCH y cuál será el tiempo promedio de descarga de dicha
información con la tecnología NFC?
- 4-
METODOLOGÍA
Actividad 2: Para el diseño del sistema de gestión académica se utiliza el método deductivo y
de análisis para ver los diferentes tipos de hardware y software que existen, con ello poder optar
por el diseño que mejor cubra los requerimientos.
OBJETIVOS
Objetivo General
Objetivos Específicos
- 5-
CAPÍTULO I
1.1 Introducción
Las comunicaciones surgen de la necesidad del ser humano de estar en contacto de forma
constante, a tal punto que a través del tiempo da origen al desarrollo tecnológico y conlleva a la
aparición de medios de comunicación eficaces, gracias a ello los obstáculos que afrontan la
sociedad día a día son resueltos con soluciones tecnológicas.
Actualmente la tecnología crece cada vez más gracias a los avances de los diferentes tipos de
comunicaciones inalámbricas en todo el mundo, este trabajo estudia una de esas tecnologías que
nace con el propósito de cubrir nuevas necesidades, resolver problemas y facilitar la vida de las
personas, tal es el caso de NFC que gracias a sus diversas aplicaciones hacen que las actividades
de la vida cotidiana sean más sencilla a través de un simple toque.
- 6-
Es una prolongación del estándar ISO/IEC 14443 de tarjetas inteligentes de proximidad, que
combina la interfaz de la tarjeta de identificación electrónica sin contacto y un lector
incorporado dentro del dispositivo, la mayoría de veces utiliza una comunicación bidireccional
o half-duplex, es decir en ambos sentidos pero no al mismo tiempo.
Es una tecnología abierta, que fue diseñada principalmente para su utilización en dispositivos
móviles, capaz de establecer comunicación fácilmente con otros dispositivos NFC u otras
infraestructuras inalámbricas existentes, trabaja a una frecuencia de 13.56 Mhz, disponible sin
restricción alguna y sin necesidad de licencia o permiso para su uso, su tasa de transferencia
llega a 424 kbit/s, donde la idea no es transmitir grandes cantidades o volúmenes de datos, sino
intercambiar información de manera sencilla, rápida, ágil y segura.
Los sucesos que contribuyeron en el desarrollo de NFC a partir del año 1940 hasta el 2010 se
especifican en la siguiente tabla:
- 7-
1.2.1 Roles de NFC en la comunicación
Autenticación: Etapa de verificación con el fin de saber los dispositivo están autorizado o
si deben establecer algún tipo de cifrado para establecer una comunicación segura.
- 8-
1.2.3 Interacción NFC
NFC transmite pequeñas cantidades de datos al acercar el terminal al receptor a una alta
frecuencia, diseñada para una comunicación instantánea, de uso transparente a los usuarios que
funciona en la banda libre de 13,56 MHz.
La distancia de trabajo de NFC es generalmente efectivo cuando se está lo más cercano a 10 cm,
tomando menos de 0.2 segundos en establecer la comunicación y soporta velocidades de
intercambio de datos o transmisión de 106, 212,424 u 848 kbits/s dependiendo de sus modos de
comunicación. El consumo de energía de un dispositivo en la lectura de datos es menor de
15mA, pudiendo ser mayor en la escritura de datos.
LLCP: Protocolo compacto OSI de nivel 2 de control lógico de link y orientado para
conexiones que es usado para la activación, supervisión y desactivación de la comunicación
proveyendo un enlace entre dos dispositivos activos habilitados con esta tecnología para las
comunicaciones bidireccionales o modo de operación punto a punto.
- 9-
NDEF: Proporciona un formato para el intercambio fiable de datos, definiendo una
modalidad de formateado/encapsulamiento internamente en el mensaje en conjunto con
LLCP.
SNEP: Protocolo de intercambio simple de NDEF orientado para mensajes.
RTD: Es un formato optimizado para la transmisión entre dispositivos NFC.
En la figura 3-1 se aprecia la arquitectura tecnológica de NFC y detalla los protocolos utilizados
en cada uno de los modos de comunicación
NFC está reconocido por los organismos internacionales ISO/IEC, ETSI y ECMA, los
estándares de regulación de esta tecnología son especificaciones técnicas de protocolos de
comunicación o formatos de intercambio de datos y se basa en dos normas internacionales que
son:
NFC fue estandarizada por la norma ISO/IEC 18092 en diciembre del 2003, y posteriormente
como ECMA-340.
- 10 -
Define los modos de comunicación de campo cercano activo y pasivo con sus rangos de
velocidad de (106-424) kbps para la interfaz NFC and Protocol-1 (NFCIP-1), esquemas de
modulación, codificación e inicialización, velocidad de transferencia y mecanismos de control,
utilizando dispositivos de acoplamiento inductivo.
Pertenece a Near Field Communication Interface and protocol-2 (NFCIP-2), esta norma
determina mecanismos para seleccionar el adecuado modo de operación al inicio de la
comunicación.
Los modos de operación pueden ser NFC de ECMA-340, PICC de ISO/IEC14443, PCD de
ISO/IEC 14443 y VCD de ISO/IEC 15693, diferenciándose entre ellos por la distancia de
detección del campo de radiofrecuencia, los procedimientos de inicialización y los valores
mínimos de sus campos para detección, previniendo de esta manera interferencias con cualquier
comunicación en curso de la banda 13,56 MHz.
Los dispositivos que poseen la tecnología NFC para la transmisión y/o recepción de datos
pueden trabajar u operar bajo dos modos de funcionamiento diferentes, estos son:
Se produce cuando un dispositivo no propaga un campo propio, sino que recibe alimentación
del campo electromagnético del dispositivo iniciador de la comunicación, utilizando esta
modulación para transferir o intercambiar datos, por esta circunstancia siempre será el objetivo
de la comunicación y nunca podrá ser el iniciador ya que por sí sólo es incapaz de emitir la
señal hacia otro dispositivo.
Se produce cuando los dos dispositivos emisor y receptor generan sus propios campos
electromagnéticos o radiofrecuencia, generando la portadora que ayuda a establecer el canal de
comunicación, pudiendo actuar como iniciador u objetivo de la comunicación.
- 11 -
1.2.6 Modos de Comunicación u Operación
NFC puede trabajar bajo tres modos de comunicación u operación que se detallan a
continuación:
Permite que dos dispositivos habilitados puedan comunicarse alternando la generación de sus
campos electromagnéticos y a través de un solo toque, para intercambiar y compartir datos,
cuya velocidad aproximada es 424 Kbit/s.
La figura 4-1 establece el modo punto a punto o también conocido por sus siglas en ingles Peer
to peer (P2P), donde los dispositivos NFC crean la conexión de forma activa estableciendo la
comunicación en forma bidireccional half-duplex o uno en ese momento, es decir que cuando
uno transmite el otro escucha e inicia su proceso cuando el otro haya terminado, valiéndose de
una aplicación o servicio integrado dentro del móvil.
Establece e
- 12 -
1.2.6.3 Modo Emulación de tarjeta
Este modelo permite a los dispositivos NFC emular o actuar como una tarjeta inteligente, el cual
se comunica con un lector externo donde se puede obtener información como se aprecia en la
Figura 6-1, utiliza un protocolo propio y funciones especiales de seguridad lo que lo hace mejor
que un tag normal, manteniendo su funcionalidad a pesar que el dispositivo este apagado
dependiendo del proveedor de servicios que posea.
Es una entidad oficial creada en el año 2004 por empresas líderes de comunicaciones móviles en
ese momento, es la encargada de regular, determinar las características, estándares, interacción e
interoperabilidad de sus dispositivos y promover NFC en el mundo entero.
Los miembros que pertenecen a esta organización logran establecer la confianza, credibilidad y
la más amplia garantía en sus productos, debido a que NFC Forum proporciona fiabilidad e
integridad y garantiza el más alto nivel de calidad en todos los productos, procesos o servicios;
antes de ser aprobado pasa por un estricto proceso de revisión para verificar que las aplicaciones
cumplan con las políticas, los requerimientos técnicos garantizando de esta manera la eficacia,
la eficiencia de su certificación y asegurando la interoperabilidad entre fabricantes.
- 13 -
1.2.8 Formato de Intercambio de Datos (NDEF)
Posee un formato simple y común, con longitud variable y su información se representa a nivel
de octetos, donde la transmisión se ejecuta desde el bit más significativo el cual se transmite
primero que es el del extremo izquierdo hacia el derecho y de la parte de superior a la inferior.
Un registro está compuesto por una cabecera que posee información propia necesaria para leer
los datos y por el payload que comprende el contenido del mensaje que se está transmitiendo.
En la Figura 7-1 se establece el formato de un registro NDEF, cuyas descripciones se detallan
en la Tabla 1-1 realizada a continuación.
- 14 -
Tabla 1-1: Descripción de las partes de un registro NDEF
Fuente: http://bibdigital.epn.edu.ec/bitstream/15000/2227/1/CD-2970.pdf
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
- 15 -
En la Tabla 2-1 se especifica los valores que puede tomar el indicador TNF:
- 16 -
1.2.8.3 Fragmento de Registros NDEF
En el mensaje NDEF un registro es la unidad para transportar un payload o carga útil que se
encuentra representada y descrita por sus propios parámetros.
Los payload fragmentados en dividen en tres pedazos de registro inicial, medio y final que son
codificados cumpliendo reglas específicas.
4. Un payload fragmentado nunca puede contener múltiples mensajes NDEF sino que debe ser
completamente encapsulado en un sencillo mensaje NDEF, por lo que en ningún caso el
fragmento de registro inicial o de registro medio deben tener una bandera ME establecida.
- 17 -
1.2.8.4 Definición de Tipo de Registro (RTD)
La especificación RTD proporciona un formato optimizado que puede ser incluido en mensajes
NDEF transmitidos entre dispositivos o tags NFC, permitiendo soportar aplicaciones específicas
NFC y especifica los tipos de registros estándar que pueden ser enviados en mensajes.
Cada RTD es reconocida por su RTN (Record Type Name) que a su vez estos son especificados
en los diferentes formatos de TNF (Type Name Format), los tipos de formatos RTD son:
Texto RTD: Utilizado para registros que contienen exclusivamente solo datos.
Smart Poster RTD: Son elementos adheridos empleado para posters que incorporan
etiquetas con datos.
Uniform Resource Identifier (URI) RTD: Usado para registros que sugieren a recursos en
internet.
- 18 -
A continuación se detalla el tipo de modulación y codificación NFC en sus dos modos activo y
pasivo dependiendo de su velocidad:
Los dispositivos que cuentan con la tecnología NFC se encuentran en tres presentaciones que
son teléfonos móviles, lectores y etiquetas.
Un celular o Smartphone con esta tecnología se conforma básicamente por circuitos integrados,
por elementos que proporcionen seguridad y por la interfaz NFC.
- 19 -
La Figura 9-1 muestra la arquitectura de un móvil que cuenta con la tecnología NFC, cuyas
partes se detallan a continuación:
Host Controller Interface (HCI): Es una interfaz lógica que crea un enlace o puente enlace
entre el controlador NFC y el controlador de Host, permitiendo el control y manejo del
controlador NFC, posibilitando también la comunicación con los elementos seguros ya sean
internos o externos.
Interfaz NFC: Está constituida por un contacto frontal analógico/digital o Contactless Front-
End, una antena y por un controlador NFC que es un circuito integrado que posibilita efectuar
las transacciones ya que trabaja actuando como modulador-demodulador entre la señal RF y la
antena NFC, soportando los dos modos de funcionamiento y los tres modelos de operación o
comunicación.
Son dispositivos NFC pasivos que permite realizar acciones configuradas dependiendo de las
necesidades del usuario, y trabajan a través de un dispositivo activo que genera el campo
electromagnético para que esta la aproveche, son de bajo costo y reducida capacidad.
- 20 -
A continuación se detallan los tipos de etiquetas o tag NFC y sus características:
Anticolisión No Si Si Si
Fuente: http://nfc-forum.org/our-work/specifications-and-application-documents/specifications/tag-type-technical-specifications/
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
Por su corta distancia y proximidad con que realiza las operaciones es muy complicado que
pueda ser atacada, sin embargo a pesar de su alto grado de seguridad tiene su punto débil y no
está exenta presentando posibles vulnerabilidades como cualquier otra tecnología.
Existen 6 posibles tipos de ataques los cuales se mencionan a continuación:
Relay-Atack
Es un ataque que se utiliza para redirigir información de un dispositivo a otro, el cual se puede
evitar realizando una doble autentificación o redundancia al realizar la actividad.
Denegación de Servicio
Este ataque consiste en enviar muchas peticiones al dispositivo, a tal punto que lo sature con el
fin de impedir el acceso a los recursos o servicios durante un período indefinido de tiempo.
- 21 -
Intercepción o Sniffing
Es una técnica utilizada para escuchar o husmear la comunicación entre dos personas, es decir
todo lo que sucede en una red, como datos importantes siempre y cuando no estén cifrados, es
así que un atacante a través de una antena especial podría interceptar la comunicación entre dos
dispositivos NFC, sin embargo es solo una posibilidad, ya que aún no existe una prueba
contundente de la distancia exacta a la que el atacante debería ubicarse.
Una solución a este problema es debe tener varias capas de cifrado como posee en algunas de
sus aplicaciones como es el caso del pago móvil, con ello el atacante a más de captar la
información, tendría que poder descifrarla para comprender la comunicación.
Corrupción de Datos
- 22 -
1.2.12 Ventajas y Desventajas NFC
Ventajas
Posee mayor seguridad por su rango de cobertura pequeño, garantizando ser prácticamente
imposible interceptar la señal, siendo en muchos casos ideal para el intercambio de archivos
sin que se pueda ver afectada la privacidad de las personas.
Su velocidad de establecimiento y respuesta es instantánea y su uso intuitivo no necesita
configuraciones previas o adicionales como emparejamiento lo que facilita la comunicación
e intercambio de datos con un simple toque.
Proporciona una excelente experiencia al usuario gracias a su sencillez, funcionalidad y
versatilidad.
Goza de gran compatibilidad con otras tecnologías y su consumo de energía es mínimo.
Proporciona múltiples facilidades para aspectos de la vida cotidiana convirtiéndola en más
sencilla por lo que la hace una tecnología única.
NFC es muy útil en cuanto a la identificación y pagos gracias a la rapidez, comodidad y
ausencia de riesgos.
Desventajas
La Tabla 5-1 presenta la comparación entre las tecnologías inalámbricas más utilizadas como
son NFC, Bluetooth, RFID, WIFI y Zigbee por sus características técnicas detalladas a
continuación:
- 23 -
Tabla 5-1: Comparación de tecnologías inalámbricas por sus características técnicas
ISO/IEC IEEE
Estándar IEEE 802.15.1 ISO/IEC 14443 IEEE 802.11
18092 802.15.4
868 MHz
2.4 GHz
Frecuencia 13.56 MHz 2.4 GHz 13,56 MHz 915 MHz
5 GHz
2,4 GHz
Tiempo de
< 0.1s 6s < 0.1s 15 – 30 s 30 ms
establecimiento
Alta si esta
Seguridad Alta Vulnerable Vulnerable Alta
encriptada
Dispositivos
2 8 2 Indefinidos 2^16
interconectados
Ancho de banda
Casi 2 MHz 1MHz 2 MHz 20 MHz 5MHz
del canal
QPSK
Modulación ASK GFSK ASK DSSS
OFDM
Comunicación Dos vías Dos vías Una vía Dos vías Dos vías
Consumo de
Mínimo Alto Mínimo Alto Muy bajo
Energía
Fuente: http://goo.gl/4W1alJ
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
- 24 -
En referencia a la Tabla 5-1 detallada anteriormente, se puede destacar los siguientes aspectos:
Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal que
permite la transmisión de voz y datos entre dispositivos.
Las dos tecnologías son de comunicación inalámbrica en distancias cortas, NFC tiene un menor
rango de alcance ya que no sobrepasa los 10cm, pero al mismo tiempo esta proximidad la hace
una tecnología más segura, consume menos energía y presenta menos interferencias, muestra un
mayor tiempo de establecimiento de conexión que es menor a 0.1s, por lo que es más
recomendada para transmitir pequeños paquetes de datos de forma instantánea con un simple
toque.
A diferencia Bluetooth alcanza los 10m, pero es menos práctica para el intercambio de datos ya
que se demora más, necesita configuraciones manuales previas y emparejamiento, pero presenta
una ventaja que es la comunicación con varios dispositivos al mismo tiempo.
Wifi es un sistema que permite la conexión de dispositivos de forma inalámbrica al igual que
NFC, aunque la diferencia en el rango de alcance es abismal debido a que Wifi puede alcanzar
los 100m y NFC tan solo 10cm, al mismo tiempo su seguridad es más vulnerable, debido a que
pueden presentarse más ataques.
Wifi no cesa ya que está constantemente tratando de encontrar redes disponibles dentro de su
alcance, por lo que su consumo de energía es alto y a diferencia de NFC necesita varias
configuraciones adicionales, por lo que se le considera de alta complejidad en experiencia de
conexión.
- 25 -
NFC vs. ZigBee
NFC posee una mayor velocidad de transmisión con 424 Kbps a diferencia de Zigbee con 250
Kbps.
En la actualidad es casi imposible concebir la vida sin la ayuda de la tecnología, ya que cada
acción de una rutina diaria se puede simplificar con el apoyo de ésta.
NFC es una tecnología ampliamente utilizada para facilitar la vida de las personas, uniendo el
mundo físico con el virtual, por lo que se lo utiliza en diversos campos como son la medicina,
transporte, publicidad, educación, entre otros; no obstante su uso se ha enfocado en su mayoría
para pagos de todo tipo.
En el ámbito educativo existen aplicaciones para el control del acceso a los estudiantes a clases,
exámenes, o como un instrumento para aprendizaje de idiomas, todos ellos empleando lectores
y tags NFC.
Sin embargo en lo referente a la gestión académica su utilización es escasa, cabe destacar que a
pesar que en este campo existe muy poco desarrollo, sin duda alguna NFC sería muy útil en
entornos educativos, abriendo un amplio abanico de posibilidades y usos en cuanto a
aprendizaje, identificación y pagos.
Un ejemplo de pago en este ámbito sería el poder realizar el débito de la matrícula solo con
acercar el celular, con ello disminuir los tiempos empleados y las grandes colas en el banco;
otro ejemplo de uso sería el control de libros en una biblioteca.
En investigaciones realizadas se desconoce el desarrollo de sistemas de este tipo, por tal motivo
nace la idea de este proyecto innovador, ya que permite transferir documentos e información
académica de vital importancia, necesarios para los estudiantes al momento de realizar los
diversos trámites.
- 26 -
1.3 MODULO OPEN HARDWARE ARDUINO
Existen diversas placas Arduino que se diferencian por el tipo de microcontrolador integrado,
funcionalidades, modelos, aplicaciones, características y número de E/S.
Posee varios modelos de placas con características únicas pensadas para un fin, que se pueden
elegir dependiendo de la necesidad de cada usuario.
Las compañías Smart Projects, SparkFun Electronics y Gravitech son las encargadas de la
manufactura y diseño de estas placas que llevan su logo, ya que son las únicas reconocidas y
registradas oficialmente por Arduino.
A continuación se realizará una comparación de las placas electrónicas oficiales de Arduino por
sus características técnicas:
- 27 -
Tabla 6-1: Comparación de los tipos de Arduino por sus características técnicas
TIPO UNO PRO MEGA NANO PRO MINI YÚN LILYPAD TRE BT MINI
Microcontrolador 328 328 32u4
328P 168 328 1280 2560 168 328 32U4 168V 328V 328 328
ATmega Versión 1 Versión 2 Atmel
#Terminales digitales
14 14 14 54 54 14 14 14 14 20 14 14 14 14 14
de E/S
# Salidas PWM 6 6 6 15 15 6 6 6 6 7 6 6 7 6 6
16
# Entradas analógica 6 6 6 16 8 8 6 6 12 6 6 6 6 8
4 UARTs
Tensión de
5V 3,3 V 5V 5V 5V 5V 5V 3.3V 5V 5V 2.7V 5.5V 5V 5V 5V
Funcionamiento
16 8 16 16 16 16 16 8 16 16 8 8 16 16 16
Velocidad de Reloj
MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz
16 32 128 256 16 32 32 32 32 16 16 32 32 32
Memoria Flash 32 KB
KB KB KB KB KB KB kB kB KB KB KB KB KB KB
Gestor de Arranque
0,5 2 2 4 8 2 2 0,5 0,5 4 2 2 4 2 2
(bootloader) usado de
KB KB KB KB KB KB KB KB KB KB KB KB KB KB KB
memoria flash
2 1 2 8 8 1 2 2 2 2.5 1 1 2.5 2 2
Memoria SRAM
KB KB KB KB KB KB KB KB KB KB KB KB KB KB KB
1 512 1 4 4 512 1 1 1 1 512 512 1 1 1
Memoria EEPROM
KB bytes KB KB KB bytes KB KB KB KB bytes bytes KB KB KB
Fuente: http://www.arduino.cc/en/Main/Products
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
- 28 -
En referencia a la comparación de los tipos de Arduino especificadas en la Tabla 6-1 se
concluye lo siguiente:
Debido a la gran cantidad de terminales digitales de E/S se destaca el Arduino Mega 1280 y
2560 con 54 cada uno, muy seguido del Arduino Yún que cuenta con 20 y a diferencia del resto
que poseen 14.
La mayor cantidad de entradas analógicas es dada por Arduino Mega con 16, acompañado por
Arduino Yún con 12, Arduino Nano con 8 y las demás con 6.
Referente a la memoria SRAM donde se almacenan las variables principales que usa Arduino
sean públicas o privadas Arduino Mega posee 8KB, seguido de Yún con 2.5 KB y el resto con
2KB.
Por consiguiente debido a las características antes mencionadas se puede optar por la elección
de los tres mejores tipos de Arduino que son Arduino Mega 2560, Arduino Yún y Arduino Uno.
Cabe destacar que Arduino Mega 2560 es la versión actual de Arduino Mega 1280 y al
presentar una mejora en sus características se escoge como la primera opción.
A pesar de que Arduino Uno es uno de los dispositivos más básicos, sus características son
similares a los sobrantes de la lista, sumado a esto por ser el más conocido y considerado la base
de todos los demás, es por ello que se convierte en la tercera opción.
Una vez establecido las tres mejores placas de Arduino por sus características detalladas
anteriormente, para la posterior selección de uno de ellos, se especifica cada uno:
Arduino Uno
Arduino Uno es la más básica, la primera placa electrónica que se diseña y sale al mercado,
por tal motivo se la considera la base de todas las demás y está basado en el microcontrolador
ATmega328P de 8 bits, dispone de 14 entradas digitales, 6 analógicas y su voltaje de
funcionamiento es 5V.
- 29 -
A pesar de ser una de las placas más limitadas en cuanto a la capacidad de memoria, al mismo
tiempo es la más conocida y popular.
En la Figura 10-1 se aprecia la placa de desarrollo Arduino Uno, cuyas características técnicas
son:
Arduino Mega
Arduino Mega es una placa funcional, ideado con mayor número de periféricos y mayor
potencia por lo que es preciso para trabajos más complejos.
Presenta el mayor número de terminales con 54 digitales, 16 analógicos, funciona a un voltaje
de 5V, está basado en el microcontrolador ATmeg2560.
En la Figura 11-1 se muestra la placa de desarrollo Arduino Mega 2560, cuyas características
técnicas son:
Arduino Yún
Arduino Yún es una placa que cuenta con 20 terminales digitales, 12 analógicos, funciona a
5V, presenta capacidades nativas y beneficios adicionales ya incorporados en su interior como
conexión Wifi, Ethernet, ,puertos USB y almacenamiento micro-SD, gracias al chip Atheros
AR9331 que posee, además puede soportar Linux y está basada en el microcontrolador
ATmega32u4.
En la Figura 12-1 se muestra la placa de desarrollo Arduino Yún, cuyas características técnicas
son:
Terminales digitales de E/S: 20 (Canales PWM: 7)
Terminales de entradas analógicas: 12
Voltaje de funcionamiento: 5V
Voltaje de entrada: 5V
Corriente continua para terminal I/O: 40mA
Memoria Flash: 32 KB
Velocidad de reloj: 16 MHz.
- 31 -
1.3.2 Entorno de desarrollo Arduino
El software Arduino está licenciado bajo la versión 2 de GPL, pero sus componentes o paquetes
se encuentran licenciados bajo un sinfín de concepciones distintas.
El IDE es un ambiente o entorno gráfico amigable sencillo basado en el lenguaje C++ que
contiene herramientas necesarias que nos permiten la escritura y programación de lo que
posteriormente deseamos compilar y ejecutar cargándoles en una variedad de placas de la
familia de Arduino.
- 32 -
1.4 ANDROID
A continuación se detalla cada una de las capas que componen el sistema operativo:
Kernel de Linux
Es la parte central, corazón o núcleo, el encargado de acoger y gestionar las órdenes de los
elementos y enviarlas al sistema operativo, permitiendo la comunicación del hardware con los
programas, facultando de esta manera la administración de los recursos, memoria y el manejo
de los procesos.
to
Es la parte más importante y fundamental de Android, todas estas acciones son posibles gracias
a los diversos controladores para cualquier componente hardware que posee.
- 33 -
Librerías
Esta capa contiene las librerías nativas, donde cada una cumple tareas específicas, estas son:
Android Runtime
Framework de Aplicaciones
Son conjuntos de herramientas que ayudan y dan soporte a la creación de las aplicaciones
móviles.
Aplicaciones
Es el entorno de interacción con el usuario y el resultado final del funcionamiento de las demás
capas. En Android incluyen las por defecto propias del sistema y las que la persona instale
posteriormente según su requerimiento.
Android Studio trabaja conjuntamente con SDK y JDK que son herramientas indispensables, las
cuales que le sirven de apoyo para el desarrollo de las aplicaciones.
Las aplicaciones de Android cuentan con el lenguaje Java y este kit para su construcción y
desarrollo, SDK y JDK son un conjunto de herramientas para la creación, desarrollo, depuración
y monitorización de los programas y aplicaciones que se realizan constantemente en Android.
- 34 -
1.4.2 IDE de desarrollo para Android
IDE o entorno de desarrollo integrado es un ambiente gráfico que cuenta con un sin número de
herramientas y soporte para la creación de programas o aplicaciones, básicamente consta de un
editor de código, un compilador, un depurador y un constructor de interfaz.
Android presenta dos entornos de desarrollo oficiales reconocidos y recomendados por Google
Company que son: Eclipse software y Android Studio.
Tabla 7-1: Comparación de los entornos oficiales de Android por sus características
En base al detalle de la Tabla 7-1 se aprecia que Android Studio posee superiores y mejores
prestaciones en el desarrollo de aplicaciones para una diversa gama de dispositivos, a
continuación se especifica éste IDE y sus componentes básicos los cuales se emplean en el
desarrollo de la aplicación del sistema.
- 35 -
+*9/
Android Studio es un software libre y gratuito que consta de un editor a través de un ambiente o
escenario sencillo y completamente robusto, con herramientas que agilitan y facilitan la
construcción de las aplicaciones en Android.
Android Studio está compuesto por diversos componentes, los cuales son:
Actividades
Las actividades constan de dos partes, gráfica y lógica, los cuales se dan en el archivo XML y
.Java respectivamente.
En un proyecto la actividad debe ser establecida una por cada interfaz y cualquier elemento
como botones, textos, entre otros, se definen en el fichero xml al que está asociado.
- 36 -
La Figura 15-1 especifica el ciclo de vida y los métodos de una actividad que intervienen en
cada uno de los estados, los cuales se detallan a continuación:
Métodos
Son acciones o eventos invocados sobre una actividad que sirven para su desarrollo y definen
operaciones determinadas o específicas.
Existen 7 métodos principales con los cuales se desarrolla una actividad, estos son:
Servicios
Son tareas o componentes que realizan cualquier tipo de acción y que se ejecutan de manera
oculta y no suministra ninguna interfaz.
Intents
Vistas
Son todos los elementos básicos o detalles de la interfaz, es decir lo que se muestra en la
pantalla de la aplicación como líneas, textos, botones, etc.
Proveedor de Contenido
- 37 -
CAPÍTULO II
2 MARCO METODOLÓGICO
2.1 Introducción
Luego del estudio realizado en el capítulo anterior se puede definir los requerimientos
necesarios para el diseño y desarrollo del sistema de comunicación para el acceso a la
información académica de los estudiantes basados en ocho puntos que son:
Ser de costo moderado, razonable y de fácil instalación.
La petición y recepción del documento hacia el usuario final debe ser de forma inalámbrica.
La comunicación hacia la base de datos debe ser mediante cable guiado.
Las peticiones de los usuarios deben ser una a la vez.
El medio inalámbrico para la descarga de la información no debe necesitar ningún tipo de
emparejamiento.
La información debe ser desplegada en un smartphone.
Se necesita un dispositivo para el control y procesamiento de datos que pueda trabajar con
los dos tipos de transmisiones.
La conexión guiada por cable debe ser Fast-Ethernet.
- 38 -
2.2.1 Concepción de la arquitectura general del sistema
La concepción general del sistema se aprecia en la Figura 1-2, donde se muestra el módulo de
control y procesamiento de datos, el cual en conjunto con la arquitectura del software permiten
enviar el requerimiento a través de la tecnología inalámbrica, dicha petición está asociada a un
identificador que receptado e interpretado por el módulo de control, el mismo que realiza la
consulta en el servidor y retorna la información solicitada, para su posterior impresión.
El primer bloque está conformado por la etapa de envío y recepción de la petición realizada en
el smartphone y enviada a través del dispositivo inalámbrico hacia el módulo de control y
procesamiento de la información, el cual interpreta y realiza la consulta respectiva a través de
una conexión Fast-Ethernet al servidor y posteriormente retorna la petición inicial.
- 39 -
El bloque de envío y recepción se conforma por la aplicación desarrollada en la plataforma
Android ejecutada en un Smartphone de gama alta, a través del cual el usuario realiza las
peticiones requeridas para la descarga de la información académica mediante la tecnología
NFC.
Para determinar la tecnología inalámbrica y la placa Arduino que mejor se adapten a los
requerimientos del sistema se realiza las comparaciones entre las posibles alternativas,
empleando el método cualitativo por puntos.
Considerando los factores que cumplen las mejores prestaciones se ha establecido la siguiente
ponderación según el criterio de evaluación de beneficios establecidos:
Bajo valor 1
Medio valor 2
Máximo valor 3
- 40 -
Tabla 1-2: Valores del nivel de importancia del
método cualitativo por puntos.
Comparación de Valor de
factores importancia
+o> 1
= 1
-o< 0
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
- 41 -
PASO 1:
IDEA A: Tecnología Bluetooth
IDEA B: Tecnología NFC
IDEA C: Tecnología Zigbee
IDEA D: Tecnología WiFi
PASO 2:
- F1: Seguridad
- F2: Tiempo de establecimiento
- F3: Alcance
- F4: Consumo de Energía
- F5: Costo de Equipos
- F6: Complejidad en experiencia de conexión
PASO 3:
Se tiene los siguientes criterios o políticas sobre el grado de importancia estimado de cada una
de las variables a ser tomadas en cuenta a la hora de elegir la tecnología del proyecto:
PASO 4:
En la tabla 2-2 se detalla las características en base a los factores del segundo paso:
Variables F1 F2 F3 F4 F5 F6
Bluetooth Media 6s 10m Alto 60 dólares Emparejamiento previo
NFC Alta <0.1s 10cm Mínimo 40 dólares Simple toque
Zigbee Alta si cifrada 30ms 10-75m Mínimo 60 dólares Configuración previa
WiFi Media 15–30s 50-100m Alto 70 dólares Configuración Previa
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
- 42 -
PASO 5:
Luego de realizar la valoración de cada factor con respecto a las ideas, se detalla los totales
basados en la escala relativa de ponderación mencionada anteriormente y en la comparación de
la Tabla 2-2:
Variables F1 F2 F3 F4 F5 F6
Bluetooth 2 2 2 1 1 1
NFC 3 3 1 3 3 3
Zigbee 2 3 2 3 1 1
WiFi 2 1 3 1 1 1
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
PASO 6:
F1=F2=F6
F2>F4, F5
F4=F5
F3<F1, F2, F4, F5, F6
PASO 7:
La Tabla 4-2 muestra el porcentaje importancia o peso de cada uno de los factores, para esto se
basa en la Tabla 1-2 y en las condiciones interpretadas del paso anterior:
- 43 -
PASO 8:
Tabla 5-2: Determinación de la calificación de los requerimientos
F1 F2 F3 F4 F5 F6
VARIABLES
VALOR CALIF VALOR CALIF VALOR CALIF VALOR CALIF VALOR CALIF VALOR CALIF
Bluetooth 2 0.22222 2 0.22222 2 0.25000 1 0.12500 1 0.16667 1 0.16667
NFC 3 0.33333 3 0.33333 1 0.12500 3 0.37500 3 0.50000 3 0.50000
Zigbee 2 0.22222 3 0.33333 2 0.25000 3 0.37500 1 0.16667 1 0.16667
WiFi 2 0.22222 1 0.11111 3 0.37500 1 0.12500 1 0.16667 1 0.16667
SUMA 9 9 8 8 6 6
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
PASO 9
Tabla 6-2: Validación de la idea y porcentaje de aceptación de tecnologías inalámbricas
IDEA A: Bluetooth IDEA B: NFC IDEA C: Zigbee IDEA D: WiFi
VARIABLES PESO
CALIF VALOR CALIF VALOR CALIF VALOR CALIF VALOR
F1 0.26316 0.22222 0.05848 0.33333 0.08772 0.22222 0.05848 0.22222 0.05848
F2 0.26316 0.22222 0.05848 0.33333 0.08772 0.33333 0.08772 0.11111 0.02924
F3 0.00000 0.25000 0.00000 0.12500 0.00000 0.25000 0.00000 0.37500 0.00000
F4 0.10526 0.12500 0.01316 0.37500 0.03947 0.37500 0.03947 0.12500 0.01316
F5 0.10526 0.16667 0.01754 0.50000 0.05263 0.16667 0.01754 0.16667 0.01754
F6 0.26316 0.16667 0.04386 0.50000 0.13158 0.16667 0.04386 0.16667 0.04386
TOTAL 0.19152 0.39912 0.24707 0.16228
PORCENTAJE 19,15% 39,91% 24,71% 16.23%
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
- 44 -
RESULTADO:
Luego de evaluar todas las posibles alternativas de Tecnologías Inalámbricas a través del
método cualitativo por puntos, se puede observar que la idea B es la ganadora, que pertenece a
la tecnología NFC con el 39,91% de triunfo frente a sus competidoras, las cuales obtuvieron el
24.71% de Zigbee, 19.15% de Bluetooth y 16,23% de WiFi.
NFC se establece como la tecnología adecuada para el sistema de comunicación ya que
proporciona ventajas como mayor seguridad, tiempo menor de establecimiento, menor consumo
de energía, bajo costo de equipos y poca complejidad en experiencia de conexión para el
usuario.
Para el módulo de control se considera las siguientes alternativas: Arduino Uno, Mega y Yún
basado en el análisis de sus características ya analizadas en el capítulo anterior en la Tabla 6-1 y
se realiza la comparación con el objetivo de determinar la placa adecuada a utilizar en el sistema
de comunicación.
PASO 1:
IDEA A: Arduino Uno
IDEA B: Arduino Mega
IDEA C: Arduino Yún
PASO 2:
Se ha determinado 4 variables o factores las que condicionan las ideas:
- F1: Costo de la placa
- F2: Velocidad de procesamiento
- F3: Número de terminales de E/S
- F4: Capacidad de Almacenamiento
PASO 3:
Se tiene los siguientes criterios o políticas sobre el grado de importancia estimada de cada una
de las variables a ser tomadas en cuenta a la hora de elegir las placas:
El número de terminales de E/S es más importante que el costo de la placa y velocidad de
procesamiento.
La capacidad de almacenamiento es más importante que las demás variables.
El costo de la placa y la velocidad de procesamiento son igual de importantes
- 45 -
PASO 4:
En la tabla 7-2 se detalla las características en base a los factores del paso 2:
PASO 5:
Luego de realizar la valoración de cada factor con respecto a las ideas, se detalla los totales
basados en la escala relativa de ponderación mencionada anteriormente y en la comparación de
la Tabla 7-2:
Variables F1 F2 F3 F4
Arduino Uno 3 3 1 1
Arduino Mega 2 3 3 3
Arduino Yún 1 3 2 1
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
PASO 6:
Interpretando los criterios del paso 3 se obtienen las siguientes condiciones:
F3> F1, F2
F4 > F1,F2;F3
F1=F2
PASO 7:
La Tabla 9-2 muestra el porcentaje importancia o peso de cada uno de los factores, para esto se
basa en la Tabla 1-2 y en las condiciones interpretadas del paso anterior:
F1 F2 F3 F4
VARIABLES
VALOR CALIF VALOR CALIF VALOR CALIF VALOR CALIF
Arduino
3 0.50000 3 0.33333 1 0.16667 1 0.20000
Uno
Arduino
2 0.33333 3 0.33333 3 0.50000 3 0.60000
Mega
Arduino
1 0.16667 3 0.33333 2 0.33333 1 0.20000
Yún
Suma 6 9 6 5
PASO 9:
RESULTADO:
Al culminar los cálculos realizados anteriormente donde se emplea el método cualitativo por
puntos, se puede definir que la mejor alternativa a elegir es la adquisición del Arduino Mega
con un 49,52% de éxito en comparación con sus contrincantes que fueron el Arduino Uno y
Mega con 25,24%.
Arduino Mega 2560 se establece como la placa adecuada para el sistema de comunicación
gracias a sus extraordinarios beneficios adicionales como mayor número de terminales de E/S,
bajo costo, mayor capacidad de almacenamiento, mayor potencia y su gran compatibilidad.
- 47 -
2.4 Hardware que integra el sistema desarrollado
Una vez realizado el análisis y selección de los elementos a utilizar en la parte hardware, a
continuación se detalla las principales características y las conexiones respectivas necesarias
para la implementación del sistema.
Arduino Mega 2560 es la placa más completa y funcional, empleada para trabajos complejos,
por lo tanto es motor que controlará la transferencia de datos en el sistema de comunicación
debido a que tendrá la capacidad de interpretar la petición del shield Adafruit PN532 y hacer la
solicitud respectiva a la base de datos donde estará almacenada la información académica.
Adicionalmente posee conexión USB, conector de alimentación, botón de reinicio, cabecera
ICSP y la posibilidad de poder ser alimentada por una fuente externa.
A continuación se presenta el gráfico de la placa de desarrollo Arduino Mega 2560:
Voltaje de Funcionamiento 5V
Voltaje Recomendado de Entrada 7-12V
Voltaje de Entrada (Límites) 6-20V
Pines Digitales E/S 54
Pines de Salida Digitales PWM 15
Pines de Entrada Analógicos: 16
Corriente DC por I/O Pin 20 mA
Flash Memory 256 KB
Bootloader 8KB
SRAM 8 KB
EEPROM 4 KB
Velocidad de Reloj 16 MHz
Ancho 53,3 mm
Largo 101.52 mm
Peso 37gr
Fuente: https://www.arduino.cc/en/Reference/VariableDeclaration
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
- 48 -
2.4.2 Shield Ethernet Arduino
Un shield es un circuito presente en una placa impresa que se conecta al Arduino con el
propósito de incrementar y adicionar sus características, capacidades y funciones.
El shield Ethernet es una placa de expansión que proporciona conectividad al Arduino a través
del puerto SPI, en el sistema desarrollado es el medio de transporte entre el Arduino Mega 2560
y la base de datos, permitiendo así su conexión; además permite acoplar placas adicionales
encima y apilarlas como en nuestro caso el shield NFC.
A continuación se presenta el gráfico de la placa de expansión shield Ethernet Arduino:
- 49 -
2.4.3 Shield Adafruit PN532
El shield Adafruit PN532 es una placa potente de NFC y compatible con RFID capaz de leer o
escribir cualquier dispositivo NFC o actuar como una tarjeta inteligente según sea el
requerimiento.
A continuación se presenta el gráfico de la placa de expansión Shield NFC PN532:
Este shield tiene dos maneras de funcionar, la primera es empleado la manera predeterminada,
ocupando los terminales análogos 4 y 5, este modo se lo conoce como I2C, además cuenta con
un terminal digital que realiza alertas automáticas de interrupciones, el cual por defecto es el
número 2.
La segunda manera es optar por el protocolo SPI en donde se puede utilizar 4 terminales
digitales cualquiera siempre y cuando se suelde 2 jumpers a la PCB superior de los módulos
Arduino.
Voltaje de Funcionamiento 5V
Frecuencia 13,56 MHz
Rango de Antena 10 cm
Ancho 53,3 mm
Largo 117,7 mm
Espesor 1,1 mm
Peso 9 gr
Fuente: https://www.adafruit.com/product/789
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
- 50 -
Esquema de conexión con Arduino Mega 2560
El modo SPI es un protocolo síncrono de datos en serie que utilizan los periféricos para
comunicarse con el dispositivo master, por lo general hay tres líneas comunes a todos los
dispositivos que son:
Además existe una línea específica para cada dispositivo llamada SS que se encarga de permitir
la activación y desactivación de dispositivos específicos seleccionados por el maestro.
Figura 7-2: Diagrama de conexión Shield Adafruit PN532 y Arduino Mega 2560
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
La Figura 7-2 muestra la conexión del Arduino Mega 2560 y el Shield Adafruit PN532, donde
para conectar dichas líneas se debe realizar las siguientes conexiones:
- 51 -
PASO 1:
Con el fin de utilizar los terminales digitales propios del shield NFC se realiza un puente con las
líneas como se especifica a continuación:
MOSI 7
SS 6
MISO 5
SCK 4
PASO 2:
Una vez realizado los puentes especificados en la Tabla 15-2, se procede a conectar los
terminales del Shield Adafruit PN532 con los terminales correspondientes en el Arduino Mega
2560, los cuales se especifican en la siguiente tabla:
7 51
6 53
5 50
4 52
- 52 -
2.5 Requerimientos del software del sistema
Luego del estudio realizado en el capítulo anterior se puede definir los requerimientos
necesarios para el diseño y desarrollo de la etapa software del sistema de comunicación para el
acceso a la información académica de los estudiantes:
1. El entorno donde la información se va a desplegar debe ser amigable e intuitivo para el
usuario.
2. La información tiene que ser visualizada en una aplicación móvil.
3. La aplicación debe proporcionar información adicional como datos informativos de las
autoridades y personal administrativo, croquis de las instalaciones y galería de la facultad.
4. La aplicación debe ser desarrollada en una plataforma basada en Android y en el software
oficial de Google.
5. Los archivos deben almacenarse en una base de datos.
6. La base de datos debe ser desarrollada en un sistema open source.
En base a la conclusión del capítulo anterior de los entornos oficiales de Android, especificados
en la Tabla 7-1, se determina que Android Studio es el IDE adecuado para el desarrollo de la
interfaz de usuario final.
Por lo tanto la aplicación se desarrolla en Android Studio junto con sus herramientas JDK y
SDK que proporcionan apoyo para su creación y desarrollo.
Arduino cuenta con su IDE oficial en el que se desarrolla la programación para establecerlo
como el medio de procesamiento.
La base de datos se desarrolla en MySQL por ser un sistema open source de bajo consumo de
recursos y por ocupar poco espacio en el disco, esté gestor lo incluye XAMMP que es un
servidor y que permite la instalación de varias herramientas complementarias para su creación
como PHP, Apache, entre otras, dentro del mismo instalador.
Una vez especificado los programas a utilizar en la parte software, a continuación se detalla las
principales características de cada uno, junto con el desarrollo de los componentes relevantes:
- 53 -
2.7.1 Desarrollo de la aplicación
Una aplicación se crea a partir de un sin número de archivos y carpetas por lo que para hacer la
aplicación es necesario generar un nuevo proyecto.
El identificador que se envía al realizar la petición del documento está encapsulada en una trama
de tres bits, el cual representa un valor numérico en binario el 0 al 14, como se especifica a
continuación:
.
ID
DOCUMENTOS DESCRIPCIÓN
- 54 -
Se puede decir que cada una de las pantallas de una aplicación son una “activity” o actividad
independiente, que están conformadas por dos partes: la parte lógica (un archivo Java) y la parte
gráfica (un archivo XML) como se muestra en la Figura 10-2, las cuales están desarrolladas en
la App del usuario.
FragmetPantallaInicio
En la Figura 8-2 se presentan los componentes que conforman la pantalla inicial de la aplicación
Info-Fie, la cual cuenta con los siguientes elementos:
- 55 -
MenuButton.- Mediante la acción Listener despliega el menú principal de la aplicación
mostrado en la Figura 9-2.
FragmentDocuments
En la Figura 10-2 se presenta los componentes que conforman la pantalla del menú repositorio
donde se listan los documentos que son las opciones con las que dispone la base de datos del
sistema de comunicación.
TextView.- Este control se utiliza para mostrar un determinado texto como son las distintas
descripciones de los documentos.
ListView.- Visualiza una lista deslizable verticalmente de varios elementos, que pertenecen
a los documentos detallados de la base de datos.
SearchView.- Es un widget que proporciona una interfaz para que el usuario ingrese una
consulta y envíe una solicitud a un proveedor de búsqueda.
- 56 -
Figura 10-2: Componentes utilizados en pantalla menú repositorio
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
Seguido se carga el método onResume() el cual contiene la variable mNfcAdapter que hace
referencia al adaptador NFC del teléfono, envía el identificador sea en el caso que haya sido
seleccionado algún elemento de la lista o a su vez se pone en espera para la recepción de algún
documento entrante.
- 57 -
Figura 11-2: Diagrama de flujo del funcionamiento general de la aplicación
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
Cabe recalcar que el código completo desarrollado de la App Info-Fie se encuentra especificado
en el anexo B.
Es un entorno de código abierto que faculta la creación de programas para ser implementados en
las placas Arduino y logrando de esta manera desarrollar aplicaciones que resuelven
necesidades específicas, permite configurar la placa Arduino, estableciendo las sentencias
necesarias para levantar y controlar el sistema de comunicación.
Arduino Mega 2560 es la encargada de recoger, controlar, procesar las acciones y la
información en el sistema, primero interpreta los datos enviados desde el teléfono al Shield
NFC, para realizar la consulta o petición al servidor mediante los métodos POST y GET en
PHP, finalmente recolecta y procesa la información para ser retornada hacia el móvil.
Los requerimientos que debe cumplir son:
Leer y validar datos NFC.
Emitir mensajes de error.
Realizar conexión a base de datos.
Confirmar el requerimiento y validar la información
- 58 -
La Figura 12-2 muestra el diagrama de flujo donde se especifica el algoritmo de
funcionamiento del módulo de control y procesamiento, basado en la placa Arduino Mega 2560.
El proceso inicia con la configuración del Shield Ethernet verificando si existe direccionamiento
dinámico DHCP, caso contrario asigna una IP estática, a continuación el Shield NFC espera un
mensaje del iniciador que al ser confirmado lee el identificador que se envía desde la aplicación
móvil.
Este identificador es enviado a la base de datos que verifica y retorna el contenido del mismo
hacia el Arduino, todo eso enmarcado en un proceso interno en conjunto con PHP, si el
contenido es confirmado se procede a la recepción y lectura del contenido para su posterior
envío a través del Shield NFC PN532, caso contrario emite un mensaje de error.
- 59 -
2.7.2.1 Librerías
2.7.2.2 Funciones
Función nfcReceive()
El Shield NFC PN532 usa esta función sin parámetros de entrada, ayuda a la recepción de
tramas NDEF enviadas por el Smartphone y retornando el valor del payload o contenido
recibido como una cadena de caracteres almacenada en una variable tipo String llamada
payloadAsString para su posterior uso dentro del Sketch.
nfc.read(ndefBuf, sizeof(ndefBuf))
Esta función con parámetros retorna el tamaño total del payload receptado, recibiendo una
variable que es:
- 60 -
- ndefBuf: Variable tipo entero indeterminado de 8 bits de 128 posiciones, que se encarga de
almacenar toda las tramas NDEF receptadas por el Shield
- sizeof(ndefBuf): Es una variable propia del Arduino que obtiene el tamaño de la variable
ndefBuf
NdefMessage(buffer, size)
Es una función con parámetros que retorna el contenido del payload y recibe dos variables que
son:
- buffer: Variable tipo entero indeterminado de 8 bits de 128 posiciones, que se encarga de
almacenar todo el contenido del mensaje NDEF.
- Size: Es una variable de tipo entero que almacena la longitud del buffer.
Función nfcSendPayload()
Es una función sin parámetros que permite el envío de envío de tramas NDEF desde el Shield
NFC hacia el objetivo o teléfono móvil, las cuales contienen la información respectiva obtenida
en la base de datos.
Función httpRequest()
Es una función con parámetros que permite establecer la conexión a la base de datos para
realizar la respectiva consulta de la información, recibiendo un parámetro tipo int el cual es la
petición inicial del usuario.
Función readPage()
Es una función sin parámetro que trabaja a la par de la función httpRequest() y permite obtener
el archivo solicitado mediante un proceso de lectura por partes; además utiliza internamente dos
funciones propias de Arduino que se las detalla a continuación:
client.available()
Devuelve el número de bytes disponibles para la lectura (es decir, la cantidad de datos que ha
sido escrita en el cliente por el servidor al que está conectado).
client.read()
Lee el siguiente byte recibido del servidor al que está conectado el cliente y almacena en una
variable tipo char.
MySQL es un software o herramienta libre visual que funciona como un servidor y sirve para
gestionar o administrar bases de datos.
La base de datos creada en el proyecto permite obtener un repositorio cuya finalidad es
almacenar los documentos de ayuda para los alumnos como son los formatos de solicitudes y
oficios requeridos al realizar la petición de algún trámite en la facultad.
MySQL se utiliza para el diseño y es donde se crea la base de datos del sistema denominado
bd_repositorio y contendrá una tabla llamada Archivos, esto podemos realizarlo gracias al
gestor phpMyAdmin como se muestra en la siguiente figura:
Para el diseño de la base de datos se toma en cuenta una tabla llamada Archivos, la cual está
compuesta de los siguientes campos:
ID.- Es el identificador del documento con el cual se realiza la petición y es una variable de
tipo entero.
Nombre.- Es el nombre original del archivo, es una variable de tipo varchar con una
longitud de 50.
Título: Es el nombre específico que se le da al archivo, es de tipo varchar de longitud 50.
Descripción.- Es la explicación más detallada del documento, es de tipo varchar de longitud
100.
Contenido.- Es la variable donde está almacenado el archivo, es de tipo MediumBlob y
puede con una capacidad de hasta 16MB.
Tipo: Es una variable de tipo varchar de longitud 50, contiene el MIME Type de cada
Archivo, que es un estándar que se utiliza para enviar contenido a través de la red.
ARCHIVOS
ID Nombre Título Descripción Contenido Tipo
Solicitud para traslado de
1 Doc1.doc Oficio_Cambio_Carrera [ BLOB]-13KB application/msword
carrera
Solicitud para
2 Doc2.pdf Oficio_Convalidación [ BLOB]-12KB application/pdf
convalidación de materia
… … … ... … …
- 62 -
CAPÍTULO III
3.1 Introducción
La Figura 1-3 determina el diagrama de bloques del funcionamiento total del sistema de
comunicación desarrollado.
- 63 -
Figura 1-3: Diagrama de bloques de funcionamiento del sistema.
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
La evaluación del bloque de comunicación funciona bajo tres parámetros que son:
- 65 -
En base a los datos obtenidos en la Tabla 1-3 se determina que en el rango de funcionamiento
máximo es de 6 cm debido a que la conexión es satisfactoria y la descarga exitosa en un tiempo
promedio de 0,346 segundos.
Se puede destacar que en rangos de 7 a 10 cm no se establece conexión, a pesar de que las
especificaciones técnicas detallan que el rango máximo de funcionamiento es de 10cm.
Esta etapa se observa la transferencia de los datos y posterior recepción, se puede constatar de
dos maneras:
La primera opción es mediante el monitoreo USB como se muestra en la Figura 4-3, donde el
cuadro de color rojo es el ID que llega desde la petición del teléfono, el de color celeste es el
mensaje que indica la conexión satisfactoria con la base de datos y el amarillo es la información
codificada y en proceso de transferencia.
La segunda manera es visualizar directamente en el teléfono visualizando el documento
requerido como se muestra en la Figura 5-3.
- 66 -
3.2.1.2 Evaluación del rango de operación Vs. El tiempo de descarga
Esta evaluación consta en medir la descarga de un mismo documento en el rango operativo del
sistema en base a la conclusión de la Tabla 1-3 y determinar si el tiempo de descarga varia,
como se puede apreciar en la siguiente tabla:
En base a los datos obtenidos en la Tabla 2-3 se determina que la descarga de un mismo
documento en los distintos rangos no se ve afectado por el tiempo de descarga.
Los requerimientos son ciertos pasos o restricciones con las cuales el sistema funciona
apropiadamente y deben ser impartidos al usuario para la correcta descarga de la información,
éstos son:
El usuario debe poseer un teléfono inteligente que cuente con la tecnología NFC.
- 67 -
3.4.1 Método Actual
Para la recolección de los datos se ha realizado una medición real del tiempo en los trámites de
solicitudes en la secretaría de la escuela, donde el proceso tradicional se desarrolla de la
siguiente manera:
Estos cinco pasos detallados anteriormente es el proceso actual que se realiza cada día, en una
mañana se atiende un promedio de 15 personas, por lo que se ha tomado los datos o muestras de
10 (Tabla 3-3), con el fin de establecer el tiempo promedio de demora.
- 68 -
RESULTADO:
Al aplicar el método estadístico media aritmética de las muestras obtenidas se aprecia que el
tiempo estimado en demora de este tipo de trámite por persona es de 3 minutos y 41 segundos,
equivalente a 221 segundos.
En la recolección de los datos se ha realizado una medición real del tiempo de la descarga de las
solicitudes e información en el sistema de comunicación, los mismos que están detallados en la
Tabla 4-3.
Cabe recalcar que es el tiempo total empleado desde la petición inicial realizada por el usuario a
través de la aplicación instalada en el móvil, hasta el retorno de la información para los trámites
necesarios.
Retiro total de semestre 13KB 0.031 seg 1 min y 0.031seg 60.031 seg
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
- 69 -
RESULTADO:
En los cálculos realizados anteriormente se puede ver que el tiempo aproximado por persona
empleando el método actual es de 221 segundos, mientras que en el sistema de comunicación
con NFC ocupa 60.03 segundos, para poder establecer una relación y visualizar la gran
diferencia que existe se compara estos tiempos empleados en cinco personas:
Gráfico 2-3: Relación método actual vs. Sistema de comunicación con NFC
Realizado por: Lara, Daniela; Vallejo, Javier, 2016.
- 70 -
Como se aprecia claramente en el Gráfico 2-3, el sistema de comunicación posee una mejor
relación respecto al tiempo empleado en comparación con el método actual, por lo que es una
excelente alternativa ya que sin lugar a duda mejora y agilita los procesos.
Para calcular el nivel de mejora, se procede a hallar el valor denominado ∆𝑠 que es la diferencia
entre el método tradicional y el sistema realizado, con el propósito de establecer el porcentaje de
mejora del sistema implementado.
∆𝑠 = 72.84%
- 71 -
3.7 Análisis Económico
A continuación se detalla los costos de cada uno de los componentes empleados en el desarrollo
del sistema de comunicación, con los elementos adquiridos en Estados Unidos.
- 72 -
CONCLUSIONES
El método cualitativo por puntos permitió realizar la comparación, el análisis de las distintas
tecnologías inalámbricas y determinar que NFC posee las características adecuadas que
satisfacen los requerimientos del diseño del sistema con un 39,91% de mejoras frente a sus
competidoras, proporcionando ventajas como ahorro de energía, tiempo de establecimiento
bajo lo que permite disminuir el tiempo empleado y experiencia simple en conexión para el
usuario debido a que no se necesitan configuraciones previas y el típico emparejamiento.
El diseño del sistema se desarrolló en una configuración tipo estrella y de forma escalable,
lo que permite implementar nuevos módulos. Su uso contribuye en la mejora del tiempo de
atención al estudiante.
- 73 -
RECOMENDACIONES
Incluir en el desarrollo futuro otro tipo de información como pensum académico, mallas
curriculares, horarios, etc, de beneficio para el estudiante.
Continuar con el desarrollo y mejora del prototipo para una posible comercialización en pos
de presentar una solución en un ambiente real y acorde a las necesidades del medio.
Instalar un servicio de impresión al sistema para dinamizar aún más los tiempos de
respuesta.
- 74 -
BIBLIOGRAFÍA
7. EVANS, B. Arduino Notebook a beginner´s reference [en línea]. San Francisco California-
USA: Creative Commons, 2007. [Consulta: 20 marzo 2016]. Disponible en:
http://playground.arduino.cc/uploads/Documentation/Arduino_programming_notebook.pdf
9. INVARATO, R. Android 100% [en línea]. Madrid, España. Creative Commons. 2014.
[Consulta: 28 de Abril 2016]. Disponible en: http://jarroba.com/libro-android-100-gratis/
11. NFC-FORUM. NFC Data Exchange Format (NDEF) [en línea]. Wakefield Boston-USA:
NFC Forum, Inc. 2006. [Consulta: 25 de marzo 2016]. Disponible en: http://www.eet-
china.com/ARTICLES/2006AUG/PDF/NFCForum-TS-NDEF.pdf
12. PADILLA CONTRERAS, Jorge Esteban, & LÓPEZ IÑIGUEZ, Wilber Adrián. Near
Field Communication-Teoría y Aplicaciones [En línea] (tesis pregrado). Universidad del
Azuay, Facultad de ciencias de la Administración, Escuela de Ingeniería de Sistemas y
Telemática, Cuenca, Ecuador. 2014. pp. 38-41. [Consulta: 2016-03-28]. Disponible en:
http://dspace.uazuay.edu.ec/bitstream/datos/3586/1/10270.pdf
13. PENALVA, Javier. NFC: qué es y para qué sirve [blog]. Murcia-España: XATACA, 2011.
[Consulta: 14 de enero 2016]. Disponible en: http://www.xataka.com/moviles/nfc-que-es-y-
para-que-sirve
16. IGOE, Tom; et al. Beginning NFC Near Field Communication with Arduino, Android &
Phonegap [pdf]. 5 ª ed. Boston-USA: O’Reilly Media, 2014. [Consulta: 26 febrero de
2016]. Disponible en:
ftp://facfiet.unicauca.edu.co/TalleresIoT/Libros/Beginning%20NFC%20-
%20Near%20Field%20Communication%20with%20Arduino,%20Android,%20and%20Pho
neGap%202014.pdf
17. VEDAT, Coskun; KEREM, Ok; & BUSRA, Ozdenizci. NFC Application Development
for Android [en línea]. Estados Unidos: 2013. [Consulta: 27 febrero de 2016]. Disponible
en:
http://pdf.th7.cn/down/files/1312/professional_nfc_application_development_for_android.p
df?yundunkey=1ef6580cc35f41ec22395e20a294ff5a41430146400_415711093
18. WHEAT, D. Arduino Internals [en línea]. Dallas, Texas, Estados Unidos. Friendsof
Apress. 2011. [Consulta: 25 febrero de 2016]. Disponible en:
http://www.hmangas.com/Electronica/Datasheets/Arduino/LIBROS%20Y%20MANUALE
S/%5BArduino.Internals(2011)%5D.Dale.Wheat.pdf
ANEXOS:
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <PN532_SPI.h>
#include <NdefMessage.h>
#include <snep.h>
uint8_t ndefBuf[200];
char inBuffer[1024];
String payloadAsString = "";
boolean startRead = false;
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
char server[] = "192.168.1.2";
//IPAddress server(192,168,1,2);
IPAddress ip(192,168,1,20);
EthernetClient client;
void setup() {
Serial.begin(9600);
Serial.print("Configurando Shield Ethernet ");
Serial.println("........");
delay(1000);
if (Ethernet.begin(mac) == 0) {
Serial.println("Fallo al configurar Ethernet usando DHCP");
Ethernet.begin(mac, ip);// Intenta configurar IP estatica en lugar de DHCP
}
Serial.print("IP:");
Serial.println(Ethernet.localIP());
delay(1000);
Serial.println("connecting...");
}
void loop() {
Serial.println("Ingresar ID:");
while(!Serial.available());
if (Serial.available()>0){
int identificador=(Serial.read()-48);
httpRequest(identificador);
delay(2000);
Serial.println("Send a message to Peer");
}
delay(1000);
Serial.flush();
while(Serial.available()) Serial.read();
}
//
message.encode(ndefBuf);
if (0 >= nfc.write(ndefBuf, messageSize)) {
Serial.println("Failed");
} else {
Serial.println("Success");
// memset(ndefBuf,0,200);
}
delay(3000);
}
Actividad principal
package com.example.fie.info_fie;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.nfc.NdefMessage;
import android.nfc.NdefRecord;
import android.nfc.NfcAdapter;
import android.os.Build;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v4.app.Fragment;
import android.support.v4.util.Pair;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import java.nio.charset.Charset;
import java.util.Locale;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
Fragment fragmentInicio;
fragmentInicio=new FragmentPantallaInicio();
getSupportFragmentManager().beginTransaction().replace(R.id.content_ma
in,fragmentInicio)
.commit();
if (FragmentTransaction){
getSupportFragmentManager().beginTransaction().replace(R.id.content_ma
in,fragment)
.commit();
item.setChecked(true);
getSupportActionBar().setTitle(item.getTitle());
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int
position, long id) {
facultad item = (facultad) parent.getItemAtPosition(position);
Intent intent = new Intent(this, ActivityGalleryDetail.class);
intent.putExtra(ActivityGalleryDetail.EXTRA_PARAM_ID,
item.getId());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ActivityOptionsCompat activityOptions =
ActivityOptionsCompat.makeSceneTransitionAnimation(
this,
new
Pair(view.findViewById(R.id.imagen_facultad),
ActivityGalleryDetail.VIEW_NAME_HEADER_IMAGE)
);
ActivityCompat.startActivity(this, intent,
activityOptions.toBundle());
} else
startActivity(intent);
switch (i){
case 0:
nfcvar = getString(R.string.idsend_doc1);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc1));
detalle.setText(getText(R.string.description_doc1));
break;
case 1:
nfcvar = getString(R.string.idsend_doc2);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc2));
detalle.setText(getText(R.string.description_doc2));
break;
case 2:
nfcvar = getString(R.string.idsend_doc3);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc3));
detalle.setText(getText(R.string.description_doc3));
break;
case 3:
nfcvar = getString(R.string.idsend_doc4);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc4));
detalle.setText(getText(R.string.description_doc4));
break;
case 4:
nfcvar = getString(R.string.idsend_doc5);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc5));
detalle.setText(getText(R.string.description_doc5));
break;
case 5:
nfcvar = getString(R.string.idsend_doc6);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc6));
detalle.setText(getText(R.string.description_doc6));
break;
case 6:
nfcvar = getString(R.string.idsend_doc7);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc7));
detalle.setText(getText(R.string.description_doc7));
break;
case 7:
nfcvar = getString(R.string.idsend_doc8);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc8));
detalle.setText(getText(R.string.description_doc8));
break;
case 8:
nfcvar = getString(R.string.idsend_doc9);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc9));
detalle.setText(getText(R.string.description_doc9));
break;
case 9:
nfcvar = getString(R.string.idsend_doc10);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc10));
detalle.setText(getText(R.string.description_doc10));
break;
case 10:
nfcvar = getString(R.string.idsend_doc11);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc11));
detalle.setText(getText(R.string.description_doc11));
break;
case 11:
nfcvar = getString(R.string.idsend_doc12);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc12));
detalle.setText(getText(R.string.description_doc12));
break;
case 12:
nfcvar = getString(R.string.idsend_doc13);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc13));
detalle.setText(getText(R.string.description_doc13));
break;
case 13:
nfcvar = getString(R.string.idsend_doc14);
imagen.setImageResource(R.drawable.ic_document);
titulo.setText(getText(R.string.title_doc14));
detalle.setText(getText(R.string.description_doc14));
break;
}
mNfcAdapter.setNdefPushMessage(mNdefMessage,
MainActivity.this);
}
}
@Override
public void onFragmentInteraction(Uri uri) {
}
}
Fragment Documents
package com.example.fie.info_fie;
import android.app.Activity;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.Toast;
public FragmentDocuments() {
// Required empty public constructor
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
activity = getActivity();
try {
listacallback = (OnListItemClickListener) getActivity();
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + "ERROR
CALLBACK");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup
container, Bundle savedInstanceState) {
View root =
inflater.inflate(R.layout.fragment_fragment_documents, container,
false);
lista = (ListView) root.findViewById(R.id.listView);
busqueda=(android.widget.SearchView)root.findViewById(R.id.SearchView1
);
String[] listadoc =
getResources().getStringArray(R.array.lista_doc);
final ArrayAdapter<String> adapter = new
ArrayAdapter<String>(activity, android.R.layout.simple_list_item_1,
listadoc);
lista.setAdapter(adapter);
lista.setOnItemClickListener(this);
busqueda.setOnQueryTextListener(new
SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String text) {
return false;
}
@Override
public boolean onQueryTextChange(String text) {
adapter.getFilter().filter(text);
return false;
}
});
Toast.makeText(getActivity(), "ACERQUE el dispositivo y TOQUE
la pantalla para descargar el elemento seleccionado",
Toast.LENGTH_SHORT).show();
return root;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int
position, long id) {
listacallback.onListClick(position);
}
Activity Recibir
package com.example.fie.info_fie;
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources;
import android.nfc.NdefMessage;
import android.nfc.NdefRecord;
import android.nfc.NfcAdapter;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.load.engine.Resource;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
@Override
protected void onResume() {
super.onResume();
enableForegroundDispatchSystem();
}
@Override
protected void onPause() {
super.onPause();
disableForegroundDispatchSystem();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (intent.hasExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)) {
Toast.makeText(this, "NfcIntent!",
Toast.LENGTH_SHORT).show();
Parcelable[] parcelableMessages =
intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if (parcelableMessages != null &&
parcelableMessages.length > 0) {
readTextFromMessage((NdefMessage)
parcelableMessages[0]);
} else {
Toast.makeText(this, "No NDEF messages found!",
Toast.LENGTH_SHORT).show();
}
}
}
Content.setText(tagContent);
} else {
Toast.makeText(this, "No NDEF records found!",
Toast.LENGTH_SHORT).show();
}
nfcAdapter.enableForegroundDispatch(this, pendingIntent,
intentFilters, null);
}
@Override
protected Boolean doInBackground(Void... params) {
publishProgress(i * 10);
if (isCancelled())
break;
}
return true;
}
@Override
protected void onProgressUpdate(Integer... values) {
int progreso = values[0].intValue();
pDialog.setProgress(progreso);
}
@Override
protected void onPreExecute() {
pDialog.setOnCancelListener(new
DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
MiTareaAsincronaDialog.this.cancel(true);
}
});
pDialog.setProgress(0);
pDialog.show();
}
@Override
protected void onPostExecute(Boolean result) {
if (result) {
pDialog.dismiss();
Toast.makeText(ActivityReceive.this, "Descarga
finalizada!", Toast.LENGTH_SHORT).show();
leerArchivo(res);
}
}
@Override
protected void onCancelled() {
Toast.makeText(ActivityReceive.this, "Tarea cancelada!",
Toast.LENGTH_SHORT).show();
}
}
/Descargar Archivo
<?php
require("dbconnect.inc.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST')
$id= $_POST['id'];
$sql = "SELECT tipo, contenido FROM archivos WHERE id='$id'";
// print($documento);
$res=mysql_query($sql);
$tipo=mysql_result($res, 0, "tipo");
$contenido=mysql_result($res, 0, "contenido");
header("Content-type: $tipo");
print($contenido);
exit;
?>
<form method='POST'>
<input type='submit'>
</form>
/Guardar archivo
<?php
require("dbconnect.inc.php");
formatos = array('.txt');
$archivoTemp=$_FILES["archivo"]["tmp_name"];
$tamanio=$_FILES["archivo"]["size"];
$tipo=$_FILES["archivo"]["type"];
$nombre=$_FILES["archivo"]["name"];
$titulo=$_POST["titulo"];
$descripcion=$_POST["descripcion"];
$ext=substr($nombre, strripos($nombre,'.'));
if(in_array($ext, $formatos)){
if ( $archivoTemp != "none" ){
$contenido = addslashes($contenido);
fclose($fp);
mysql_query($qry);
if(mysql_affected_rows($con) > 0)
else
}else{
?>
/Petición al servidor
<?php
// setting BD
$conexion = mysql_connect("localhost","jada","12345");
mysql_select_db("bd_repositorio",$conexion);
ini_set("max_execution_time",-1);
// $file = file_get_contents($contenido);
$string_array = str_split(base64_encode($contenido),128);
// $string_array = str_split($file,16);
$numFrames=count($string_array);
// echo "*".$numFrames."-";
$flagArduino=true;
$pos_ini=0;
$x=0;
while ($numFrames>0) {
if ($flagArduino=true) {
$framestoRead=min($numFrames,1);
$pos_ini=0+$x;
$pos_fin=$framestoRead+$x;
echo "*";
echo $string_array[$i];
$x++; }
echo "-";
$flagArduino=false;
$numFrames-=$framestoRead; }
if($numFrames!=0){
// echo "<br>";
// $flagArduino=$_GET['flagArduino'];
if (!isset($_GET['flagArduino'])) {
$flagArduino=$_GET['flagArduino'];
} } }
?>
/ Conexión
<?php
$conexion = mysql_connect("localhost","jada","12345");
mysql_select_db("bd_repositorio",$conexion);
?>
/Listar archivo
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<table>
<tr>
<td>NOMBRE</td>
<td>TITULO</td>
<td>DESCRICION</td>
<td>CONTENIDO</td>
<td>TIPO</td>
</tr>
<?php
$con = mysqli_connect("localhost","jada","12345");
mysqli_select_db($con,"bd_repositorio");
$query = mysqli_query($con, "SELECT * FROM archivo");
$tildes = $con->query("SET NAMES 'utf8'");
while($datos=mysqli_fetch_array($query)){?>
<tr>
</tr>
<?php } ?>
</table>
</body>
</html>
ANEXO D: (Datasheet Arduino Uno)
ANEXO E: (Datasheet Arduino Mega 2560)
ANEXO F: (Datasheet Arduino Yún)