1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
| #include <SPI.h>
#include "PN532_SPI.h"
#include "PN532.h"
#include "NfcAdapter.h"
#include "SD.h"
////#define BrSD 2
#define sdcardCSpin 2 // depends on your SD card shield or module, pour le Mega = 53.
File root;
////File myFile;
String const myUID = "AC D1 6D 05";
int const led = 2; // clé valide
int const leds = 3; // clé incorect
PN532_SPI interface(SPI, 10);
NfcAdapter nfc = NfcAdapter(interface);
void setup(void) {
Serial.begin(115200);
Serial.println("Lecteur NFC");
Serial.print("Initializing SD card...");
if (!SD.begin(sdcardCSpin))
{
Serial.println("Failed, or not present.");
}
else
{
Serial.println("OK.");
Serial.println("---------- SD OK ----------\n");
}
////pinMode(BrSD,OUTPUT);
////digitalWrite(BrSD,HIGH);
pinMode(led,OUTPUT);
pinMode(leds,OUTPUT);
digitalWrite(led,LOW);
digitalWrite(leds,LOW);
}
void loop(void) {
nfc.begin();
Serial.println("Scanne...");
if (nfc.tagPresent()) // vérifié si il y a bien un tag
{
NfcTag tag = nfc.read(); // lire le tag nfc
String scannedUID = tag.getUidString(); // avoir le tag nfc inclut dans la carte
if(fileSearchUuid(scannedUID)){
////if(String scannedUID = myFile.read()){
////Serial.print("Initialisation de la carte sd...");
////digitalWrite(BrSD,HIGH);
////SD.begin(4);
////Serial.println("initialization terminer.");
////delay(100);
////myFile = SD.open("verif.txt", FILE_READ);
////if (myFile) {
////Serial.println("verif.txt:");
////while (myFile.available()) {
////Serial.write(myFile.read());
////}
////myFile.close();
////}
////digitalWrite(BrSD,HIGH);
// comparer le tag de la carte , au tag inclut dans le programme
// Le bon tag a été lu
Serial.println("Clé valide ");
digitalWrite(led,HIGH);
digitalWrite(leds,LOW);
delay(500);
digitalWrite(led,LOW);
delay(500);
digitalWrite(led,HIGH);
delay(500);
digitalWrite(led,LOW);
}
else{
// un tag incorrect a été lu
Serial.println("CLé invalide");
digitalWrite(led,LOW);
digitalWrite(leds,HIGH);
delay(500);
digitalWrite(leds,LOW);
delay(500);
digitalWrite(leds,HIGH);
delay(500);
digitalWrite(leds,LOW);
}
}
delay(2000);
}
/*-----------------------------------------------------------------------------
'* Lecture du fichier des UUID
'* retourne true si searchUUID dans fichier UUID.txt
'*-----------------------------------------------------------------------------
*/
boolean fileSearchUuid(String searchUUID)
{
//String fileLine;
boolean uuidFound = false;
File uuidFile;
uuidFile = SD.open("UUID.txt", FILE_READ); // Ouvrir fichier des UUID
if (uuidFile)
{
while (uuidFile.available())
{
String fileLine = uuidFile.readStringUntil('\n'); // Lire fichier jusqu'à nouvelle ligne
fileLine = fileLine.substring(0,fileLine.length()-1); // Supprimer le caractère nouvelle ligne \n
if (fileLine == searchUUID) // Si UUID trouvée
{
uuidFound = true;
break;
}
}
uuidFile.close();
}
else
{
Serial.print("error opening ");
Serial.println("UUID.txt");
}
return uuidFound;
} |
Partager