diff options
| author | krolyxon <me@krolyxon.com> | 2026-06-08 23:10:46 +0530 |
|---|---|---|
| committer | krolyxon <me@krolyxon.com> | 2026-06-08 23:10:46 +0530 |
| commit | 3120783000d0025b183b0397acaa8b769499eb38 (patch) | |
| tree | 1c4f93be213f1b1d48f59e554562d847b4e7c25e /.pio/libdeps/esp32-s3-n16r8/Adafruit PN532/examples/readMifareClassic | |
Initial gh-pages firmware hosting
Diffstat (limited to '.pio/libdeps/esp32-s3-n16r8/Adafruit PN532/examples/readMifareClassic')
| -rw-r--r-- | .pio/libdeps/esp32-s3-n16r8/Adafruit PN532/examples/readMifareClassic/readMifareClassic.ino | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit PN532/examples/readMifareClassic/readMifareClassic.ino b/.pio/libdeps/esp32-s3-n16r8/Adafruit PN532/examples/readMifareClassic/readMifareClassic.ino new file mode 100644 index 0000000..a2edaf8 --- /dev/null +++ b/.pio/libdeps/esp32-s3-n16r8/Adafruit PN532/examples/readMifareClassic/readMifareClassic.ino @@ -0,0 +1,119 @@ +/**************************************************************************/ +/*! + @file readMifareClassic.pde + @author Adafruit Industries + @license BSD (see license.txt) + + This example will wait for any ISO14443A card or tag, and + depending on the size of the UID will attempt to read from it. + + If the card has a 4-byte UID it is probably a Mifare + Classic card, and the following steps are taken: + + Reads the 4 byte (32 bit) ID of a MiFare Classic card. + Since the classic cards have only 32 bit identifiers you can stick + them in a single variable and use that to compare card ID's as a + number. This doesn't work for ultralight cards that have longer 7 + byte IDs! + + Note that you need the baud rate to be 115200 because we need to + print out the data and read from the card at the same time! + +This is an example sketch for the Adafruit PN532 NFC/RFID breakout boards +This library works with the Adafruit NFC breakout + ----> https://www.adafruit.com/products/364 + +Check out the links above for our tutorials and wiring diagrams +These chips use SPI to communicate, 4 required to interface + +Adafruit invests time and resources providing this open source code, +please support Adafruit and open-source hardware by purchasing +products from Adafruit! +*/ +/**************************************************************************/ +#include <Wire.h> +#include <SPI.h> +#include <Adafruit_PN532.h> + +// If using the breakout with SPI, define the pins for SPI communication. +#define PN532_SCK (2) +#define PN532_MOSI (3) +#define PN532_SS (4) +#define PN532_MISO (5) + +// If using the breakout or shield with I2C, define just the pins connected +// to the IRQ and reset lines. Use the values below (2, 3) for the shield! +#define PN532_IRQ (2) +#define PN532_RESET (3) // Not connected by default on the NFC Shield + +// Uncomment just _one_ line below depending on how your breakout or shield +// is connected to the Arduino: + +// Use this line for a breakout with a SPI connection: +Adafruit_PN532 nfc(PN532_SCK, PN532_MISO, PN532_MOSI, PN532_SS); + +// Use this line for a breakout with a hardware SPI connection. Note that +// the PN532 SCK, MOSI, and MISO pins need to be connected to the Arduino's +// hardware SPI SCK, MOSI, and MISO pins. On an Arduino Uno these are +// SCK = 13, MOSI = 11, MISO = 12. The SS line can be any digital IO pin. +//Adafruit_PN532 nfc(PN532_SS); + +// Or use this line for a breakout or shield with an I2C connection: +//Adafruit_PN532 nfc(PN532_IRQ, PN532_RESET); + +void setup(void) { + Serial.begin(115200); + while (!Serial) delay(10); // for Leonardo/Micro/Zero + + Serial.println("Hello!"); + + nfc.begin(); + + uint32_t versiondata = nfc.getFirmwareVersion(); + if (! versiondata) { + Serial.print("Didn't find PN53x board"); + while (1); // halt + } + // Got ok data, print it out! + Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX); + Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC); + Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC); + + Serial.println("Waiting for an ISO14443A Card ..."); +} + + +void loop(void) { + uint8_t success; + uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // Buffer to store the returned UID + uint8_t uidLength; // Length of the UID (4 or 7 bytes depending on ISO14443A card type) + + // Wait for an ISO14443A type cards (Mifare, etc.). When one is found + // 'uid' will be populated with the UID, and uidLength will indicate + // if the uid is 4 bytes (Mifare Classic) or 7 bytes (Mifare Ultralight) + success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength); + + if (success) { + // Display some basic information about the card + Serial.println("Found an ISO14443A card"); + Serial.print(" UID Length: ");Serial.print(uidLength, DEC);Serial.println(" bytes"); + Serial.print(" UID Value: "); + nfc.PrintHex(uid, uidLength); + + if (uidLength == 4) + { + // We probably have a Mifare Classic card ... + uint32_t cardid = uid[0]; + cardid <<= 8; + cardid |= uid[1]; + cardid <<= 8; + cardid |= uid[2]; + cardid <<= 8; + cardid |= uid[3]; + Serial.print("Seems to be a Mifare Classic card #"); + Serial.println(cardid); + } + Serial.println(""); + } +} + |
