SlideShare una empresa de Scribd logo
IES Gran Capitán - 9 Febrero 2015
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/31
Índice
1) NFC
a) Visión general
b) Modos
c) Android Beam, NDEF y ejemplo
2) Raspberry Pi
a) Definición y proyectos
b) Componentes
c) Opciones NFC
d) GPIO
3) Explore-NFC
4) Demo 2/31
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/31
● 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/31
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/31
NFC - Host Card Emulation
● Aparecen multitud de soluciones con esta
apertura:
○ Visa PayWave
○ Mastercard
○ Vodafone Wallet
○ Isis Mobile Wallet
○ Y algunas más...
6/31
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/31
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/31
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/31
Mensajes NDEF
10/31
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/31
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/31
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/31
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/31
Raspberry Pi
● Microordenador lanzado en Febrero 2012 por la Raspberry Pi Foundation
● Hasta la fecha, han aparecido 4 versiones:
○ Modelo A
○ Modelo B
○ Modelo B+
○ Modelo 2B
● 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/31
Raspberry Pi: Proyectos
● Algunos proyectos interesantes que utilizan Raspberry Pi +
Android
○ Porta-Pi Arcade Kit
http://www.retrobuiltgames.com/the-build-page/porta-pi-arcade-kit/
○ PiPhone
http://www.raspberrypi.org/piphone-home-made-raspberry-pi-smartph
one/
○ Control remoto de coches Lego
https://www.youtube.com/watch?v=5K_Eyxi56tk
○ Pi laptop
http://blog.parts-people.com/2012/12/20/mobile-raspberry-pi-computer
-build-your-own-portable-rpi-to-go/ 16/31
Raspberry Pi B 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/31
Raspberry Pi B+
18/31
Raspberry Pi 2 Model B
19/31
Opciones NFC Raspberry
● Lectores USB
ACR122U
SCM SCL011
20/31
Opciones NFC Raspberry
● Dispositivos conectados al GPIO
NFC R522
EXPLORE-NFC
21/31
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-pyt
hon/
22/31
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
23/31
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 24/31
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-n
fc-software-and-project?ICID=designcenter-devkitnfc-quick
25/31
Demo time!
26/31
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.DDF0127/31
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
28/31
Explore-NFC: card emulation
29/31
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
30/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... 31/31
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

Más contenido relacionado

Similar a Sysmana 2015 - Comunicación NFC entre Raspberry pi y Android

Trabajo practico nº 12
Trabajo practico nº 12Trabajo practico nº 12
Trabajo practico nº 12
Jimena
 
Trabajo practico nº 12
Trabajo practico nº 12Trabajo practico nº 12
Trabajo practico nº 12
Jimena
 
CursoProgramacionNFC-Dia1
CursoProgramacionNFC-Dia1CursoProgramacionNFC-Dia1
CursoProgramacionNFC-Dia1
Aditium
 
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
Mariano Tejedor
 
Propuesta usb4 all
Propuesta usb4 allPropuesta usb4 all
Propuesta usb4 all
kaita Stones
 
Pract campo
Pract campoPract campo
Pract campo
Eduardo Segura
 
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
michrom
 
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
michrom
 
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
michrom
 
Colegio san carlos
Colegio san carlosColegio san carlos
Colegio san carlos
TamiStradaOlmos
 
Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01
lucasoliver12
 
Tp17
Tp17Tp17
Tecnologia De Redes Pan
Tecnologia De Redes PanTecnologia De Redes Pan
Tecnologia De Redes Pan
Universidad del Magdalena
 
Tecnologia De Redes Pan
Tecnologia De Redes PanTecnologia De Redes Pan
Tecnologia De Redes Pan
Universidad del Magdalena
 
Tecnologia De Redes Pan
Tecnologia De Redes PanTecnologia De Redes Pan
Tecnologia De Redes Pan
Universidad del Magdalena
 
D resumenes
D resumenesD resumenes
D resumenes
karenlara47
 
TIC
TICTIC
Redes informaticas
Redes informaticasRedes informaticas
Redes informaticas
andrecisneros95
 
Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01
lucasoliver12
 
Tp de informatica 14
Tp de informatica 14Tp de informatica 14
Tp de informatica 14
shobiinformatica
 

