SlideShare a Scribd company logo
1 of 33
Download to read offline
GDG DevFest Córdoba - 31 Oct 2014
Comunicación NFC entre
Raspberry Pi y Android
Nacho Álvarez
@neonigmacdb
✉ neonigma@gmail.com
http://www.nacho-alvarez.es
Acerca de mí
● Ingeniero en Informática por la UCO
● Trayectoria profesional:
○ Soporte Servicio Informática UCO
○ Desarrollo Web
○ Desarrollo / Integración distribuciones GNU/Linux
○ Android mobile + backend developer (WUL4)
○ Actualmente: Área de Innovación (Redsys)
1/32
Índice
1) NFC
a) Visión general
b) Modos
c) Beam, NDEF y ejemplo
2) Raspberry Pi
a) Definición y proyectos
b) Componentes
c) Opciones
d) GPIO
3) Explore-NFC
4) Demo 2/32
NFC - Visión general
● Near Field Communication es una tecnología de comunicación
inalámbrica, de corto alcance y alta frecuencia que permite el
intercambio de datos entre dispositivos.
● Los estándares de NFC cubren protocolos de comunicación y
formatos de intercambio de datos, y están basados en ISO 14443
(RFID, radio-frequency identification) y FeliCa
● El protocolo NFCIP-1 puede funcionar a diversas velocidades
como 106, 212, 424 o 848 Kbit/s (BLE4 24Mbit/s) y trabaja en la
banda de 13,56MHz 3/32
● En el modo R/W, podemos leer tags NDEF y tarjetas contactless como las
relativas al uso de transportes.
● En el modo P2P se puede realizar un intercambio de información entre el
móvil y otro dispositivo NFC gracias a Android Beam, una API que sin
embargo aún se queda un poco corta.
● El modo CE (Card Emulation) fue introducido en versiones posteriores
de Gingerbread para soportar el uso de Google Wallet. El elemento seguro
embebido se conecta al controlador NFC a través de una conexión S2C
(NFC-WI).
NFC - Modos en Android
4/32
NFC - Host Card Emulation
● Novedad de Android 4.4 (KitKat): soporte de la
especificación Host Card Emulation (HCE) para pagos
móviles con NFC
● Cualquier aplicación puede representar virtualmente y
de forma segura a través de NFC una tarjeta
inteligente
● Permite realizar una transacción sin necesidad de
usar el Secure Element (elemento seguro). 5/32
NFC - Host Card Emulation
● Aparecen multitud de soluciones con esta
apertura:
○ Visa PayWave
○ Mastercard
○ Vodafone Wallet
○ Isis Mobile Wallet
○ Y algunas más...
6/32
NFC - P2P: protocolo SNEP
● Logical Link Control Protocol (LLCP): define un
protocolo a nivel de capa 2 (enlace de datos) para
soportar comunicación P2P entre dos dispositivos con
NFC.
● Simple NDEF Exchange Protocol (SNEP): protocolo
del NFC Forum que permite a una app de un
dispositivo con NFC intercambiar mensajes NDEF con
otro dispositivo cuando ambos operan en modo P2P.
Hace uso de LLCP para el intercambio de datos.
● NDEF Push Protocol (NPP): protocolo cliente-
servidor de Google que permite la transferencia entre
dispositivos NFC operando en modo P2P.
7/32
Android Beam
● Sistema de transmisión de contenido entre dispositivos
utilizando las tecnologías NFC y/o Bluetooth
● Disponible desde Ice Cream Sandwich
● Si lo que compartimos son URLs o archivos muy poco
pesados se intercambiarán mediante NFC
● Si los archivos son más pesados, como vídeos o fotos, se
activará automáticamente el Bluetooth y se desactivará al
terminarse la transmisión
● Debemos tener visible en la pantalla el contenido a
compartir y unir las partes traseras de los dispositivos 8/32
Mensajes NDEF
● NDEF -NFC Forum Data Exchange Format- es un formato ligero
de mensaje binario diseñado para encapsular una o más cargas
útiles de información dentro de un mensaje simple.
● Un mensaje NDEF contiene uno o más registros NDEF, cada uno
de los cuales transporta una carga de información de tipo
arbitrario.
● Un registro NDEF transporta tres parámetros de cabecera para
describir su payload: tipo, identificador opcional y longitud.
9/32
Mensajes NDEF
10/32
Ejemplo NFC Android
● Ejemplo de transmisión de
un texto personalizado de un
terminal a otro vía NFC (las
partes interesantes)
● Código disponible en: https:
//bitbucket.
org/jialvarez/android-beam-
p2p-demo
11/32
Ejemplo NFC Android
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
Time time = new Time();
time.setToNow();
NdefMessage msg = new NdefMessage(
new NdefRecord[] { createMimeRecord(
"text/plain", “ola k ase”.getBytes())
});
return msg;
}
12/32
Ejemplo NFC Android
public NdefRecord createMimeRecord(String mimeType, byte[] payload) {
byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII"));
NdefRecord mimeRecord = new NdefRecord(
NdefRecord.TNF_MIME_MEDIA, mimeBytes, new byte[0], payload);
return mimeRecord;
}
@Override
public void onNewIntent(Intent intent) {
setIntent(intent);
}
13/32
Ejemplo NFC Android
@Override
public void onResume() {
super.onResume();
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction()))
processIntent(getIntent());
}
void processIntent(Intent intent) {
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.
EXTRA_NDEF_MESSAGES);
NdefMessage msg = (NdefMessage) rawMsgs[0];
mInfoText.setText(new String(msg.getRecords()[0].getPayload()));
}
14/32
Raspberry Pi
● Microordenador lanzado en Febrero 2012 por la Raspberry Pi
Foundation
● Hasta la fecha, han aparecido 3 versiones:
○ Modelo A
○ Modelo B
○ Modelo B+
● Puede comprarse en varias tiendas:
○ RS Online: http://es.rs-online.com/web/generalDisplay.html?
id=raspberrypi
○ Farnell: http://es.farnell.com/raspberry-pi 15/32
Raspberry Pi: Proyectos
● Algunos proyectos interesantes que utilizan Raspberry Pi +
Android
○ Fing + ConnectBot (Obtener IP local + SSH)
○ Streaming video con VLC (Pi) + VLC Beta (Android)
○ Mando remoto de XBMC
○ Control remoto de coches Lego https://www.youtube.
com/watch?v=5K_Eyxi56tk
○ FTP, VNC, etc...
16/32
Raspberry Pi components
SoC Broadcom BCM2835
CPU ARM 1176JZFS a 700MHz
GPU Videocore 4
RAM 512 MB (256 MB al principio)
Video HDMI y RCA
Resolución 1080p
Audio HDMI y 3.5 mm
USB 2 x USB 2.0
Redes Ethernet 10/100
17/32
Raspberry Pi B+
18/32
Opciones NFC Raspberry
● Lectores USB
ACR122U
SCM SCL011
19/32
Opciones NFC Raspberry
● Dispositivos conectados al GPIO
NFC R522
EXPLORE-NFC
20/32
Raspberry Pi - GPIO
● Acrónimo de General Purpose Input/Output
● Este puerto de expansión permite a los periféricos y placas de
expansión acceder a la CPU mediante la exposición de entradas y
salidas. 26 pins en modelo B y 40 pins en B+.
● Ejemplos de programación de GPIO con Scratch: http://pihw.
wordpress.com/lessons/rgb-led-lessons/rgb-led-lesson-2-scratch-
gpio-getting-started/
● Ejemplos con Python: http://makezine.com/projects/tutorial-
raspberry-pi-gpio-pins-and-python/
21/32
Raspberry Pi - GPIO
● SPI
Serial Peripheral Interface:
estándar para controlar un
dispositivo electrónico digital
que acepte un flujo de bits serie
regulado por un reloj
● UART
Universal Asynchronous
Receiver-Transmitter, se
encuentra en placas base,
convierte datos paralelo a serie
● I²C
Inter-Integrated Circuit, para
comunicar microcontroladores y
sus periféricos en sistemas
integrados
22/32
Explore-NFC en Raspberry
● Basado en solución NXP PN512
● Cumple con los tres modos de operación: reader, P2P y Card
Emulation
● Soportada por libnfc, ofrece una interfaz SPI flexible
● Software:
○ libnfc - SDK de bajo nivel
○ nfcpy (no soportado por ahora )
○ Open source code propio - http://www.element14.
com/community/community/designcenter/explorenfc
○ Python Wrapper - https://github.com/svvitale/nxppy 23/32
Software Explore-NFC
● El software se entrega en 3 paquetes: uno por cada modo NFC
● Se descomprime cada paquete y se compila cada aplicación
preparada con CMake
● El código está escrito en C
● Tienen una documentación muy buena: http://www.element14.
com/community/docs/DOC-65447/l/explore-nfc-software-and-
project?ICID=designcenter-devkitnfc-quick
24/32
Demo time!
25/32
Explore-NFC: polling
● Se utiliza para saber de qué tipo es una tarjeta
● Se realiza un proceso continuo de búsqueda de este tipo de
tarjetas:
○ MiFare
○ Felica
○ ISO/IEC 14443B
● También se buscan tarjetas de débito/crédito con NFC
lanzando el PSE: 1PAY.SYS.DDF01 y el 2PAY.SYS.DDF0126/32
Explore-NFC: card emulation
● El sistema consta de tres partes:
○ App Android que permite leer, componer y enviar
mensajes a la Raspberry vía NFC
○ App C para el intercambio de datos
○ App Java que toma el mensaje recibido del
smartphone y lo postea en tu muro de Facebook 27/32
Explore-NFC: card emulation
28/32
Explore-NFC: P2P com
● Ejemplo de transferencia de datos utilizando protocolo P2P
● Enviaremos una imagen de la Raspberry a nuestro terminal
Android
● Se utiliza internamente protocolo LLCP + SNEP
● La imagen se transfiere íntegramente por NFC, con las
limitaciones de velocidad conocidas
29/32
Explore-NFC: own P2P
● Veremos un pequeño programa en Python que simula un
comercio
● El comerciante escribe el importe de la compra del cliente
(como en los pinpads)
● El sistema solicita al cliente que toque su móvil en la
Raspberry
● Se realiza la transferencia de datos necesaria hacia la
Raspberry y el sistema procesa el pago, enviando
confirmación al móvil
● Podemos añadir multitud de elementos: autenticación
biométrica, GCM pushes, tokenización... 30/32
Spam! Sorry...
Contactar con: cromero@uco.es 31/32
GDG DevFest Córdoba - 31 Oct 2014
Comunicación NFC entre
Raspberry Pi y Android
Nacho Álvarez
@neonigmacdb
✉ neonigma@gmail.com
http://www.nacho-alvarez.es

