LEER TAG
Dependencies: PN532_MK20 USBDevice mbed
Fork of NFC_HTM_READ by
UtilidadesNFC.cpp@0:302cf9a355dd, 2015-04-24 (annotated)
- Committer:
- mauroar211
- Date:
- Fri Apr 24 18:19:06 2015 +0000
- Revision:
- 0:302cf9a355dd
LEER TAG
Who changed what in which revision?
User | Revision | Line number | New 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 | } |