Similar a Sysmana 2015 - Comunicación NFC entre Raspberry pi y Android (20)

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
 
CursoProgramacionNFC-Dia1
CursoProgramacionNFC-Dia1CursoProgramacionNFC-Dia1
CursoProgramacionNFC-Dia1
 
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
 
Propuesta usb4 all
Propuesta usb4 allPropuesta usb4 all
Propuesta usb4 all
 
Pract campo
Pract campoPract campo
Pract campo
 
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
 
Colegio san carlos
Colegio san carlosColegio san carlos
Colegio san carlos
 
Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01Colegiosancarlos 111206185843-phpapp01
Colegiosancarlos 111206185843-phpapp01
 
Tp17
Tp17Tp17
Tp17
 
Tecnologia De Redes Pan
Tecnologia De Redes PanTecnologia De Redes Pan
Tecnologia De Redes Pan
 
Tecnologia De Redes Pan
Tecnologia De Redes PanTecnologia De Redes Pan
Tecnologia De Redes Pan
 
Tecnologia De Redes Pan
Tecnologia De Redes PanTecnologia De Redes Pan
Tecnologia De Redes Pan
 
D resumenes
D resumenesD resumenes
D resumenes
 
TIC
TICTIC
TIC
 
Redes informaticas
Redes informaticasRedes informaticas
Redes informaticas
 
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
 

Más de 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
 
The blockchain disruption
The blockchain disruptionThe blockchain disruption
The blockchain disruption
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 NDK
José 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 elk
José 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 proyectos
José Ignacio Álvarez Ruiz
 
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
José 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: GIT
José 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
 

Más de José Ignacio Álvarez Ruiz (10)

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
 
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
 
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)
 

Último

mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
AngelCristhianMB
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
leia ereni
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdfProjecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Festibity
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
ranierglez
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
codesiret
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
giampierdiaz5
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
yuberpalma
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
70244530
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 

Último (20)

mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdfProjecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 

Sysmana 2015 - Comunicación NFC entre Raspberry pi y Android

  • 1. IES Gran Capitán - 9 Febrero 2015 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/31
  • 3. Índice 1) NFC a) Visión general b) Modos c) Android Beam, NDEF y ejemplo 2) Raspberry Pi a) Definición y proyectos b) Componentes c) Opciones NFC d) GPIO 3) Explore-NFC 4) Demo 2/31
  • 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/31
  • 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/31
  • 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/31
  • 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/31
  • 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/31
  • 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/31
  • 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/31
  • 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/31
  • 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/31
  • 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/31
  • 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/31
  • 16. Raspberry Pi ● Microordenador lanzado en Febrero 2012 por la Raspberry Pi Foundation ● Hasta la fecha, han aparecido 4 versiones: ○ Modelo A ○ Modelo B ○ Modelo B+ ○ Modelo 2B ● 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/31
  • 17. Raspberry Pi: Proyectos ● Algunos proyectos interesantes que utilizan Raspberry Pi + Android ○ Porta-Pi Arcade Kit http://www.retrobuiltgames.com/the-build-page/porta-pi-arcade-kit/ ○ PiPhone http://www.raspberrypi.org/piphone-home-made-raspberry-pi-smartph one/ ○ Control remoto de coches Lego https://www.youtube.com/watch?v=5K_Eyxi56tk ○ Pi laptop http://blog.parts-people.com/2012/12/20/mobile-raspberry-pi-computer -build-your-own-portable-rpi-to-go/ 16/31
  • 18. Raspberry Pi B 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/31
  • 20. Raspberry Pi 2 Model B 19/31
  • 21. Opciones NFC Raspberry ● Lectores USB ACR122U SCM SCL011 20/31
  • 22. Opciones NFC Raspberry ● Dispositivos conectados al GPIO NFC R522 EXPLORE-NFC 21/31
  • 23. 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-pyt hon/ 22/31
  • 24. 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 23/31
  • 25. 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 24/31
  • 26. 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-n fc-software-and-project?ICID=designcenter-devkitnfc-quick 25/31
  • 28. 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.DDF0127/31
  • 29. 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 28/31
  • 31. 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 30/31
  • 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... 31/31
  • 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