PN532 Driver library This library provides an abstract API to drive the pn532 nfc chip, with I2C/HSU/SPI interface. Its based on the Seeed Studio's Arduino version.
Dependents: PN532_ReadUid Nfctest2
Diff: PN532/examples/emulate_tag_ndef/emulate_tag_ndef.ino
- Revision:
- 0:db8030e71f55
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PN532/examples/emulate_tag_ndef/emulate_tag_ndef.ino Tue Sep 13 06:01:19 2016 +0000 @@ -0,0 +1,69 @@ + +#include "SPI.h" +#include "PN532_SPI.h" +#include "emulatetag.h" +#include "NdefMessage.h" + +PN532_SPI pn532spi(SPI, 10); +EmulateTag nfc(pn532spi); + +uint8_t ndefBuf[120]; +NdefMessage message; +int messageSize; + +uint8_t uid[3] = { 0x12, 0x34, 0x56 }; + +void setup() +{ + Serial.begin(115200); + Serial.println("------- Emulate Tag --------"); + + message = NdefMessage(); + message.addUriRecord("http://www.seeedstudio.com"); + messageSize = message.getEncodedSize(); + if (messageSize > sizeof(ndefBuf)) { + Serial.println("ndefBuf is too small"); + while (1) { } + } + + Serial.print("Ndef encoded message size: "); + Serial.println(messageSize); + + message.encode(ndefBuf); + + // comment out this command for no ndef message + nfc.setNdefFile(ndefBuf, messageSize); + + // uid must be 3 bytes! + nfc.setUid(uid); + + nfc.init(); +} + +void loop(){ + // uncomment for overriding ndef in case a write to this tag occured + //nfc.setNdefFile(ndefBuf, messageSize); + + // start emulation (blocks) + nfc.emulate(); + + // or start emulation with timeout + /*if(!nfc.emulate(1000)){ // timeout 1 second + Serial.println("timed out"); + }*/ + + // deny writing to the tag + // nfc.setTagWriteable(false); + + if(nfc.writeOccured()){ + Serial.println("\nWrite occured !"); + uint8_t* tag_buf; + uint16_t length; + + nfc.getContent(&tag_buf, &length); + NdefMessage msg = NdefMessage(tag_buf, length); + msg.print(); + } + + delay(1000); +}