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
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
(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
(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
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
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
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
time = new Time(); time.setToNow(); NdefMessage msg = new NdefMessage( new NdefRecord[] { createMimeRecord( "text/plain", “ola k ase”.getBytes()) }); return msg; } 12/32
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
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
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
• 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
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
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
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
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.DDF01 26/32
◦ 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
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
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