NFC práctico: monta tu propio laboratorio |
NFC es la tecnología del futuro, o mejor dicho, del presente. Ya son muchos los lugares del mundo donde se está apostando por su uso, ya sea para micropagos, transporte, sistemas de acceso y casi todo lo que se nos pueda ocurrir (en países como Japón o Corea hace años que se usa de forma habitual). Incluso se puede realizar la lectura de tags desde un teléfono móvil con esta tecnología para realizar acciones como silenciar el teléfono, sincronizar datos, etc.
NFC se basa en el estándar ISO/IEC 18092, publicado a finales de 2003, y es compatible con otros estándares como ISO/IEC 14443 A/B (RFID) e ISO/IEC 15693 (FeliCa – Sony). Se trata, como sabréis, de una tecnología de comunicación inalámbrica de corta distancia (normalmente menos de 10 cm), alta frecuencia (13'56 MHz) y baja velocidad (normalmente hasta 424 Kbps). A diferencia de RFID, NFC es capaz de realizar una comunicación bidireccional, y, a diferencia de Bluetooth, su tiempo de establecimiento de la comunicación es mucho menor.
El objetivo de este post no es explicar las virtudes y funcionamiento de NFC, sino dar unos consejos útiles para montar un laboratorio para jugar con esta tecnología. Lo primero que necesitamos es un lector/escritor NFC. Después de dar muchas vueltas, se puede llegar a la conclusión de que los más usados para este tipo de menester son:
- ACR122U (60$ aprox.)
- RC-S330/360 (80$ aprox.)
- SCL3710/11 (35$ aprox.)
- PN532 Breakout Board (50$)
Los tres primeros llevan un chip PN53x, usan la pila PC/SC para comunicarse y se conectan mediante USB. Existe otra alternativa, la cuarta opción, que es comprar una placa con este tipo de chip, fabricada por Adafruit Industries. Esto nos da más flexibilidad en cuanto al modo de comunicación con el ordenador y muchas más cosas que podéis ver en su especificación. Hay que tener en cuenta que hay que elegir dispositivos que sean compatibles con los proyectos más activos en cuanto a desarrollo de NFC, como pueden ser libnfc y nfcpy. También se puede usar un smartphone como el Samsung Galaxy Nexus, por ejemplo, pero de cara a jugar y programar nuestras propias herramientas creo que es mejor trabajar con un lector/escritor con conexión al ordenador.
Me voy a centrar en la placa NFC que he comentado (PN532). Cuando se recibe en casa no está lista para trabajar, hay que soldar los pines para elegir el interfaz de comunicación deseado (UART, SPI o I2C). En mi caso, al usar un cable FTDI para la conexión con el ordenador, tenía que soldar también estos pines (los 5 pines de la parte izquierda de la imagen de más abajo). Hay páginas que explican muy bien los pasos a seguir para realizar esta tarea, además de poder preguntar dudas en el propio foro de Adafruit.
Con esto tenemos el hardware preparado, ahora toca instalar el software apropiado. El proyecto que parece más maduro en cuanto a desarrollo de herramientas NFC es libnfc, creado a principios de 2009. En Python tenemos pynfc y nfcpy, siendo este último el más activo y el más recomendable de los dos. A la hora de instalar libnfc tenemos, además de las instrucciones de la página oficial, otras páginas y foros que nos ayudarán en esta labor. Hablando de Ubuntu, los pasos que se pueden seguir para su instalación son los siguientes (las versiones de paquetes pueden variar):
$ sudo apt-get install libusb-dev libpcsclite-dev
$ sudo apt-get install libusb-0.1-4 libpcsclite1 libccid pcscd libftdi1
$ wget http://libnfc.googlecode.com/files/libnfc-x.x.x.tar.gz
$ tar -xvzf libnfc-x.x.x.tar.gz
$ cd libnfc-x.x.x
$ ./configure --with-drivers=pn532_uart --enable-serial-autoprobe
$ make clean
$ make
$ make install
Si todo está bien, colocando una tarjeta RFID o un tag NFC encima del lector y usando el comando nfc-list deberíamos ver algo parecido a esto:
Una vez llegados a este punto ya tenemos el laboratorio casi preparado. Sólo nos falta algo que leer. Podemos optar por las muchas tarjetas de gimnasios, transporte, sistemas de acceso, etc. de tecnología RFID que usamos diariamente, pero, ya que estamos hablando de NFC, lo suyo sería buscar una tarjeta de pago sin contacto de alguna entidad bancaria o similar. Además, también podemos comprar unos cuantos NFC Forum tags para hacer pruebas con nuestros flamantes smartphones equipados con NFC. En posteriores posts daremos algunas ideas de lo que podemos hacer ahora que tenemos nuestro laboratorio listo.
Nota: Publicado originalmente en el blog de S21sec
Hola!, estoy intentando
Hola!, estoy intentando realizar el proyecto y tengo un lio...
Explico, tengo el modulo nfc v3 pn532 (el que es cuadrado y de color rojo) y tambien tengo el modulo CP2102 (USB to TTL), entonces no se como poderlo configurar para que me lo lea, he intentado de todo poniendo todos los drivers, uart, usb... pero nada, aun asi no me lo detecta, tambien en otros blog explican como hacerlo en arduino, y tampoco
¿Alguna solución?
Hola, Un favor, puedes
Hola,
Un favor, puedes mostrar um ejemplo de grabado de datos en una tarjeta NFC usando las funciones de la libnfc?.
Te agradezco desde ya por la ayuda.
Abrazo
Edgard