More Related Content

What's hot

Teori bahasa otomata pertemuan 5
Teori bahasa otomata pertemuan 5Teori bahasa otomata pertemuan 5
Teori bahasa otomata pertemuan 5nhiyabelle
 
Shortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma DijkstraShortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma DijkstraOnggo Wiryawan
 
Logika boolean (algoritma&pemrograman 1 b)
Logika boolean (algoritma&pemrograman 1 b)Logika boolean (algoritma&pemrograman 1 b)
Logika boolean (algoritma&pemrograman 1 b)Intan Della Vania
 
Fungsi Vektor ( Kalkulus 2 )
Fungsi Vektor ( Kalkulus 2 )Fungsi Vektor ( Kalkulus 2 )
Fungsi Vektor ( Kalkulus 2 )Kelinci Coklat
 
matematika geodesi-transformasi linier
matematika geodesi-transformasi liniermatematika geodesi-transformasi linier
matematika geodesi-transformasi linieraulia rachmawati
 
INTEGRAL TENTU DAN PENERAPANNYA
INTEGRAL TENTU DAN PENERAPANNYAINTEGRAL TENTU DAN PENERAPANNYA
INTEGRAL TENTU DAN PENERAPANNYAOng Lukman
 
Bab 01 logika mtk diskrit
Bab 01 logika mtk diskritBab 01 logika mtk diskrit
Bab 01 logika mtk diskritKarlFykr
 
