Introduction: NFC Arduino Y Android Cap 1

Os presentamos una nueva serie de tutoriales en la que trastearemos con la tecnología NFC, aun llevando algunos años en el mercado no termina de extenderse al publico general. Y es que esta tecnologia tiene muchas utilidades que pueden hacer cambiar nuestra interacción con el mundo.

Puedes seguir esta serie en este Instructables o en nuestra página web: www.jalcdeveloper.com donde podrás encontrar otras muchas series.

En este primer capítulo, veremos una breve introducción al NFC, así como las placas que hay disponibles para conectar al Arduino, jugaremos un poco con los TAG’s. Todo lo que aprendamos en la serie de tutoriales lo acabaremos utilizando para crear un mini proyecto de una cerradura electrónica que podremos abrir al aproximar nuestro móvil.

Step 1: Que Es El NFC Y Como Funciona

NFC (Near Field Communication) es una tecnología de comunicación inalámbrica, de muy corto alcance entre los 5-10cm y trabaja a una frecuencia de (13,56Mhz). La gran ventaja de esta tecnología está en la velocidad de comunicación, que es casi instantánea sin necesidad de emparejamiento previo, ni claves, como sucede en la comunicación con bluetooth o wifi.

Su corto alcance se puede es una ventaja hacia la seguridad ya que para poder comunicar los dispositivos tienen que estar prácticamente pegados uno al otro. Los dispositivos NFC tienen integrados una antena en forma de espiral que envía los datos necesarios mediante inducción de un campo magnético. La tecnología NFC puede funcionar de dos formas diferentes:

Activa: En este caso los dos elementos que intervienen en la comunicación generan un campo electromagnético e intercambian los datos necesarios. Un ejemplo sería el traspaso de información entre dos móviles.

Pasiva: En este caso sólo hay un dispositivo capaz de generar un campo electromagnético. El otro dispositivo aprovecha el campo generado por el primero para recuperar la energía necesaria para enviar los datos. El ejemplo típico sería el del intercambio de datos entre un móvil y una etiqueta NFC.

Step 2: Que Necesitamos

Después de rollo teórico vamos a ver que necesitamos para seguir estos tutoriales y experimentar con el NFC.

Necesitamos los siguientes componentes:

  • Arduino Leonardo ( no sirve un Arduino Uno)
  • Placa NFC con chip PN532
  • Un móvil Android con soporte NFC.

Step 3: Placas NFC Para Arduino

En el mercado existen varias placas para poder añadir NFC a nuestros proyectos con Arduino como ejemplo existen:

