Go Down

Topic: Identité d'un badge RFID sur Arduino (Read 981 times) previous topic - next topic

Viince

Apr 25, 2016, 05:05 pm Last Edit: Apr 27, 2016, 11:05 am by Viince
Bonjour,
j'ai un petit soucis pour mon projet de fin d'année en classe.
 
J'ai créé un programme qui, en gros, si le badge est le bon, l'écran LCD affiche "Accepté".
Si le badge n'est pas le bon, il affiche Refusé.
Or je ne sais pas comment connaitre "le nom" du badge.  :??: 
Dans le Moniteur Série Arduino, dès qu'on passe le badge, il affiche :

Code: [Select]
Presentez Pass!
Found 1 tags
Sens Response: 0x4
Sel Response: 0x8
 0x5E 0xCD 0x0 0x1
Acces refuse!


or je ne sais pas quoi ni où mettre le nom du badge ...

Et voici notre programme :

Code: [Select]
    #include <PN532.h>
    #include <SPI.h>
    #include "rgb_lcd.h" // Inclusion de la librairie pour afficheur LCD
    #include <FreqCount.h>
    /*Chip select pin can be connected to D10 or D9 which is hareware optional*/
    /*if you the version of NFC Shield from SeeedStudio is v2.0.*/
    #define PN532_CS 10

    PN532 nfc(PN532_CS);
    #define  NFC_DEMO_DEBUG 1

    int Led1 = 5;   // Intégration des leds
    int Led2 = 6;
    rgb_lcd lcd;
    int buzzer =3;

    void setup(void)
      {
    lcd.begin(16,2);
    int r = 255;
    int g = 255;
    int b = 255;
    lcd.setRGB(r,g,b);
    lcd.print("LCD OK") ; // affiche la chaîne texte - message de test
    delay(2000);
    lcd.clear();
    pinMode(buzzer,OUTPUT);
   
   
        pinMode(Led1, OUTPUT);    // On programme les leds en sorties
        pinMode(Led2, OUTPUT);
       
        #ifdef NFC_DEMO_DEBUG
          Serial.begin(9600);
          Serial.println("Hello!");
         
        #endif
          nfc.begin();

        uint32_t versiondata = nfc.getFirmwareVersion();
       
        if (! versiondata)
          {
            #ifdef NFC_DEMO_DEBUG
              Serial.print("Didn't find PN53x board");
             
            #endif
              while (1); // halt
           }
           
        #ifdef NFC_DEMO_DEBUG
          // Got ok data, print it out!
          Serial.print("Found chip PN5");
          Serial.println((versiondata>>24) & 0x5E, HEX);
          Serial.print("Firmware ver. ");
          Serial.print((versiondata>>16) & 0xF0, HEX);
          Serial.print('.');
          Serial.println((versiondata>>8) & 0xA0, HEX);
          Serial.print("Supports ");
          Serial.println(versiondata & 0x1, HEX);
         
        #endif
      // configure board to read RFID tags and cards
          nfc.SAMConfig();
      }
     

    void loop(void)
      {
        uint32_t id;
        // look for MiFare type cards
        id = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A);

        switch(id)           // Réalisation d'un switch pour gérer les différentes conditions
          {
            case 1:          // Condition à remplir si l'ID détecté est 1214181536
            Serial.println();
            Serial.println("Acces autorise!");    // Envoi au moniteur
            lcd.setRGB(0,255,0);
            digitalWrite(buzzer,HIGH);
            delay(50);
            digitalWrite(buzzer,LOW);
            delay(50);
             digitalWrite(buzzer,HIGH);
            delay(50);
            digitalWrite(buzzer,LOW);
            delay(10);
            digitalWrite(Led2, HIGH);        //  Action réalisée sur le circuit
            lcd.print("ACCEPTE");
            delay(2000);
            lcd.clear();
            lcd.setRGB(255,255,255);
            digitalWrite(Led2, LOW);
            break;
           
            case 0:           // Condition à remplir si le Shield ne détecte aucun Tag
            Serial.println();
            Serial.println("Presentez Pass!");
            break;
           
            default:    // condition à remplir si aucune des conditions précédentes ne sont bonnes
            Serial.println();   // soit quand l'ID présentée au Shield est différente de 839461248
            Serial.println("Acces refuse!");
           
            digitalWrite(Led1, HIGH);
            lcd.setRGB(255,0,0);
             digitalWrite(buzzer,HIGH);
            delay(500);
            digitalWrite(buzzer,LOW);
            delay(10);
            lcd.print("REFUSE");
            delay(2000);
            lcd.clear();
            lcd.setRGB(255,255,255);
            digitalWrite(Led1, LOW);
          }
         
         
         delay(500);
      }


Merci d'avance pour votre aide
Vincent

Viince

Personne pour m'aider ? Je précise que ce sont des badges RFID.

fdufnews

Tu utilises la librairie Adafruit?
En lisant la doc de la librairie PN532 et les exemples livrés avec tu devrais sans doute trouver l'info.

Cobrafox34

J'ai déjà mis un programme RFID 125Khz qui est en deux programmes le premier permettant de connaitre l'IDE et le deuxième si l'IDE est en référence dedans permet de dire si le badge est accepté ou non

Go Up