MAJ Firmware pour Identification par Pilote

This commit is contained in:
Profouzors (LE) 2022-10-05 16:12:10 +02:00
parent 0d4df4c0fc
commit 08c0d2a9d9
1 changed files with 41 additions and 33 deletions

View File

@ -2,65 +2,73 @@
#include <SPI.h> #include <SPI.h>
#include <MFRC522.h> #include <MFRC522.h>
#define RST_PIN 9 // Configurable, see typical pin layout above #define RST_PIN 9 // Configurable, see typical pin layout above
#define SS_1_PIN 10 // Configurable, take a unused pin, only HIGH/LOW required, must be different to SS 2 #define SS_1_PIN 10 // Configurable, take a unused pin, only HIGH/LOW required, must be different to SS 2
MFRC522 mfrc522; // Create MFRC522 instance. MFRC522 mfrc522; // Create MFRC522 instance.
String SerialCMD; String SerialCMD;
/** /**
* Helper routine to dump a byte array as hex values to Serial. * Helper routine to dump a byte array as hex values to Serial.
*/ */
void dump_byte_array(byte *buffer, byte bufferSize) { void dump_byte_array(byte *buffer, byte bufferSize)
for (byte i = 0; i < bufferSize; i++) { {
for (byte i = 0; i < bufferSize; i++)
{
Serial.print(buffer[i] < 0x10 ? " 0" : " "); Serial.print(buffer[i] < 0x10 ? " 0" : " ");
Serial.print(buffer[i], HEX); Serial.print(buffer[i], HEX);
} }
} }
void serialprint_rfid_uid()
{
Serial.print(F("R#"));
// Show some details of the PICC (that is: the tag/card)
dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);
Serial.print(F("#"));
MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
// Serial.println(mfrc522.PICC_GetTypeName(piccType));
Serial.print(piccType, HEX);
Serial.print(F("#"));
Serial.println(mfrc522.PICC_GetTypeName(piccType));
}
/** /**
* Initialize. * Initialize.
*/ */
void setup() { void setup()
{
Serial.begin(9600); // Initialize serial communications with the PC Serial.begin(9600); // Initialize serial communications with the PC
while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) while (!Serial)
; // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
SPI.begin(); // Init SPI bus SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(SS_1_PIN, RST_PIN); // Init each MFRC522 card mfrc522.PCD_Init(SS_1_PIN, RST_PIN); // Init each MFRC522 card
Serial.print(F("Reader ")); Serial.print(F("AT168RC522#Reader#"));
Serial.print(F(": "));
mfrc522.PCD_DumpVersionToSerial(); mfrc522.PCD_DumpVersionToSerial();
} }
/** /**
* Main loop. * Main loop.
*/ */
void loop() { void loop()
{
if (Serial.available() > 0) { if (Serial.available() > 0)
SerialCMD = Serial.readString(); {
SerialCMD.trim(); SerialCMD = Serial.readString();
} SerialCMD.trim();
}
if ((mfrc522.PICC_IsNewCardPresent() || SerialCMD.startsWith("READ") ) && mfrc522.PICC_ReadCardSerial()) { if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial())
Serial.print(F("R#")); {
// Show some details of the PICC (that is: the tag/card) serialprint_rfid_uid();
dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size); // Halt PICC
Serial.print(F("#")); mfrc522.PICC_HaltA();
MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); // Stop encryption on PCD
//Serial.println(mfrc522.PICC_GetTypeName(piccType)); mfrc522.PCD_StopCrypto1();
Serial.print(piccType,HEX); }
Serial.print(F("#"));
Serial.println(mfrc522.PICC_GetTypeName(piccType));
// Halt PICC
mfrc522.PICC_HaltA();
// Stop encryption on PCD
mfrc522.PCD_StopCrypto1();
//Reset SerialCMD
SerialCMD = "";
}
} }