Identifier un badge RFID avec Arduino - Java - Programmation
MarshPosté le 20-04-2016 à 10:41:58
Bonjour, j'ai un petit soucis pour mon projet de fin d'année en classe.
Je souhaite faire un système d'appel automatique via Arduino & Badges RFID. Bref, là où je bloque, c'est au moment de rentrer le nom du badge. 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 :
Found 1 tags
Sens Response: 0x4
Sel Response: 0x8
0x5E 0xF0 0xA0 0x1
Acces refuse!
Est-ce que "le nom" du badge est 0x5E 0xF0 0xA0 0x1 ??
Que faut-il mettre dans le programme (pour qu'il soit accepté)? Du binaire ? de l'hexa ?
Voici le programme :
Code :
#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;
void setup(void)
{
lcd.begin(16,2);
lcd.print("LCD OK" ) ; // affiche la chaîne texte - message de test
delay(2000);
lcd.clear();
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 le badge valide
Serial.println();
Serial.println("Acces autorise!" ); // Envoi au moniteur
digitalWrite(Led2, HIGH); // Action réalisée sur le circuit
lcd.print("ACCEPTE" );
delay(2000);
lcd.clear();
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 du badge valide
Serial.println("Acces refuse!" );
digitalWrite(Led1, HIGH);
lcd.print("REFUSE" );
delay(2000);
lcd.clear();
digitalWrite(Led1, LOW);
}
delay(500);
}
Merci d'avance Viince
Message édité par Viince06 le 20-04-2016 à 10:46:57
Marsh Posté le 20-04-2016 à 10:41:58
Bonjour,
j'ai un petit soucis pour mon projet de fin d'année en classe.
Je souhaite faire un système d'appel automatique via Arduino & Badges RFID.
Bref, là où je bloque, c'est au moment de rentrer le nom du badge.
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 :
Est-ce que "le nom" du badge est 0x5E 0xF0 0xA0 0x1 ??
Que faut-il mettre dans le programme (pour qu'il soit accepté)? Du binaire ? de l'hexa ?
Voici le programme :
Merci d'avance
Viince
Message édité par Viince06 le 20-04-2016 à 10:46:57