00 kuliah-03-01-distribusi-probabilitas-diskret-teoritis
00 kuliah-03-01-distribusi-probabilitas-diskret-teoritis00 kuliah-03-01-distribusi-probabilitas-diskret-teoritis
00 kuliah-03-01-distribusi-probabilitas-diskret-teoritisRaden Maulana
 
Tugas 5.6 kalkulus aplikasi integral tentu (luas bidang datar)
Tugas 5.6 kalkulus aplikasi integral tentu (luas bidang datar)Tugas 5.6 kalkulus aplikasi integral tentu (luas bidang datar)
Tugas 5.6 kalkulus aplikasi integral tentu (luas bidang datar)Nurkhalifah Anwar
 
Matematika Diskrit - 02 pengantar logika (2013)
Matematika Diskrit - 02 pengantar logika (2013)Matematika Diskrit - 02 pengantar logika (2013)
Matematika Diskrit - 02 pengantar logika (2013)KuliahKita
 
Algoritma - prosedur dan fungsi
Algoritma - prosedur dan fungsiAlgoritma - prosedur dan fungsi
Algoritma - prosedur dan fungsiZombie Black
 
Pertemuan 4(Sistem Bilangan)
Pertemuan 4(Sistem Bilangan)Pertemuan 4(Sistem Bilangan)
Pertemuan 4(Sistem Bilangan)formatik
 
operasi arithematik
operasi arithematik operasi arithematik
operasi arithematik Lela Warni
 

What's hot (20)

Teori bahasa otomata pertemuan 5
Teori bahasa otomata pertemuan 5Teori bahasa otomata pertemuan 5
Teori bahasa otomata pertemuan 5
 
Integral dalam ruang dimensi n
Integral dalam ruang dimensi   nIntegral dalam ruang dimensi   n
Integral dalam ruang dimensi n
 
02.logika
02.logika02.logika
02.logika
 
Shortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma DijkstraShortest Path Problem: Algoritma Dijkstra
Shortest Path Problem: Algoritma Dijkstra
 
Logika boolean (algoritma&pemrograman 1 b)
Logika boolean (algoritma&pemrograman 1 b)Logika boolean (algoritma&pemrograman 1 b)
Logika boolean (algoritma&pemrograman 1 b)
 
Kalkulus modul viii turunan
Kalkulus modul viii turunanKalkulus modul viii turunan
Kalkulus modul viii turunan
 
Fungsi Vektor ( Kalkulus 2 )
Fungsi Vektor ( Kalkulus 2 )Fungsi Vektor ( Kalkulus 2 )
Fungsi Vektor ( Kalkulus 2 )
 
matematika geodesi-transformasi linier
matematika geodesi-transformasi liniermatematika geodesi-transformasi linier
matematika geodesi-transformasi linier
 
Pertemuan 7
Pertemuan 7Pertemuan 7
Pertemuan 7
 
INTEGRAL TENTU DAN PENERAPANNYA
INTEGRAL TENTU DAN PENERAPANNYAINTEGRAL TENTU DAN PENERAPANNYA
INTEGRAL TENTU DAN PENERAPANNYA
 
Ho automata
Ho automataHo automata
Ho automata
 
Bab 01 logika mtk diskrit
Bab 01 logika mtk diskritBab 01 logika mtk diskrit
Bab 01 logika mtk diskrit
 
00 kuliah-03-01-distribusi-probabilitas-diskret-teoritis
00 kuliah-03-01-distribusi-probabilitas-diskret-teoritis00 kuliah-03-01-distribusi-probabilitas-diskret-teoritis
00 kuliah-03-01-distribusi-probabilitas-diskret-teoritis
 
Tugas 5.6 kalkulus aplikasi integral tentu (luas bidang datar)
Tugas 5.6 kalkulus aplikasi integral tentu (luas bidang datar)Tugas 5.6 kalkulus aplikasi integral tentu (luas bidang datar)
Tugas 5.6 kalkulus aplikasi integral tentu (luas bidang datar)
 
Sensor dan transduser_2
Sensor dan transduser_2Sensor dan transduser_2
Sensor dan transduser_2
 