En nuestro caso hemos optado por la placa de “ElecHouse PN532 NFC V3”, por su precio y tamaño. La programación y configuración son todas las placas bastante similares ya que se basan en el chip PN532 de NXP ( http://www.elechouse.com ).

La placa NFC de elechouse, soporta comunicación por I2C, SPI y HSU ( este último es la típica comunicación serie), aquí hay que tener en cuenta que la placa permite la comunicación I2C y HSU a 5V mientras que la SPI solo a 3.3V.

En nuestros ejemplos probaremos con HSU, decir que esta comunicación funciona a 115Kbps, este es el motivo por el cual necesitamos como mínimo un Arduino Leonardo, este dispone de dos puertos serie por hardware. ( Para los que estéis pensando en utilizar un puerto serie por software os recuerdo que este tiene una limitación de velocidad de 9,6Kbps, con lo que no funcionaria correctamente ).

Step 4: Las Etiquetas O Tags NFC

Las etiquetas son pequeñas memorias ( pueden almacenar hasta 1 Kbyte ) que entran dentro del grupo de elementos pasivos, esperando que un elemento activo los despierte, para enviar la información que contienen.

Podemos almacenar casi cualquier tipo de información, la dirección de un contacto, una posición gps, valores numéricos, enlaces a internet, tenemos un sinfín de posibilidades.

Step 5: ¿ Que Nos Permiten Hacer ?

Con los tags NFC tiene multitud de utilidades, actualmente las más comunes son el pago con en los comercios con nuestro terminal móvil, control de accesos, tarjetas para el transporte público, automatización de tareas con nuestro móvil, etc.

Pero no os aburriré con todas las posibilidades, eso corre a cargo de la vuestra imaginación, en este sitio web queremos enseñaros a utilizar esta tecnología para que podáis implantarlo en vuestros proyectos.

Step 6: Programando Tags Con Nuestro Móvil

Por lo normal con la placa de ElectHouse, viene acompañada de un par de Tag’s de muestra, uno de tipo tarjeta y otro de tipo llavero. Hay multitud de tipos diferentes, tamaños, colores, materiales, etc. Dependiendo del uso que queramos darle.

Vamos a jugar con estos TAG’s con nuestro móvil, para ello os recomiendo que instaleis una aplicación de NXT que se llama TagWriter, podeis encontrarla en la Play Store de Google. Esta aplicación nos permite, leer, escribir, modificar o borrar cualquier etiqueta, de una manera muy simple.

Step 7: Paso 1: Leer Un Tag

Vamos a ver un ejemplo de leer una etiqueta de tipo llavero. Abrimos la aplicación TagWriter y vamos al menú “View”.

El programa nos pide que acerquemos la etiqueta. Sitúa la etiqueta ( Tag ) detrás del móvil.

Al acercar la etiqueta (Tag) esta se activa y podemos leer la información que contiene en su memoria.

Lo más probable es que las etiquetas estén vacías, así que vamos a ver como podemos guardar información en la memoria de la etiqueta.

Step 8: Paso 2: Escribir Una Etiqueta

Podemos guardar multitud de tipos de datos en una etiqueta NFC, como puede ser un contacto, un dirección web, un dirección de email, un nº de teléfono etc.!!! así nuestro móvil en función de la información guardada realiza una tarea por defecto al leer el tag, por ejemplo si guardamos un dirección de internet al leer la etiqueta nuestro móvil abre automáticamente el navegador web con la dirección a la página que estaba guardada en la memoria de la etiqueta.

Si volvemos ha entrar en la app TagWriter seleccionamos la opción de "Create, write and store" nos aparece otra pantalla en la que marcamos "New". Tenemos una lista de todos los tipos de información que podemos guardar, para nuestro ejemplo elejimos "URI" para guardar la dirección web de JALC developer live.

Escribimos la dirección y en la siguiente pantalla nos muestra diferentes opciones que dejaremos tal y como aparecen, tambien nos indica el tamaño que ocupa la información, hay que tener en cuenta que esta información no sobrepase la capacidad de la memoria de la etiqueta.

Finalmente solo tenemos que acercar la etiqueta a la parte trasera de móvil y esperar a que nos aparezca la pantalla de confirmación.

Si ahora cerramos la app TagWriter y acercamos el móvil a la etiqueta veremos como se abre de forma automática el navegador con la pagina web que hemos grabado.

Step 9: Paso 3: Conexiones Con Arduino

Hemos visto como leer y grabar etiquetas con nuestro móvil, pero y si queremos leerlas desde Arduino, primero de todo tenemos que conectar el modulo NFC a nuestro Arduino tal y como vemos en el esquema y asegurarnos que los inteterruptores (switch) de configuración de la placa están en OFF para que funcione en modo HSU ( comunicación serie )

Step 10: Paso 4: Librerías Arduino

Ya existen diferentes librerías que nos facilitaran la programación para Arduino. Nosotros hemos utilizado la de Electhouse y las de Don Coleman que puedes descargar desde Github.

https://github.com/elechouse/PN532

Esta libreria nos ayuda en la comunicación con el chip NFC PN532

https://github.com/don/NDEF

Esta otra libreria nos facilita la comunicacion con el protocolo de NFC y Mifare utilizado en las etiquetas.

Step 11: Paso 5: Programa Arduino

Con todos los pasos anteriores completados, llega el momento de escribir un pequeño programa para Arduino para leer los datos que hemos grabado en nuestra etiqueta.

Podeis descargar el codigo desde Github

https://github.com/jalucenyo/NFC-Arduino-Android

Importamos las librerías para utilizar el chip PN532 en modo HSU y la librería para el protocolo NfcAdapter que nos facilita todo el trabajo.

Al acercar la etiqueta podemos ver como en el "Monitor serie" aparece la información que hemos grabado anteriormente.

Step 12: En El Próximo Capítulo

Hemos visto que es el NFC que podemos hacer con esta tecnología y jugado un poco con las etiquetas tanto en Arduino como en Android. En el próximo capitulo veremos otra funcionalidad del NFC la comunicación "P2P", que nos permite intercambiar información entre dos dispositivos que tengan esta tecnología. Com ejemplo veremos como enviar información de nuestro móvil al Arduino cuando estén próximos uno con el otro. Cualquier duda o sugerencia no dudéis en dejar un comentario.