contenido148.206.53.84/tesiuami/uami16710.pdf · 1.4 tipos de tarjetas ... programación con la...
TRANSCRIPT
2
Contenido RESUMEN....................................................................................................................................................................3
1 DESCRIPCIÓN DE LA TECNOLOGÍA NFC ..............................................................................................................4
1.1 DESCRIPCIÓN DE NFC .......................................................................................................................................4
1.2 MODOS DE OPERACIÓN ...................................................................................................................................5
1.3 USOS DE LA TECNOLOGÍA NFC .........................................................................................................................6
1.4 TIPOS DE TARJETAS ....................................................................................................................................... 11
Tabla 1 Tipo de etiquetas ................................................................................................................................ 11
1.5 TIPOS DE REGISTRO ....................................................................................................................................... 12
2 INTRODUCCIÓN A LA GESTIÓN DE UN ESTACIONAMIENTO A TRAVÉS DE LA TECNOLOGÍA NFC ........................ 13
2.1 OBJETIVO ....................................................................................................................................................... 13
2.2 DESCRIPCIÓN DEL PROBLEMA ....................................................................................................................... 13
2.3 DESARROLLO.................................................................................................................................................. 13
2.4 ARQUITECTURA FÍSICA .................................................................................................................................. 14
2.5 ARQUITECTURA LÓGICA ................................................................................................................................ 15
2.6 SIMULACIÓN DE LA IMPLEMENTACIÓN ........................................................................................................ 16
3 RESULTADOS ......................................................................................................................................................... 17
4 INSTALACIÓN DE LIBRERÍA NFC ............................................................................................................................ 20
5 TRABAJO FUTURO ................................................................................................................................................. 22
6 CONCLUSIÓN ........................................................................................................................................................ 22
7 REFERENCIAS ........................................................................................................................................................ 23
ANEXO A. Código del programa .............................................................................................................................. 24
3
RESUMEN
NFC (near field communication) es una tecnología inalámbrica de corto alcance que permite una
interconexión entre dispositivos electrónicos de una manera sencilla y simple. La comunicación entre
dispositivos NFC se realiza a través de un diálogo entre un dispositivo iniciador y uno o varios
dispositivos denominados destino, se produce cuando dos dispositivos NFC están próximos entre sí,
por lo que la comunicación es segura debido al corto alcance de la transmisión.
El presente proyecto está enfocado en conocer a más detalle la tecnología NFC y sus aplicaciones, así
como la implementación simulada de la gestión de un estacionamiento. Además de los pasos de
instalación de la librería libnfc para poder hacer la ejecución del dispositivo NFC.
La primera sección desarrolla una investigación bibliográfica, con el fin de conocer más a fondo las
características de la tecnología NFC, describir sus principios básicos y modos de comunicación, así
como también sus aplicaciones.
En la segunda sección se describe y desarrolla la gestión de un estacionamiento, al igual que se realiza
la simulación de esta aplicación en la plataforma “C” de programación con la conexión a una base de
datos realizada en MySQL Workbench y se muestran los resultados obtenidos.
NFC se presta para desarrollar muchas aplicaciones para usos cotidianos y de manera segura, en este
trabajo se habla sobre las aplicaciones destacadas.
La mayor parte de las aplicaciones NFC han sido desarrolladas para ser utilizadas con teléfonos móviles
entre sí o bien con tarjetas NFC. El controlador pn533 elegido para este proyecto, ha permitido que se
pueda trabajar con algunos programas prueba que NFC ofrece. Además se ha aportado una librería y
una documentación de NFC, que permitirá el desarrollo de futuras aplicaciones basándose en los
objetivos que se han logrado en este proyecto.
NFC ha desarrollado y ha proporcionado documentación útil para la implementación de varias
aplicaciones. Cabe destacar que se utilizó y se investigó sobre la librería libnfc para poder hacer uso del
dispositivo junto con las etiquetas, el cual queda como trabajo futuro.
A partir de lo anterior se logró determinar que el uso de diferentes dispositivos con capacidades NFC
permite hacer más fácil y sencilla la interacción entre usuarios y medios tecnológicos, para ello el
usuario sólo debe llevar un teléfono móvil equipado con un lector NFC.
4
1 DESCRIPCIÓN DE LA TECNOLOGÍA NFC
1.1 DESCRIPCIÓN DE NFC
NFC (near field communication): Es una tecnología para comunicar dispositivos entre sí. NFC utiliza la
comunicación de campo cercano, que es una conexión inalámbrica de corto alcance (alrededor de
10cm) para hacer posible la comunicación. NFC utiliza pocos bits de información, opera a 13.56MHz, no
requiere ninguna licencia para su uso y la tasa de transferencia puede ser de 106kbps, 212kbps,
424kbps o 848kbps.
Este tipo de comunicación está basada en los principios básicos de RFID (radio frecuency
identification) [1]. Al igual que RFID, NFC requiere de un lector y una etiqueta que permitan la
transmisión de información o archivos dentro de un campo magnético generado por estos dos
dispositivos (ver ilustración 1, Base de RFID). El lector envía por el aire una señal que es captada por la
etiqueta y ésta responde según las peticiones del lector, indicado su información almacenada.
La etiqueta es un circuito electrónico en forma de lámina que puede ser de diversos tamaños o
características de memoria [10]. NFC ofrece seguridad en el intercambio de datos debido a su
transmisión de corto alcance.
Ilustración 1 Base de RFID.
La tecnología NFC la encontramos principalmente en teléfonos inteligentes conocidos como
Smartphones, etiquetas NFC y otros dispositivos de pago, como una manera eficiente y rápida para
compartir datos. Por ejemplo, se pueden compartir direcciones web, contactos, números de teléfono,
música, videos, fotografías, gestión de boletos electrónicos, pagos por proximidad, control de accesos y
descarga de contenidos a través de etiquetas inteligentes. NFC también podría sustituir tarjetas de
identificación y pasaportes.
La idea principal de esta tecnología es que dos dispositivos puedan comunicarse entre sí de manera
cómoda, rápida y eficaz. Una de las ventajas de la tecnología es la facilidad de comunicación, basta con
acercar los dos dispositivos, sin necesidad de establecer un contacto previo. Otro objetivo de esta
tecnología es que los dos dispositivos sean capaces de enviar y recibir información al mismo tiempo.
Actualmente NFC no es común en la vida cotidiana, lo cual es lamentable ya que tiene ventajas de
comodidad y seguridad, sin embargo se espera una buena aceptación en el futuro.
5
1.2 MODOS DE OPERACIÓN
La tecnología NFC utiliza dos modos de operación; activo y pasivo.
Activo: Ambos dispositivos generan su propio campo electromagnético para poder interactuar y
hacer un intercambio de datos. Por lo tanto ambos necesitan una fuente de alimentación para que
puedan funcionar (ver Ilustración 2 Modo de operación activo).
Ilustración 2 Modo de operación activo
Pasivo: Sólo un dispositivo genera el campo magnético, el otro se aprovecha de la energía recibida
para poder transferir los datos. En este caso el que inicia la comunicación es quien genera dicho
campo (ver Ilustración 3 Modo de operación pasivo ).
Ilustración 3 Modo de operación pasivo
Dentro de esos dos modos de operación, también se definen 3 de comunicación:
Punto a punto. Este modo de comunicación permite el intercambio de información entre dos
aparatos equipados con NFC. Las redes punto a punto responden a un tipo de arquitectura en
la que cada canal de datos se usa para comunicar únicamente dos nodos. NFC es destinado al
intercambio de datos o establecimiento de comunicaciones entre dispositivos.
Usos: Intercambio de fotos entre una tableta y un smartphone. Apertura de puertas de un automóvil.
6
Lectura-escritura. Se utiliza para leer o escribir etiquetas. Suele utilizarse para los denominados
pósters inteligentes, ya que al leer la etiqueta incluida en el póster, ésta trasmite al teléfono la
dirección de una página web, abriendo automáticamente el navegador. La etiqueta emisora es
el póster el cual contiene alguna información la cual va a ser comunicada al usuario y el
elemento receptor es el teléfono celular el cual va a recibir dicha información. Este modo está
destinado a la lectura/escritura sobre etiquetas.
Usos: Recorrido en un museo. Cambio del timbre del teléfono o ejecución de una aplicación al leer una etiqueta NFC.
Emulación de tarjeta. En este modo, el dispositivo NFC se comporta como una tarjeta
inteligente sobre la cual un lector puede obtener información, apareciendo ante el lector como
una tarjeta de lectura por proximidad. Con esta configuración se puede utilizar el dispositivo
NFC como medio de pago, así como para el almacenamiento y gestión de todo tipo de entradas
y recibos.
Usos: Pago sin contacto. Gestión de los vales de descuento o de los puntos de fidelidad en una tienda.
1.3 USOS DE LA TECNOLOGÍA NFC
Teniendo en cuenta los principios básicos de la tecnología NFC y las definiciones de marketing directo
e interactivo y marketing móvil [11], a continuación presentamos algunas aplicaciones de esta
tecnología.
NFC puede usarse como una forma de pago con ayuda de un teléfono móvil, pero sus usos se amplían
a cualquier situación en la que es necesario un intercambio de datos de forma inalámbrica [3].
Algunos usos prometedores en un futuro son:
1.- Identificación y control de acceso: Es posible el acceso a espacios controlados como oficinas,
viviendas, autobuses, etc. Esto se puede hacer simplemente acercando nuestro teléfono móvil o
tarjeta con chip NFC a un dispositivo de lectura (ver Ilustración 4 Acceso al metro).
Ilustración 4 Acceso al metro
7
2.- Recolección e intercambio de datos: Google es el principal protagonista de este uso pues, en
combinación con las etiquetas RFID, ofrece servicios inmediatos como señalar en dónde estamos y
recibir información de un evento o establecimiento (ver Ilustración 5 Intercambio de datos).
Ilustración 5 Intercambio de datos
3.- Pago con el teléfono móvil: Este servicio es el más apropiado para aplicar la tecnología NFC. Éste
posibilita la comodidad de pagar los gastos con sólo acercar el teléfono a la aplicación de NFC al
dispositivo para poder hacer el movimiento (ver Ilustración 6 Pago en tiendas).
Ilustración 6 Pago en tiendas
8
4.- Guía turística: NFC permite explorar lugares turísticos y ofrecer información sobre éstos. Además
reproducir contenido de audio o vídeo al acercar un teléfono móvil a una etiqueta NFC y hasta hacer
posible la compra de algún boleto de acceso a alguna atracción turística (ver Ilustración 7 Obtención de
datos turísticos).
Ilustración 7 Obtención de datos turísticos
5.- Compra en máquinas expendedoras: Al seleccionar un producto de alguna máquina expendedora,
el usuario hace la elección, acerca su móvil al lector del equipo NFC, el pago se hace instantáneamente
y se liberan los productos (ver Ilustración 8 Máquinas expendedoras).
Ilustración 8 Máquinas expendedoras
6.- Tarjetas de presentación: Con sólo acercar el teléfono móvil a una tarjeta de presentación, éste nos
mostrará toda la información relativa a la persona dueña de la tarjeta: teléfono de contacto, dirección,
correo electrónico, logos, galería fotográfica etc. Adicionalmente, se puede añadir el contacto a la
agenda (del teléfono, de Google, de Outlook, etc.) de forma automática (ver Ilustración 9 Tarjetas de
presentación).
Ilustración 9 Tarjetas de presentación
9
7.- Parquímetros: El problema usual, que un usuario no cuenta con cambio al momento de pagar el
servicio del parquímetro, podría resolverse con la tecnología NFC implementada en nuestro
Smartphone o tarjeta inteligente. Se podrá realizar el pago o control del parquímetro. Un simple
acercamiento de nuestro teléfono con aplicación NFC a la tarjeta con chip NFC bastará para pagar el
parquímetro (ver Ilustración 10 Parquímetros).
Ilustración 10 Parquímetros
8.- Apertura de puertas: El poder realizar la apertura de una puerta, ya sea de una casa o de
un automóvil, con sólo acercar un Smartphone o teléfono móvil facilita el ya no portar llaves que se
pueden extraviar (ver Ilustración 11 Apertura de puerta de un vehículo).
Ilustración 11 Apertura de puerta de un vehículo
9.- Arranque de automóviles: Muy parecido al caso anterior tendríamos el uso de NFC para arrancar el
transporte. Sólo es necesario un sistema de cifrado de información para poder arrancar un automóvil
(ver Ilustración 12 Arranque de un vehículo).
Ilustración 12 Arranque de un vehículo
10
NFC también es útil en el hogar; ya que ayudaría a facilitar varias actividades automatizándolas a través
de un teléfono móvil o Smartphone.
Aquí se enlistan algunas actividades en casa donde NFC sería de ayuda: (ver Ilustración 13 NFC en un
hogar)[5].
Activación del perfil de una casa: Con la disposición de una etiqueta en la entrada del hogar
podremos activar luces, encender algún aparato en específico, así como activar un perfil
predeterminado.
Activación del perfil nocturno: podemos hacer uso de una etiqueta NFC que ponga el móvil en
completo silencio y programe la alarma para el siguiente día, etc.
Activación de música: Sólo con acercar el teléfono móvil a la etiqueta NFC se activará la
reproducción musical y cargará la lista de reproducción.
Ayuda a personas mayores: el uso de la tecnología NFC puede ayudar a los adultos mayores.
Podremos configurar varias etiquetas para que ellos con sólo pasar el dispositivo sean capaces
de comenzar una vídeo-llamada, enviar un mensaje, etc.
Detección de presencia: gracias a NFC y las etiquetas podríamos crear un sistema que detecte
siempre el lugar donde nos encontremos haciendo uso de nuestro teléfono móvil. Así la casa
podría encender o apagar luces, bajar persianas, entre otras cosas.
Ilustración 13 NFC en un hogar
11
1.4 TIPOS DE TARJETAS
Las etiquetas NFC, son pequeñas con un chip que permite almacenar todo tipo de datos de manera
pasiva. No es necesario que el elemento que está transmitiendo los datos esté conectado a una
fuente de alimentación. Las etiquetas pueden ser de sólo lectura, si se quieren usar con información
que no va a ser modificada, o de lectura-escritura, si se desea que el contenido pueda ser cambiado.
Existen varios tipos de tarjetas que son para tareas específicas, en función de lo que se quiera usar.
Se establecen cuatro categorías de etiquetas NFC:
Tabla 1 Tipo de etiquetas (etiquetas NFC tipo 1 a 4) que se diferencian entre sí en la capacidad de
memoria, velocidad de transmisión y posibilidades de lectura-escritura. Para elegir entre unas y
otras es recomendable tener presente el tipo de contenido a incluir y el lugar de colocación (ver
Ilustración 14 Ejemplos de etiquetas ).
Tabla 1 Tipo de etiquetas
TIPO DE
ETIQUETA
ESTANDAR MODOS MEMORIA VELOCIDAD
1 ISO14443 Tipo A Sólo Lectura
Lectura/Escritura
96 bytes
Ampliable a 2kbytes
106kbps
2 ISO14443 Tipo A Sólo Lectura
Lectura/Escritura
48 bytes
Ampliable a 2kbytes
106kbps
3 Sony FeliCa Sólo Lectura 2kbytes 212kbps
4 ISO14443 Tipo A
y B
Sólo Lectura
Lectura/Escritura
32kbytes 106kbps
424kbps
Ilustración 14 Ejemplos de etiquetas
12
1.5 TIPOS DE REGISTRO
Los registros se utilizan para almacenar datos en las etiquetas.
RTD (register type definition) provee las pautas para la especificación de los tipos de registros [9]. Los
siguientes son tipos de registros RTD.
RTD texto: Es el tipo simple y contiene una cadena de texto en codificación Unicode. Puede
utilizarse como si se tratara de texto plano, aunque realmente se ideó para añadir metadatos
de otros registros dentro de la etiqueta.
RTD URI: Serie de datos que identifican un recurso en concreto. Los recursos a identificar
pueden ser de diferentes tipos, ya que la información puede estar almacenada en teléfonos,
direcciones de correo electrónico, etc. Así, la etiqueta que incorpore esta información permitirá
remitir al usuario a un determinado recurso.
RTD smart poster: Este RTD engloba la mayor parte de los usos finales. Se define como una
estructura que contiene a las RTD anteriores además de un ícono y acciones de control.
RTD control genérico: Da acceso a funciones o aplicaciones que no puedan ser expresadas
mediante otros RTD. Además permite enviar ordenes a otros dispositivos, se logra incluso
seleccionar qué aplicación se desea que ejecute la orden.
RTD Firma: Contiene en la etiqueta una firma digital para los contenidos como método de
seguridad. Se puede usar una sola firma para todo un contenido, firmar sólo otros registros o
grupo de registros, además pueden usarse diferentes firmas para diferentes registros.
13
2 INTRODUCCIÓN A LA GESTIÓN DE UN ESTACIONAMIENTO A TRAVÉS DE LA
TECNOLOGÍA NFC En esta segunda sección se hablará sobre la implementación de la tecnología NFC en la gestión de un
estacionamiento, el propósito es auxiliar al usuario, por lo tanto plantearemos la problemática y
desarrollaremos una simulación en la plataforma de programación “C”. Asimismo, mostraremos los
resultados obtenidos.
2.1 OBJETIVO
Implementar una aplicación con ayuda de la tecnología NFC que facilite el acceso y gestión en un
estacionamiento.
2.2 DESCRIPCIÓN DEL PROBLEMA
Hoy en día, ir a un estacionamiento público puede causar una gran pérdida de tiempo, ya que en
muchas ocasiones es difícil encontrar un lugar para dejar el automóvil o en ocasiones no hay lugar. En
algunos casos también puede suceder que se pierda la ubicación del automóvil al estar en un
estacionamiento de gran capacidad y debido a esto, se podría no cumplir con la tolerancia dada por la
tienda o centro comercial para abandonar las instalaciones. También existe la posibilidad de perder el
boleto obtenido al ingresar al estacionamiento. Este tipo de problemas causan una gran pérdida de
tiempo y en algunos casos también causan pérdidas de dinero al tener que pagar algún tipo de multa o
la necesidad de pagar el servicio para abandonar el estacionamiento y buscar un lugar en la calle.
Con la tecnología NFC se pretende facilitar al usuario el proceso de entrada y salida del
estacionamiento público utilizando un teléfono celular con capacidad NFC. El propósito es auxiliar al
usuario a reducir el tiempo de búsqueda de lugar de estacionamiento así como un mejor control del
tiempo de estancia.
2.3 DESARROLLO
Para el desarrollo de esta implementación se propone un diagrama que ejemplifique el funcionamiento
del prototipo a desarrollar (ver Ilustración 15 Diagrama del prototipo a desarrollar).
Ilustración 15 Diagrama del prototipo a desarrollar
14
2.4 ARQUITECTURA FÍSICA
En la arquitectura física se identifican dos elementos que la conforman los cuales son (ver Ilustración
16 Arquitectura física):
Dispositivos NFC: Se utilizarán 2 tipos de dispositivos con el modo de comunicación lectura-
escritura y con modo de operación activo:
Dispositivo sólo lectura: Éste dispositivo hará la consulta a la base de datos, para
mostrar los tres cajones preferenciales disponibles al usuario al momento de ingresar al
estacionamiento.
Etiqueta de escritura: Ésta etiqueta es la encargada de portar los datos de los usuarios
para registrarse en la base de datos.
Base de datos: Almacena la información de cada usuario que ingrese al estacionamiento, así
como los cajones libres y ocupados. Recibe peticiones SQL, enviando respuesta a dichas
recaudaciones.
Ilustración 16 Arquitectura física
15
2.5 ARQUITECTURA LÓGICA
El sistema a desarrollar en este proyecto se ha dividido en dos subsistemas:
El primero de ellos corresponde a la aplicación más importante ésta será la encargada de autolanzarse
cuando una etiqueta NFC se detecte.
El segundo subsistema, a partir de ahí, realizará las consultas y llenado de la base de datos. Ésta se
diseñó en MySQL Workbench; que es una herramienta visual de diseño de bases de datos que integra
desarrollo de software, administración, diseño, creación y mantenimiento para el sistema de base de
datos MySQL.
El diagrama entidad- relación de la base de datos que se muestra a continuación es la simulación de su
implementación (ver Ilustración 17 Diagrama entidad relación).
Ilustración 17 Diagrama entidad relación
16
2.6 SIMULACIÓN DE LA IMPLEMENTACIÓN
Se realizó la simulación de un estacionamiento público en la plataforma de programación C. El
diagrama de bloques del programa principal se muestra en la Ilustración 18 Diagrama a bloques.
Ilustración 18 Diagrama a bloques
Las funciones del programa son:
Control_registro (): El cual imprimirá en pantalla los cajones ocupados en el estacionamiento (ver Ilustración 19 Control de registro). Cajones_libres (): Esta función imprime los tres primeros lugares del estacionamiento (ver
Ilustración 20 Cajones libres).
Ilustración 20 Cajones libres
Esta simulación describe el comportamiento futuro que debe seguir el sistema del estacionamiento para que pueda ser aplicada con la tecnología NFC.
Ilustración 19 Control de registro
17
3 RESULTADOS El programa se conecta a la base de datos MySQL por medio de lenguaje SQL (ver código de programa
en el anexo A).
Al iniciar el programa muestra el número total de cajones que tiene el estacionamiento y un menú en
el que se puede elegir entre 4 opciones, las cuales son las siguientes (ver Ilustración 21 Menú inicial):
0.- salida.
Esta opción sale del programa.
1.-Entrada de un coche.
Muestra los 3 primeros lugares preferenciales desocupados del estacionamiento para que
posteriormente se elija el cajón que se desea ocupar, no es necesario elegir uno de los que el programa
sugiere.
Una vez elegido el cajón se debe proporcionar la placa para ingresarla a la base de datos (ver
Ilustración 22 Opción1).
Ilustración 21 Menú inicial
Ilustración 22 Opción1
18
En caso de que el cajón elegido esté ocupado, se mostrará un mensaje en el que se nos indica que el
lugar ya está ocupado y se mostrará de nuevo el menú principal (ver Ilustración 23 Opción 1, cajón
ocupado).
2.-Ver los registros de entrada.
Muestra todos los datos existentes en la base de datos y vuelve a mostrar el menú principal (ver
Ilustración 24 Registros).
Ilustración 23 Opción 1, cajón ocupado
Ilustración 24 Registros
19
3.- Salida de un auto.
Para la salida de un auto se debe proporcionar el número de cajón que se desea desocupar.
En caso de que este cajón seleccionado se encuentre desocupado se mostrará un mensaje que lo
indique (ver Ilustración 25 Cajón desocupado).
En cambio si el cajón se encuentra ocupado se muestra en la pantalla el número de cajón, la placa y el
monto a pagar para que posteriormente se elimine de la base de datos. Se vuelve a mostrar el menú
principal (ver Ilustración 26 Registro de salida).
Ilustración 25 Cajón desocupado
Ilustración 26 Registro de salida
20
4 INSTALACIÓN DE LIBRERÍA NFC Para la instalación de la librería NFC en Linux, Ubuntu v.13.04 [12] se sugiere seguir los siguientes pasos
desde la terminal.
Descargar y extraer el archivo libnfc como sigue:
Instalación de la libreria libnfc en el sistema.
Conectar un dispositivo NFC, colocar una etiqueta y comprobar la instalación.
$ sudo apt-get install libusb-dev libpcsclite-dev
$ git clone https://code.google.com/p/libnfc/
$ cd libnfc
$ git checkout libnfc-1.7.1
$ git clean -d -f -x
$ #rm ../libnfc*.deb
$ git://anonscm.debian.org/collab-maint/libnfc.git
$ git fetch anonscm
$ git checkout remotes/anonscm/master debian
$ git reset
$ dpkg-buildpackage -uc -us -b
$ sudo apt-get install libusb-0.1-4 libpcsclite1 libccid pcscd
$ sudo dpkg -i ../libnfc*.deb
$ nfc-list
$ git remote|grep -q anonscm||git remote add anonscm
21
En caso de ocurrir error y no detectar algún dispositivo NFC (ver Ilustración 27 Error de instalación).
Se necesita cargar los módulos de NFC automáticamente por lo que se ejecutará el modprobe. Este
fichero modeprobe describe la estrategia a seguir para cargar dinámicamente módulos en el núcleo de
Linux. Simplemente se muestra un ejemplo de cómo compilar y utilizar los módulos.
Crear:
Contenido:
Desconectar el dispositivo y descargar los módulos.
Conectar de nuevo el dispositivo NFC, colocar una etiqueta y comprobar la instalación (ver Ilustración
28 Conectado a dispositivo NFC).
Ilustración 27 Error de instalación
$ / etc / modprobe.d / blacklist-libnfc.conf
pn533blacklist
blacklist nfc
$ sudo modprobe –r pn533 NFC
$ sudo nfc-list
Ilustración 28 Conectado a dispositivo NFC
22
5 TRABAJO FUTURO Se espera poder realizar la lectura y las modificaciones en la base de datos con los dispositivos NFC al
igual que las lecturas de las etiquetas.
6 CONCLUSIÓN
En este proyecto se obtuvieron conocimientos sobre la tecnología NFC, se dieron a conocer las
aplicaciones más importantes sobre NFC, se realizó un programa que simula la gestión de un
estacionamiento con el cual se obtuvieron resultados satisfactorios. La consulta de la base de datos y
en sí la simulación logra el objetivo inicial. En el proceso de instalación de la librería libnfc para la
lectura del dispositivo NFC se tuvo un problema al no poder encontrar el comando para manipularlo,
esto queda como trabajo futuro.
Como se describe en este documento, la tecnología NFC cumple con todas las características
necesarias para el desarrollo de cualquier aplicación aplicada a la comunicación
23
7 REFERENCIAS
[1]http://www.revista.unam.mx/vol.11/num3/art33/NFC.swf
[2]http://www.nfcon.es/2010/12/22/que-es-nfc-near-field-communications-espana/
[3]http://www.technoreeze.com/2011/05/22/near-field-communication-nfc-y-sus-aplicaciones- en-
la-telefonia-movil/
[4]http://mundonfc.wordpress.com/2012/02/08/diferencia-entre-nfc-y-rfid/
[5]http://www.poderpda.com/editorial/8-escenarios-en-los-que-el-nfc-trabajaria-perfectamente/
[6]http://www.bloguismo.com/tecnologia/nfc-convierte-al-movil-en-nexo-entre-la-vida-digital-y-
nuestro-mundo-real/
[7]http://www.poderpda.com/tag/control/
[8]https://www.inteco.es/Seguridad/Observatorio/Articulos/CdN_NFC
[9] http://dspace.epn.edu.ec/bitstream/15000/9156/3/T11646%20C.pdf
[10]http://books.google.com.mx/books?id=-
4tzAgAAQBAJ&pg=PA36&lpg=PA36&dq=posters+inteligentes+nfc&source=bl&ots=_B7bqjDBd5&sig=m
BNF0TWQ6u3WxlFs2vQ-HUfBgGI&hl=es-419&sa=X&ei=PngWU-
LuLIjh2QWYj4GoDA&ved=0CI0BEOgBMA4#v=onepage&q&f=false
[11] http://laculturadelmarketing.com/mobile-marketingrealidad-o-eterna-promesa/
[12] http://nfc-tools.org/index.php?title=Main_Page
24
ANEXO A. Código del programa
Este anexo muestra el código del programa y una detallada explicación sobre las conexiones y modificaciones a
la base de datos.
//Bibliotecas utilizadas.
#include <my_global.h>
Librería para base de datos MySQL.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define Cos_H 15
#define TAM 10
struct Registro
{
int num_cajon;
};
int cajones_libres(int *cajon)
{
int i,aux=0;
for(i=0;i<=TAM;i++)
{
if(cajon[i] == 0)
{
printf("Cajon %d \n",i);
aux++;
if(aux==3)
i=TAM-1;
}
}
return aux; }
int main (int arg, char **argv)
{
int i,var=-1,num,l=0,x,y;
char hr;
int carroo;
int cajon[TAM];
int hor = time(NULL);
char line[1000];
//Conexión a la base de datos especificada
// Nombre del servidor.
// Nombre del usuario.
// Contraseña.
// Nombre de la base de datos.
#include <mysql/mysql.h>
char *server = "localhost";
char *user = "root";
char *password = "basededatos";
char *dbname="Estacionamiento1";
25
char consulta0[1024], consulta[1024];
char pl[1024];
srand(hor);
struct Registro registro1[TAM];
for(i=0;i<TAM;i++)
{
cajon[i] = 0;
registro1[i].num_cajon=928374;
}
printf("\n\t\t TOTAL DE CAJONES EN EL ESTACIONAMIENTO: 0 AL %d \n\n",
TAM-1);
int op=1;
FILE *fp;
while(op!=0){
printf("Elija una opcion del menu\n\n");
printf("1.........Entrada de un coche\n");
printf("2.........Ver los registros de entada\n");//base de datos
printf("3.........Salida de un auto (Mostrara el registro y se
eliminara de la base de datos)\n");
printf("0.........SALIR\n");
scanf("%d",&op);
switch(op) {
case 1 :
printf("\n\tLugares sugeridos\n");
y=cajones_libres(cajon);
if(y != 0)//osea si hay lugares
{
printf("\n\n\tElige un lugar\n");
scanf("%d",&num);
if(cajon[num]==0)
{
cajon[num]=1;
fprintf(stdout,"\nINGRESE LA PLACA\n");
fscanf(stdin,"%s", pl);
//Nos conectamos a la base de datos
MYSQL *conn;
conn = Esta función crea una nueva conexión
inicializada.
mysql_init(NULL);
26
Esta función lo que hace es recibir la base de datos con la que trabajaremos
(HOST,USER,PASS,DB)que fueron constantes definidas al principio del código,
y establecer la conexión a la base de datos.
//Insertamos a la base de datos los registros
sprintf(consulta, );
Esta función recibe la conexión ya inicializada y creada, una cadena de
caracteres para agregar al registro. Luego en el cuerpo de la función se
declara una cadena de caracteres llamada consulta para guardar la consulta a
realizar
if(mysql_query(conn,consulta)==0)
{
fprintf(stdout,"\nDato ingresado correctamente\n");
}
}
else
printf("\t ****Ese cajón ya está ocupado****\n");
}
else
printf("No hay lugares disponibles\n\n");
break;
case 2:
fprintf(stdout,"\n\n Datos actuales en la Base de Datos\n");
// MYSQL: Este tipo de dato representa una conexión a una DB mysql.
//Representa una fila de datos en una consulta mysql.
//Representa el resultado de una consulta mysql.
// Es un untero a una conexión mysql, se utiliza para
representar la conexión y realizar las instrucciones
SQL.
conn=mysql_init(NULL);
mysql_real_connect(conn,server,user,password,dbname,0,NULL,0);
sprintf(consulta0, );
Instrucción para
seleccionar la tabla de
la base de datos.
MYSQL_ROW row;
MYSQL_RES *res;
MYSQL *conn;
mysql_real_connect(conn,server,user,password,dbname,0,NULL,0);
INSERT INTO REGISTROS(num_cajon,placa,pagar)VALUES
('%d','%s','%d')",num,pl, cos_H
"SELECT * FROM REGISTROS"
27
if( ) query recibe la conexión y realiza la
consulta.
{
res=mysql_use_result(conn);
printf(" | CAJON | \t | PLACAS |\n\n");
while(( ))Recibe la respuesta a la consulta
y muestra los datos.
{
printf("\t %s",row[0]);
printf("\t \t %s\n",row[1]);
}
printf("\n");
if(! ) Devuelve 0 si no hubo errores en la consulta y
pregunto si hay errores.
{
printf("Error de lectura: [%s]\n", ) Imprime mensaje
de error y se
encarga de
mostrar el error
generado.
}
}
break;
case 3:
printf("¿Que cajon desea desocupar?\n");
scanf("%d",&carroo);
if(cajon[carroo]==1)
{
MYSQL *conn;
conn=mysql_init(NULL);
mysql_real_connect(conn,server,user,password,dbname,0,NULL,0);
sprintf(consulta0,"SELECT * FROM REGISTROS");
if(mysql_query(conn,consulta0)==0)
{
res=mysql_use_result(conn);
printf(" | CAJON | \t | PLACAS |\t| PAGAR |\n\n");
while((row=mysql_fetch_row(res)))
{
printf("\t %s",row[0]);
printf("\t \t %s",row[1]);
printf("\t \tC %s\n",row[2]);
mysql_query(conn,consulta)
0)==0
row=mysql_fetch_row(res
)
mysql_eof(res)
mysql_error(conn)
28
}
}
sprintf(consulta, );
Esta función DELETE es para el caso de la eliminación de algún cajón.
if(mysql_query(conn,consulta)==0)
{
fprintf(stdout,"\nCajon desocupado correctamente\n");
}
cajon[carroo]=0;
}
else
printf("\n\t********Ese cajón está desocupado*********\n");
break;
case 0:
return 0;
break;
default :
printf("No existe esta opcion\n");
}
}
return 0;
}
"DELETE FROM REGISTROS WHERE num_cajon ='%d'",carroo