01 laporan akhir pdp '16
01 laporan akhir  pdp '1601 laporan akhir  pdp '16
01 laporan akhir pdp '16
 
Matematika Diskrit - 02 pengantar logika (2013)
Matematika Diskrit - 02 pengantar logika (2013)Matematika Diskrit - 02 pengantar logika (2013)
Matematika Diskrit - 02 pengantar logika (2013)
 
Algoritma - prosedur dan fungsi
Algoritma - prosedur dan fungsiAlgoritma - prosedur dan fungsi
Algoritma - prosedur dan fungsi
 
Pertemuan 4(Sistem Bilangan)
Pertemuan 4(Sistem Bilangan)Pertemuan 4(Sistem Bilangan)
Pertemuan 4(Sistem Bilangan)
 
operasi arithematik
operasi arithematik operasi arithematik
operasi arithematik
 

Viewers also liked

Aplicaciones de beacons y NFC
Aplicaciones de beacons y NFCAplicaciones de beacons y NFC
Aplicaciones de beacons y NFCFactoriaapps
 
"Un Modelo de Desarrollo de Escenarios para Interacciones NFC Sensibles al Co...
"Un Modelo de Desarrollo de Escenarios para Interacciones NFC Sensibles al Co..."Un Modelo de Desarrollo de Escenarios para Interacciones NFC Sensibles al Co...
"Un Modelo de Desarrollo de Escenarios para Interacciones NFC Sensibles al Co...3JornadasRFID
 
Conexiones VPN y chip NFC
Conexiones VPN y chip NFCConexiones VPN y chip NFC
Conexiones VPN y chip NFCRicardo Camacho
 
"Receta Móvil: Sistema basado en NFC para personas dependientes" presentada p...
"Receta Móvil: Sistema basado en NFC para personas dependientes" presentada p..."Receta Móvil: Sistema basado en NFC para personas dependientes" presentada p...
"Receta Móvil: Sistema basado en NFC para personas dependientes" presentada p...3JornadasRFID
 
Instalación de windows xp
Instalación de windows xpInstalación de windows xp
Instalación de windows xpJesus Estrada
 
NFC: funcionamiento, usos e implicaciones en seguridad
NFC: funcionamiento, usos e implicaciones en seguridadNFC: funcionamiento, usos e implicaciones en seguridad
NFC: funcionamiento, usos e implicaciones en seguridadSantiago Vicente
 
NFC-Conexiones remotas a bases de datos
NFC-Conexiones remotas a bases de datosNFC-Conexiones remotas a bases de datos
NFC-Conexiones remotas a bases de datosGDGMallorca
 
Near Field Communication (NFC) y sus aplicaciones
Near Field Communication (NFC) y sus aplicacionesNear Field Communication (NFC) y sus aplicaciones
Near Field Communication (NFC) y sus aplicacionesRicardo Monagas Medina
 
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFCCharla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFCJosé Ignacio Álvarez Ruiz
 
Capitulo 22 windows XP
Capitulo 22 windows XPCapitulo 22 windows XP
Capitulo 22 windows XPJorge Alberto
 
CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...
CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...
CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...Pablo Curiel
 
Arquitectura de pagos del futuro en entorno cerrado y Público (Luis Amo, Coges)
Arquitectura de pagos del futuro en entorno cerrado y Público (Luis Amo, Coges)Arquitectura de pagos del futuro en entorno cerrado y Público (Luis Amo, Coges)
Arquitectura de pagos del futuro en entorno cerrado y Público (Luis Amo, Coges)Azkoyen Vending
 
