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

Committer:
dotnfc
Date:
Tue Sep 13 06:01:19 2016 +0000
Revision:
0:db8030e71f55
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dotnfc 0:db8030e71f55 1 // send a NDEF message to adnroid or get a NDEF message
dotnfc 0:db8030e71f55 2 //
dotnfc 0:db8030e71f55 3 // note: [NDEF library](https://github.com/Don/NDEF) is needed.
dotnfc 0:db8030e71f55 4
dotnfc 0:db8030e71f55 5 #include "SPI.h"
dotnfc 0:db8030e71f55 6 #include "PN532_SPI.h"
dotnfc 0:db8030e71f55 7 #include "snep.h"
dotnfc 0:db8030e71f55 8 #include "NdefMessage.h"
dotnfc 0:db8030e71f55 9
dotnfc 0:db8030e71f55 10 PN532_SPI pn532spi(SPI, 10);
dotnfc 0:db8030e71f55 11 SNEP nfc(pn532spi);
dotnfc 0:db8030e71f55 12 uint8_t ndefBuf[128];
dotnfc 0:db8030e71f55 13
dotnfc 0:db8030e71f55 14 void setup()
dotnfc 0:db8030e71f55 15 {
dotnfc 0:db8030e71f55 16 Serial.begin(115200);
dotnfc 0:db8030e71f55 17 Serial.println("-------Peer to Peer--------");
dotnfc 0:db8030e71f55 18 }
dotnfc 0:db8030e71f55 19
dotnfc 0:db8030e71f55 20 void loop()
dotnfc 0:db8030e71f55 21 {
dotnfc 0:db8030e71f55 22 #if 1
dotnfc 0:db8030e71f55 23 Serial.println("Send a message to Android");
dotnfc 0:db8030e71f55 24 NdefMessage message = NdefMessage();
dotnfc 0:db8030e71f55 25 message.addUriRecord("http://www.seeedstudio.com");
dotnfc 0:db8030e71f55 26 int messageSize = message.getEncodedSize();
dotnfc 0:db8030e71f55 27 if (messageSize > sizeof(ndefBuf)) {
dotnfc 0:db8030e71f55 28 Serial.println("ndefBuf is too small");
dotnfc 0:db8030e71f55 29 while (1) {
dotnfc 0:db8030e71f55 30 }
dotnfc 0:db8030e71f55 31
dotnfc 0:db8030e71f55 32 }
dotnfc 0:db8030e71f55 33
dotnfc 0:db8030e71f55 34 message.encode(ndefBuf);
dotnfc 0:db8030e71f55 35 if (0 >= nfc.write(ndefBuf, messageSize)) {
dotnfc 0:db8030e71f55 36 Serial.println("Failed");
dotnfc 0:db8030e71f55 37 } else {
dotnfc 0:db8030e71f55 38 Serial.println("Success");
dotnfc 0:db8030e71f55 39 }
dotnfc 0:db8030e71f55 40
dotnfc 0:db8030e71f55 41 delay(3000);
dotnfc 0:db8030e71f55 42 #else
dotnfc 0:db8030e71f55 43 Serial.println("Get a message from Android");
dotnfc 0:db8030e71f55 44 int msgSize = nfc.read(ndefBuf, sizeof(ndefBuf));
dotnfc 0:db8030e71f55 45 if (msgSize > 0) {
dotnfc 0:db8030e71f55 46 NdefMessage msg = NdefMessage(ndefBuf, msgSize);
dotnfc 0:db8030e71f55 47 msg.print();
dotnfc 0:db8030e71f55 48 Serial.println("\nSuccess");
dotnfc 0:db8030e71f55 49 } else {
dotnfc 0:db8030e71f55 50 Serial.println("failed");
dotnfc 0:db8030e71f55 51 }
dotnfc 0:db8030e71f55 52 delay(3000);
dotnfc 0:db8030e71f55 53 #endif
dotnfc 0:db8030e71f55 54 }
dotnfc 0:db8030e71f55 55