From 00468f0b3a560f790a8bf05ebc4cfcc468bad7fc Mon Sep 17 00:00:00 2001 From: Willem Oldemans Date: Sat, 2 Oct 2021 11:57:18 +0200 Subject: [PATCH] feat: update rfid code --- FW/leo_muziekdoos_esp32/lib/rfid_PN532 | 1 - FW/leo_muziekdoos_esp32/src/board.h | 3 +- FW/leo_muziekdoos_esp32/src/main.cpp | 4 +- FW/leo_muziekdoos_esp32/src/rfid.cpp | 115 +++---------------------- FW/leo_muziekdoos_esp32/src/rfid.h | 4 +- 5 files changed, 18 insertions(+), 109 deletions(-) delete mode 160000 FW/leo_muziekdoos_esp32/lib/rfid_PN532 diff --git a/FW/leo_muziekdoos_esp32/lib/rfid_PN532 b/FW/leo_muziekdoos_esp32/lib/rfid_PN532 deleted file mode 160000 index 12663d9..0000000 --- a/FW/leo_muziekdoos_esp32/lib/rfid_PN532 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 12663d9dc35e081277750f11fcbfc57e693b8768 diff --git a/FW/leo_muziekdoos_esp32/src/board.h b/FW/leo_muziekdoos_esp32/src/board.h index 80dea54..a3c2394 100644 --- a/FW/leo_muziekdoos_esp32/src/board.h +++ b/FW/leo_muziekdoos_esp32/src/board.h @@ -9,4 +9,5 @@ #define NFC_SS 25 #define NFC_SCK 18 #define NFC_MOSI 23 -#define NFC_MISO 19 \ No newline at end of file +#define NFC_MISO 19 +#define NFC_RST 22 //not connectedx \ No newline at end of file diff --git a/FW/leo_muziekdoos_esp32/src/main.cpp b/FW/leo_muziekdoos_esp32/src/main.cpp index dfd6855..d201ad7 100644 --- a/FW/leo_muziekdoos_esp32/src/main.cpp +++ b/FW/leo_muziekdoos_esp32/src/main.cpp @@ -8,8 +8,8 @@ void setup() { - Serial.begin(115200); - delay(1000); + Serial.begin(115200); + delay(2000); initStorage(); initAudio(); diff --git a/FW/leo_muziekdoos_esp32/src/rfid.cpp b/FW/leo_muziekdoos_esp32/src/rfid.cpp index b096a00..bd19476 100644 --- a/FW/leo_muziekdoos_esp32/src/rfid.cpp +++ b/FW/leo_muziekdoos_esp32/src/rfid.cpp @@ -1,117 +1,24 @@ #include "rfid.h" -#define RST_PIN 9 // Configurable, see typical pin layout above -#define SS_PIN 10 // Configurable, see typical pin layout above -MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance +PN532_SPI pn532spi(SPI, NFC_SS, NFC_SCK, NFC_MISO, NFC_MOSI); +NfcAdapter nfc = NfcAdapter(pn532spi); //*****************************************************************************************// -void initRfid() { +void initRfid() +{ //int8_t sck=-1, int8_t miso=-1, int8_t mosi=-1, int8_t ss=-1); - SPI.begin(NFC_SCK,NFC_MISO,NFC_MOSI,NFC_SS ); // Init SPI bus - mfrc522.PCD_Init(); // Init MFRC522 card - Serial.println(F("Read personal data on a MIFARE PICC:")); //shows in serial that it is ready to read + nfc.begin(true); + Serial.println(F("rfid init done")); //shows in serial that it is ready to read } //*****************************************************************************************// -void handleRfid() { - - // Prepare key - all keys are set to FFFFFFFFFFFFh at chip delivery from the factory. - MFRC522::MIFARE_Key key; - for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF; - - //some variables we need - byte block; - byte len; - MFRC522::StatusCode status; - - //------------------------------------------- - - // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. - if ( ! mfrc522.PICC_IsNewCardPresent()) { - return; - } - - // Select one of the cards - if ( ! mfrc522.PICC_ReadCardSerial()) { - return; - } - - Serial.println(F("**Card Detected:**")); - - //------------------------------------------- - - mfrc522.PICC_DumpDetailsToSerial(&(mfrc522.uid)); //dump some details about the card - - //mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); //uncomment this to see all blocks in hex - - //------------------------------------------- - - Serial.print(F("Name: ")); - - byte buffer1[18]; - - block = 4; - len = 18; - - //------------------------------------------- GET FIRST NAME - status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, 4, &key, &(mfrc522.uid)); //line 834 of MFRC522.cpp file - if (status != MFRC522::STATUS_OK) { - Serial.print(F("Authentication failed: ")); - Serial.println(mfrc522.GetStatusCodeName(status)); - return; - } - - status = mfrc522.MIFARE_Read(block, buffer1, &len); - if (status != MFRC522::STATUS_OK) { - Serial.print(F("Reading failed: ")); - Serial.println(mfrc522.GetStatusCodeName(status)); - return; - } - - //PRINT FIRST NAME - for (uint8_t i = 0; i < 16; i++) +void handleRfid() +{ + if (nfc.tagPresent()) { - if (buffer1[i] != 32) - { - Serial.write(buffer1[i]); - } + NfcTag tag = nfc.read(); + tag.print(); } - Serial.print(" "); - - //---------------------------------------- GET LAST NAME - - byte buffer2[18]; - block = 1; - - status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, 1, &key, &(mfrc522.uid)); //line 834 - if (status != MFRC522::STATUS_OK) { - Serial.print(F("Authentication failed: ")); - Serial.println(mfrc522.GetStatusCodeName(status)); - return; - } - - status = mfrc522.MIFARE_Read(block, buffer2, &len); - if (status != MFRC522::STATUS_OK) { - Serial.print(F("Reading failed: ")); - Serial.println(mfrc522.GetStatusCodeName(status)); - return; - } - - //PRINT LAST NAME - for (uint8_t i = 0; i < 16; i++) { - Serial.write(buffer2[i] ); - } - - - //---------------------------------------- - - Serial.println(F("\n**End Reading**\n")); - - delay(1000); //change value if you want to read cards faster - - mfrc522.PICC_HaltA(); - mfrc522.PCD_StopCrypto1(); } //*****************************************************************************************// - diff --git a/FW/leo_muziekdoos_esp32/src/rfid.h b/FW/leo_muziekdoos_esp32/src/rfid.h index deae111..2c91437 100644 --- a/FW/leo_muziekdoos_esp32/src/rfid.h +++ b/FW/leo_muziekdoos_esp32/src/rfid.h @@ -3,7 +3,9 @@ #include "board.h" #include -#include +#include "PN532_SPI.h" +#include "PN532.h" +#include "NfcAdapter.h" void initRfid(void); void handleRfid(void); \ No newline at end of file