lunes, 9 de mayo de 2016

ANDROID NFC CON FIREBASE Y RASPBERRY PI



ANDROID NFC CON FIREBASE Y RASPBERRY PI









Descripción del proyecto 

Cuando el celular se acerca al tag NFC, lee la información (previamente guardada en este Tag), a través de NDEF  (NFC Data Exchange Format) y  con  Java (Android),  se compara el  texto obtenido del tag, para luego comunicarse con API de Firebase, 
Ejemplo, si lo que se leyó del tag1 es “sala”  entonces cambia el estado en firabese en la URL determinada.
Paralelo a esto, en Raspberry Pi (Python), se está accediendo continuamente a la misma URL de Firebase, lo que permite obtener el valor de los estados de (“sala” y “habitación”) y posteriormente controlar el  GPIO dependiendo el valor de estos estados.


ALGO DE TEORÍA 


Tecnología NFC

Near field communication (NFCcomunicación de campo cercano en español) es una tecnología de comunicación inalámbrica, de corto alcance y alta frecuencia que permite el intercambio de datos entre dispositivos (tomado de wikipedia)
Para más información sobre como se trabaja está tecnología en Android 
http://developer.android.com/intl/es/guide/topics/connectivity/nfc/index.html


NDEF

The NFC Data Exchange Format (Formato de intercambio de datos)  (NDEF) es un formato de datos normalizado que se puede utilizar para intercambiar información entre cualquier dispositivo NFC compatible y otro dispositivo NFC o etiqueta
En android



1. Instalar NFC Tools en Android.

Seleccionar escribir, y Añanidr un registro de texto, luego acerque la tarjeta al lado trasero del celular.
Si le arroja algún error, puede primero formatear la tarjeta o Tag NFC, y volver a intentar la escritura.

Para este ejemplo, hay que escribir   "sala"   (Sin comillas) y en otro tag, "habitacion", (tal como está sin acento)


  NFC Tools: captura de pantalla   NFC Tools: captura de pantalla



2. Aplicación Android

Les comparto el proyecto en Android Studio, ahi pueden encontrar el apk
El proyecto android se encarga de procesar la lectura del tag NFC, y de acuerdo a al texto obtenido se actualiza el estado en firebase, de una URL en especifico.


Solo voy a mostrar el main.java que es el archivo donde está la lógica.
El proyecto completo lo pueden descargar en GitHub