contenido148.206.53.84/tesiuami/uami16710.pdf · 1.4 tipos de tarjetas ... programación con la...

28
1

Upload: hatu

Post on 05-Oct-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

1

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