"NFC, móviles y máquinas: accesibilidad inesperada" - Ladislao Aceituno (Re...
"NFC, móviles y máquinas: accesibilidad inesperada" - Ladislao Aceituno (Re..."NFC, móviles y máquinas: accesibilidad inesperada" - Ladislao Aceituno (Re...
"NFC, móviles y máquinas: accesibilidad inesperada" - Ladislao Aceituno (Re...Telefónica Grandes Clientes
 
Tecnología NFC
Tecnología NFCTecnología NFC
Tecnología NFCNFC Blog
 
Tecnología NFC - Betabeers
Tecnología NFC - BetabeersTecnología NFC - Betabeers
Tecnología NFC - BetabeersJM Robles
 
Catalogue fr qw2011
Catalogue fr qw2011Catalogue fr qw2011
Catalogue fr qw2011EUROPAGES
 

Viewers also liked (20)

Aplicaciones de beacons y NFC
Aplicaciones de beacons y NFCAplicaciones de beacons y NFC
Aplicaciones de beacons y NFC
 
"Un Modelo de Desarrollo de Escenarios para Interacciones NFC Sensibles al Co...
"Un Modelo de Desarrollo de Escenarios para Interacciones NFC Sensibles al Co..."Un Modelo de Desarrollo de Escenarios para Interacciones NFC Sensibles al Co...
"Un Modelo de Desarrollo de Escenarios para Interacciones NFC Sensibles al Co...
 
Conexiones VPN y chip NFC
Conexiones VPN y chip NFCConexiones VPN y chip NFC
Conexiones VPN y chip NFC
 
"Receta Móvil: Sistema basado en NFC para personas dependientes" presentada p...
"Receta Móvil: Sistema basado en NFC para personas dependientes" presentada p..."Receta Móvil: Sistema basado en NFC para personas dependientes" presentada p...
"Receta Móvil: Sistema basado en NFC para personas dependientes" presentada p...
 
Instalación de windows xp
Instalación de windows xpInstalación de windows xp
Instalación de windows xp
 
Intelify tags - NFC
Intelify tags - NFCIntelify tags - NFC
Intelify tags - NFC
 
NFC: funcionamiento, usos e implicaciones en seguridad
NFC: funcionamiento, usos e implicaciones en seguridadNFC: funcionamiento, usos e implicaciones en seguridad
NFC: funcionamiento, usos e implicaciones en seguridad
 
NFC-Conexiones remotas a bases de datos
NFC-Conexiones remotas a bases de datosNFC-Conexiones remotas a bases de datos
NFC-Conexiones remotas a bases de datos
 
Near Field Communication (NFC) y sus aplicaciones
Near Field Communication (NFC) y sus aplicacionesNear Field Communication (NFC) y sus aplicaciones
Near Field Communication (NFC) y sus aplicaciones
 
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFCCharla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
Charla nuevas tecnologías Android: realidad aumentada, geolocalización, NFC
 
Capitulo 22 windows XP
Capitulo 22 windows XPCapitulo 22 windows XP
Capitulo 22 windows XP
 
CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...
CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...
CISTI 2013 - SimpleNFC: Simplificación del acceso a servicios del mundo digit...
 
Arquitectura de pagos del futuro en entorno cerrado y Público (Luis Amo, Coges)
Arquitectura de pagos del futuro en entorno cerrado y Público (Luis Amo, Coges)Arquitectura de pagos del futuro en entorno cerrado y Público (Luis Amo, Coges)
Arquitectura de pagos del futuro en entorno cerrado y Público (Luis Amo, Coges)
 
"NFC, móviles y máquinas: accesibilidad inesperada" - Ladislao Aceituno (Re...
"NFC, móviles y máquinas: accesibilidad inesperada" - Ladislao Aceituno (Re..."NFC, móviles y máquinas: accesibilidad inesperada" - Ladislao Aceituno (Re...
"NFC, móviles y máquinas: accesibilidad inesperada" - Ladislao Aceituno (Re...
 
Tecnología NFC
Tecnología NFCTecnología NFC
Tecnología NFC
 
Validadores
ValidadoresValidadores
Validadores
 
Tecnología NFC - Betabeers
Tecnología NFC - BetabeersTecnología NFC - Betabeers
Tecnología NFC - Betabeers
 
Catalogue fr qw2011
Catalogue fr qw2011Catalogue fr qw2011
Catalogue fr qw2011
 
Slides udm-080910
Slides udm-080910Slides udm-080910
Slides udm-080910
 
Validadores NFC
Validadores NFCValidadores NFC
Validadores NFC
 

Similar to Comunicación NFC entre Raspberry Pi y Android

Sysmana 2015 - Comunicación NFC entre Raspberry pi y Android
Sysmana 2015 - Comunicación NFC entre Raspberry pi y AndroidSysmana 2015 - Comunicación NFC entre Raspberry pi y Android
Sysmana 2015 - Comunicación NFC entre Raspberry pi y AndroidJosé Ignacio Álvarez Ruiz
 
Tutorial Near Field Communication (NFC)
Tutorial Near Field Communication (NFC)Tutorial Near Field Communication (NFC)
Tutorial Near Field Communication (NFC)Gabriel Gonzalez Serna
 
CursoProgramacionNFC-Dia1
CursoProgramacionNFC-Dia1CursoProgramacionNFC-Dia1
CursoProgramacionNFC-Dia1Aditium
 
Nfc
NfcNfc
Nfcctme
 
Trabajo practico nº 12
Trabajo practico nº 12Trabajo practico nº 12
Trabajo practico nº 12Jimena
 
Trabajo practico nº 12
Trabajo practico nº 12Trabajo practico nº 12
Trabajo practico nº 12Jimena
 
Protocolos en las capas del modelo osi
Protocolos en las capas del modelo osiProtocolos en las capas del modelo osi
Protocolos en las capas del modelo osimichrom
 
Protocolos en las capas del modelo osi
Protocolos en las capas del modelo osiProtocolos en las capas del modelo osi
Protocolos en las capas del modelo osimichrom
 
Protocolos en las capas del modelo osi
Protocolos en las capas del modelo osiProtocolos en las capas del modelo osi
Protocolos en las capas del modelo osimichrom
 
Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01lucasoliver12
 
MTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
MTM eSEC-ENISE 26Oct - Framework DNIe y CardmoduleMTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
MTM eSEC-ENISE 26Oct - Framework DNIe y CardmoduleMariano Tejedor
 
Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01lucasoliver12
 

Similar to Comunicación NFC entre Raspberry Pi y Android (20)

Sysmana 2015 - Comunicación NFC entre Raspberry pi y Android
Sysmana 2015 - Comunicación NFC entre Raspberry pi y AndroidSysmana 2015 - Comunicación NFC entre Raspberry pi y Android
Sysmana 2015 - Comunicación NFC entre Raspberry pi y Android
 
Tutorial Near Field Communication (NFC)
Tutorial Near Field Communication (NFC)Tutorial Near Field Communication (NFC)
Tutorial Near Field Communication (NFC)
 
CursoProgramacionNFC-Dia1
CursoProgramacionNFC-Dia1CursoProgramacionNFC-Dia1
CursoProgramacionNFC-Dia1
 
Nfc
NfcNfc
Nfc
 
Trabajo practico nº 12
Trabajo practico nº 12Trabajo practico nº 12
Trabajo practico nº 12
 
Trabajo practico nº 12
Trabajo practico nº 12Trabajo practico nº 12
Trabajo practico nº 12
 
Protocolos en las capas del modelo osi
Protocolos en las capas del modelo osiProtocolos en las capas del modelo osi
Protocolos en las capas del modelo osi
 
Protocolos en las capas del modelo osi
Protocolos en las capas del modelo osiProtocolos en las capas del modelo osi
Protocolos en las capas del modelo osi
 
Protocolos en las capas del modelo osi
Protocolos en las capas del modelo osiProtocolos en las capas del modelo osi
Protocolos en las capas del modelo osi
 
Redes informaticas
Redes informaticasRedes informaticas
Redes informaticas
 
D resumenes
D resumenesD resumenes
D resumenes
 
Pract campo
Pract campoPract campo
Pract campo
 
Colegio san carlos
Colegio san carlosColegio san carlos
Colegio san carlos
 
Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01
 
TIC
TICTIC
TIC
 
MTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
MTM eSEC-ENISE 26Oct - Framework DNIe y CardmoduleMTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
MTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
 
Fundamentos del tcp
Fundamentos del tcpFundamentos del tcp
Fundamentos del tcp
 
Tp17
Tp17Tp17
Tp17
 
Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01
 
Tp de informatica 14
Tp de informatica 14Tp de informatica 14
Tp de informatica 14
 

More from José Ignacio Álvarez Ruiz

Servicios Web con Python + web.py (Homenaje a Aaron Swartz)
Servicios Web con Python + web.py (Homenaje a Aaron Swartz)Servicios Web con Python + web.py (Homenaje a Aaron Swartz)
Servicios Web con Python + web.py (Homenaje a Aaron Swartz)José Ignacio Álvarez Ruiz
 
Sistemas de control de versiones distribuidos: Controla las versiones de tu t...
Sistemas de control de versiones distribuidos: Controla las versiones de tu t...Sistemas de control de versiones distribuidos: Controla las versiones de tu t...
Sistemas de control de versiones distribuidos: Controla las versiones de tu t...José Ignacio Álvarez Ruiz
 
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDKSysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDKJosé Ignacio Álvarez Ruiz
 
Sysmana 2017 monitorización de logs con el stack elk
Sysmana 2017   monitorización de logs con el stack elkSysmana 2017   monitorización de logs con el stack elk
Sysmana 2017 monitorización de logs con el stack elkJosé Ignacio Álvarez Ruiz
 
Sysmana 2017 metodologías gestión ágil de proyectos
Sysmana 2017   metodologías gestión ágil de proyectosSysmana 2017   metodologías gestión ágil de proyectos
Sysmana 2017 metodologías gestión ágil de proyectosJosé Ignacio Álvarez Ruiz
 
WUL4 Training Thursday #2 Sistemas de control de versiones distribuidos: GIT
WUL4 Training Thursday #2 Sistemas de control de versiones distribuidos: GITWUL4 Training Thursday #2 Sistemas de control de versiones distribuidos: GIT
WUL4 Training Thursday #2 Sistemas de control de versiones distribuidos: GITJosé Ignacio Álvarez Ruiz
 
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...José Ignacio Álvarez Ruiz
 
Analisis distribuciones GNU/Linux Mayo 2010 (revisado)
Analisis distribuciones GNU/Linux Mayo 2010 (revisado)Analisis distribuciones GNU/Linux Mayo 2010 (revisado)
Analisis distribuciones GNU/Linux Mayo 2010 (revisado)José Ignacio Álvarez Ruiz
 

More from José Ignacio Álvarez Ruiz (9)

Servicios Web con Python + web.py (Homenaje a Aaron Swartz)
Servicios Web con Python + web.py (Homenaje a Aaron Swartz)Servicios Web con Python + web.py (Homenaje a Aaron Swartz)
Servicios Web con Python + web.py (Homenaje a Aaron Swartz)
 
Sistemas de control de versiones distribuidos: Controla las versiones de tu t...
Sistemas de control de versiones distribuidos: Controla las versiones de tu t...Sistemas de control de versiones distribuidos: Controla las versiones de tu t...
Sistemas de control de versiones distribuidos: Controla las versiones de tu t...
 
The blockchain disruption
The blockchain disruptionThe blockchain disruption
The blockchain disruption
 
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDKSysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
 
Sysmana 2017 monitorización de logs con el stack elk
Sysmana 2017   monitorización de logs con el stack elkSysmana 2017   monitorización de logs con el stack elk
Sysmana 2017 monitorización de logs con el stack elk
 
Sysmana 2017 metodologías gestión ágil de proyectos
Sysmana 2017   metodologías gestión ágil de proyectosSysmana 2017   metodologías gestión ágil de proyectos
Sysmana 2017 metodologías gestión ágil de proyectos
 
WUL4 Training Thursday #2 Sistemas de control de versiones distribuidos: GIT
WUL4 Training Thursday #2 Sistemas de control de versiones distribuidos: GITWUL4 Training Thursday #2 Sistemas de control de versiones distribuidos: GIT
WUL4 Training Thursday #2 Sistemas de control de versiones distribuidos: GIT
 
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
Realidad aumentada en Android: reconocimiento de imágenes y geolocalización u...
 
Analisis distribuciones GNU/Linux Mayo 2010 (revisado)
Analisis distribuciones GNU/Linux Mayo 2010 (revisado)Analisis distribuciones GNU/Linux Mayo 2010 (revisado)
Analisis distribuciones GNU/Linux Mayo 2010 (revisado)
 

Recently uploaded

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Recently uploaded (11)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

Comunicación NFC entre Raspberry Pi y Android

  • 1. GDG DevFest Córdoba - 31 Oct 2014 Comunicación NFC entre Raspberry Pi y Android Nacho Álvarez @neonigmacdb ✉ neonigma@gmail.com http://www.nacho-alvarez.es
  • 2. Acerca de mí ● Ingeniero en Informática por la UCO ● Trayectoria profesional: ○ Soporte Servicio Informática UCO ○ Desarrollo Web ○ Desarrollo / Integración distribuciones GNU/Linux ○ Android mobile + backend developer (WUL4) ○ Actualmente: Área de Innovación (Redsys) 1/32
  • 3. Índice 1) NFC a) Visión general b) Modos c) Beam, NDEF y ejemplo 2) Raspberry Pi a) Definición y proyectos b) Componentes c) Opciones d) GPIO 3) Explore-NFC 4) Demo 2/32
  • 4. NFC - Visión general ● Near Field Communication es una tecnología de comunicación inalámbrica, de corto alcance y alta frecuencia que permite el intercambio de datos entre dispositivos. ● Los estándares de NFC cubren protocolos de comunicación y formatos de intercambio de datos, y están basados en ISO 14443 (RFID, radio-frequency identification) y FeliCa ● El protocolo NFCIP-1 puede funcionar a diversas velocidades como 106, 212, 424 o 848 Kbit/s (BLE4 24Mbit/s) y trabaja en la banda de 13,56MHz 3/32
  • 5. ● En el modo R/W, podemos leer tags NDEF y tarjetas contactless como las relativas al uso de transportes. ● En el modo P2P se puede realizar un intercambio de información entre el móvil y otro dispositivo NFC gracias a Android Beam, una API que sin embargo aún se queda un poco corta. ● El modo CE (Card Emulation) fue introducido en versiones posteriores de Gingerbread para soportar el uso de Google Wallet. El elemento seguro embebido se conecta al controlador NFC a través de una conexión S2C (NFC-WI). NFC - Modos en Android 4/32
  • 6. NFC - Host Card Emulation ● Novedad de Android 4.4 (KitKat): soporte de la especificación Host Card Emulation (HCE) para pagos móviles con NFC ● Cualquier aplicación puede representar virtualmente y de forma segura a través de NFC una tarjeta inteligente ● Permite realizar una transacción sin necesidad de usar el Secure Element (elemento seguro). 5/32
  • 7. NFC - Host Card Emulation ● Aparecen multitud de soluciones con esta apertura: ○ Visa PayWave ○ Mastercard ○ Vodafone Wallet ○ Isis Mobile Wallet ○ Y algunas más... 6/32
  • 8. NFC - P2P: protocolo SNEP ● Logical Link Control Protocol (LLCP): define un protocolo a nivel de capa 2 (enlace de datos) para soportar comunicación P2P entre dos dispositivos con NFC. ● Simple NDEF Exchange Protocol (SNEP): protocolo del NFC Forum que permite a una app de un dispositivo con NFC intercambiar mensajes NDEF con otro dispositivo cuando ambos operan en modo P2P. Hace uso de LLCP para el intercambio de datos. ● NDEF Push Protocol (NPP): protocolo cliente- servidor de Google que permite la transferencia entre dispositivos NFC operando en modo P2P. 7/32
  • 9. Android Beam ● Sistema de transmisión de contenido entre dispositivos utilizando las tecnologías NFC y/o Bluetooth ● Disponible desde Ice Cream Sandwich ● Si lo que compartimos son URLs o archivos muy poco pesados se intercambiarán mediante NFC ● Si los archivos son más pesados, como vídeos o fotos, se activará automáticamente el Bluetooth y se desactivará al terminarse la transmisión ● Debemos tener visible en la pantalla el contenido a compartir y unir las partes traseras de los dispositivos 8/32
  • 10. Mensajes NDEF ● NDEF -NFC Forum Data Exchange Format- es un formato ligero de mensaje binario diseñado para encapsular una o más cargas útiles de información dentro de un mensaje simple. ● Un mensaje NDEF contiene uno o más registros NDEF, cada uno de los cuales transporta una carga de información de tipo arbitrario. ● Un registro NDEF transporta tres parámetros de cabecera para describir su payload: tipo, identificador opcional y longitud. 9/32
  • 12. Ejemplo NFC Android ● Ejemplo de transmisión de un texto personalizado de un terminal a otro vía NFC (las partes interesantes) ● Código disponible en: https: //bitbucket. org/jialvarez/android-beam- p2p-demo 11/32
  • 13. Ejemplo NFC Android @Override public NdefMessage createNdefMessage(NfcEvent event) { Time time = new Time(); time.setToNow(); NdefMessage msg = new NdefMessage( new NdefRecord[] { createMimeRecord( "text/plain", “ola k ase”.getBytes()) }); return msg; } 12/32
  • 14. Ejemplo NFC Android public NdefRecord createMimeRecord(String mimeType, byte[] payload) { byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII")); NdefRecord mimeRecord = new NdefRecord( NdefRecord.TNF_MIME_MEDIA, mimeBytes, new byte[0], payload); return mimeRecord; } @Override public void onNewIntent(Intent intent) { setIntent(intent); } 13/32
  • 15. Ejemplo NFC Android @Override public void onResume() { super.onResume(); if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) processIntent(getIntent()); } void processIntent(Intent intent) { Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter. EXTRA_NDEF_MESSAGES); NdefMessage msg = (NdefMessage) rawMsgs[0]; mInfoText.setText(new String(msg.getRecords()[0].getPayload())); } 14/32
  • 16. Raspberry Pi ● Microordenador lanzado en Febrero 2012 por la Raspberry Pi Foundation ● Hasta la fecha, han aparecido 3 versiones: ○ Modelo A ○ Modelo B ○ Modelo B+ ● Puede comprarse en varias tiendas: ○ RS Online: http://es.rs-online.com/web/generalDisplay.html? id=raspberrypi ○ Farnell: http://es.farnell.com/raspberry-pi 15/32
  • 17. Raspberry Pi: Proyectos ● Algunos proyectos interesantes que utilizan Raspberry Pi + Android ○ Fing + ConnectBot (Obtener IP local + SSH) ○ Streaming video con VLC (Pi) + VLC Beta (Android) ○ Mando remoto de XBMC ○ Control remoto de coches Lego https://www.youtube. com/watch?v=5K_Eyxi56tk ○ FTP, VNC, etc... 16/32
  • 18. Raspberry Pi components SoC Broadcom BCM2835 CPU ARM 1176JZFS a 700MHz GPU Videocore 4 RAM 512 MB (256 MB al principio) Video HDMI y RCA Resolución 1080p Audio HDMI y 3.5 mm USB 2 x USB 2.0 Redes Ethernet 10/100 17/32
  • 20. Opciones NFC Raspberry ● Lectores USB ACR122U SCM SCL011 19/32
  • 21. Opciones NFC Raspberry ● Dispositivos conectados al GPIO NFC R522 EXPLORE-NFC 20/32
  • 22. Raspberry Pi - GPIO ● Acrónimo de General Purpose Input/Output ● Este puerto de expansión permite a los periféricos y placas de expansión acceder a la CPU mediante la exposición de entradas y salidas. 26 pins en modelo B y 40 pins en B+. ● Ejemplos de programación de GPIO con Scratch: http://pihw. wordpress.com/lessons/rgb-led-lessons/rgb-led-lesson-2-scratch- gpio-getting-started/ ● Ejemplos con Python: http://makezine.com/projects/tutorial- raspberry-pi-gpio-pins-and-python/ 21/32
  • 23. Raspberry Pi - GPIO ● SPI Serial Peripheral Interface: estándar para controlar un dispositivo electrónico digital que acepte un flujo de bits serie regulado por un reloj ● UART Universal Asynchronous Receiver-Transmitter, se encuentra en placas base, convierte datos paralelo a serie ● I²C Inter-Integrated Circuit, para comunicar microcontroladores y sus periféricos en sistemas integrados 22/32
  • 24. Explore-NFC en Raspberry ● Basado en solución NXP PN512 ● Cumple con los tres modos de operación: reader, P2P y Card Emulation ● Soportada por libnfc, ofrece una interfaz SPI flexible ● Software: ○ libnfc - SDK de bajo nivel ○ nfcpy (no soportado por ahora ) ○ Open source code propio - http://www.element14. com/community/community/designcenter/explorenfc ○ Python Wrapper - https://github.com/svvitale/nxppy 23/32
  • 25. Software Explore-NFC ● El software se entrega en 3 paquetes: uno por cada modo NFC ● Se descomprime cada paquete y se compila cada aplicación preparada con CMake ● El código está escrito en C ● Tienen una documentación muy buena: http://www.element14. com/community/docs/DOC-65447/l/explore-nfc-software-and- project?ICID=designcenter-devkitnfc-quick 24/32
  • 27. Explore-NFC: polling ● Se utiliza para saber de qué tipo es una tarjeta ● Se realiza un proceso continuo de búsqueda de este tipo de tarjetas: ○ MiFare ○ Felica ○ ISO/IEC 14443B ● También se buscan tarjetas de débito/crédito con NFC lanzando el PSE: 1PAY.SYS.DDF01 y el 2PAY.SYS.DDF0126/32
  • 28. Explore-NFC: card emulation ● El sistema consta de tres partes: ○ App Android que permite leer, componer y enviar mensajes a la Raspberry vía NFC ○ App C para el intercambio de datos ○ App Java que toma el mensaje recibido del smartphone y lo postea en tu muro de Facebook 27/32
  • 30. Explore-NFC: P2P com ● Ejemplo de transferencia de datos utilizando protocolo P2P ● Enviaremos una imagen de la Raspberry a nuestro terminal Android ● Se utiliza internamente protocolo LLCP + SNEP ● La imagen se transfiere íntegramente por NFC, con las limitaciones de velocidad conocidas 29/32
  • 31. Explore-NFC: own P2P ● Veremos un pequeño programa en Python que simula un comercio ● El comerciante escribe el importe de la compra del cliente (como en los pinpads) ● El sistema solicita al cliente que toque su móvil en la Raspberry ● Se realiza la transferencia de datos necesaria hacia la Raspberry y el sistema procesa el pago, enviando confirmación al móvil ● Podemos añadir multitud de elementos: autenticación biométrica, GCM pushes, tokenización... 30/32
  • 32. Spam! Sorry... Contactar con: cromero@uco.es 31/32
  • 33. GDG DevFest Córdoba - 31 Oct 2014 Comunicación NFC entre Raspberry Pi y Android Nacho Álvarez @neonigmacdb ✉ neonigma@gmail.com http://www.nacho-alvarez.es