LEER TAG

Dependencies:   PN532_MK20 USBDevice mbed

Fork of NFC_HTM_READ by HTM

Committer:
mauroar211
Date:
Fri Apr 24 19:03:17 2015 +0000
Revision:
2:bab5ae1aefe5
Parent:
0:302cf9a355dd
SE MODIFICO LA LIBRER?A

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mauroar211 0:302cf9a355dd 1 /*
mauroar211 0:302cf9a355dd 2 --------------------------------------------------------------
mauroar211 0:302cf9a355dd 3 ---- DECLARACIONES DE LIBRERIAS
mauroar211 0:302cf9a355dd 4 --------------------------------------------------------------
mauroar211 0:302cf9a355dd 5 */
mauroar211 0:302cf9a355dd 6 #include "mbed.h"
mauroar211 0:302cf9a355dd 7 #include "PN532_SPI.h"
mauroar211 0:302cf9a355dd 8 #include "NfcAdapter.h"
mauroar211 0:302cf9a355dd 9 #include "PN532.h"
mauroar211 0:302cf9a355dd 10 #include "USBSerial.h"
mauroar211 0:302cf9a355dd 11 #include "UtilidadesNFC.h"
mauroar211 0:302cf9a355dd 12
mauroar211 0:302cf9a355dd 13 /*
mauroar211 0:302cf9a355dd 14 --------------------------------------------------------------
mauroar211 0:302cf9a355dd 15 ---- DECLARACIONES DE EXTERNAS
mauroar211 0:302cf9a355dd 16 --------------------------------------------------------------
mauroar211 0:302cf9a355dd 17 */
mauroar211 0:302cf9a355dd 18 extern USBSerial usb;
mauroar211 0:302cf9a355dd 19 extern DigitalOut red;
mauroar211 0:302cf9a355dd 20 extern DigitalOut green;
mauroar211 0:302cf9a355dd 21 extern DigitalOut blue;
mauroar211 0:302cf9a355dd 22
mauroar211 0:302cf9a355dd 23 /*
mauroar211 0:302cf9a355dd 24 --------------------------------------------------------------
mauroar211 0:302cf9a355dd 25 ---- FUNCIONES
mauroar211 0:302cf9a355dd 26 --------------------------------------------------------------
mauroar211 0:302cf9a355dd 27 */
mauroar211 0:302cf9a355dd 28
mauroar211 0:302cf9a355dd 29 //Funcion para Inicializar el Chip NFC PN532
mauroar211 0:302cf9a355dd 30 NfcAdapter inicializarlector()
mauroar211 0:302cf9a355dd 31 {
mauroar211 0:302cf9a355dd 32 //Se inicializa el modulo de comunicacion SPI en los pines D11 (MOSI), D12 (MISO) y D13(CLK)
mauroar211 0:302cf9a355dd 33 SPI spi(D11, D12, D13);
mauroar211 0:302cf9a355dd 34 //se selecciona el pin SS (slave selector)
mauroar211 0:302cf9a355dd 35 PN532_SPI pn532spi(spi, D10);
mauroar211 0:302cf9a355dd 36 //envia comandos para inicializar comunicacion con el chip
mauroar211 0:302cf9a355dd 37 NfcAdapter nfc(pn532spi);
mauroar211 0:302cf9a355dd 38 //configura el chip en modo lectura escritura
mauroar211 0:302cf9a355dd 39 nfc.begin();
mauroar211 0:302cf9a355dd 40 return nfc;
mauroar211 0:302cf9a355dd 41 };
mauroar211 0:302cf9a355dd 42
mauroar211 0:302cf9a355dd 43
mauroar211 0:302cf9a355dd 44 //Funcion para identificar si hay un TAG en el modulo, obtener su ID y leer mensajes en memoria
mauroar211 0:302cf9a355dd 45 int LeerTagNFC(){
mauroar211 0:302cf9a355dd 46
mauroar211 0:302cf9a355dd 47 //FUNCION PARA CONFIGURAR EL MODULO NFC
mauroar211 0:302cf9a355dd 48 NfcAdapter nfc = inicializarlector();
mauroar211 0:302cf9a355dd 49
mauroar211 0:302cf9a355dd 50 while (1) {
mauroar211 0:302cf9a355dd 51
mauroar211 0:302cf9a355dd 52 usb.printf("\r buscando Tag NFC\n\r");
mauroar211 0:302cf9a355dd 53
mauroar211 0:302cf9a355dd 54
mauroar211 0:302cf9a355dd 55 if (nfc.tagPresent()) { //ESCANEA HASTA ENCONTRAR UN TAG
mauroar211 0:302cf9a355dd 56 usb.printf("\r Tag encontrado \n\r");
mauroar211 0:302cf9a355dd 57 unsigned int type1 = nfc.guessTagType(); //OBTIENE EL TIPO DE TAG
mauroar211 0:302cf9a355dd 58 NfcTag tag = nfc.read(); //LEE EL TAG
mauroar211 0:302cf9a355dd 59 if (type1 == TAG_TYPE_MIFARE_CLASSIC){
mauroar211 0:302cf9a355dd 60 red = 0;
mauroar211 0:302cf9a355dd 61 blue = 0;
mauroar211 0:302cf9a355dd 62 wait(0.5);
mauroar211 0:302cf9a355dd 63 }
mauroar211 0:302cf9a355dd 64
mauroar211 0:302cf9a355dd 65 string id = tag.getUidString(); //OBTIENE EL ID DEL TAG
mauroar211 0:302cf9a355dd 66
mauroar211 0:302cf9a355dd 67 usb.printf("|id: %s|\n\r", id);
mauroar211 0:302cf9a355dd 68
mauroar211 0:302cf9a355dd 69 if (tag.hasNdefMessage()) { //INDICA SI EL TAG TIENE UN MENSAJE EN SU MEMORIA
mauroar211 0:302cf9a355dd 70 NdefMessage mensaje = tag.getNdefMessage();//OBTIENE EL MENSAJE DENTRO DEL TAG
mauroar211 0:302cf9a355dd 71 usb.printf("|Mensaje: %s|\n\r", mensaje);
mauroar211 0:302cf9a355dd 72 }
mauroar211 0:302cf9a355dd 73 return 1;
mauroar211 0:302cf9a355dd 74 }
mauroar211 0:302cf9a355dd 75 wait(1);
mauroar211 0:302cf9a355dd 76 }
mauroar211 0:302cf9a355dd 77 }