SIL-IoT-Contrôle d’accès par badge, technologie RFID

Sécuriser les locaux est essentiel aujourd’hui ! Les risques liés aux vols, aux intrusions, au vandalisme sont de plus en plus présents. C’est pourquoi de plus en plus d’entreprises optent pour des systèmes de contrôles d’accès par badge permettant de contrôler et de filtrer les entrées au sein de l’entreprise.

Slides & Videos

Members

NameContribution
Ibrahima CamaraDéveloppement de 60% du code, recherche des outils nécessaires pour le montage, l'assemblage et en fin la réalisation du Rapport.
Jean MaximeDéveloppement de 40% du code, Powerpoint et une partie de la réalisation du Rapport.

State of the Art

Business Aspect

CLAVIER À CODE 12/24V AVEC BADGES RFID THOMSON

Ce produit vous permet de gérer l’accès d’un domicile ou d’une entreprise de manière simple et efficace, et de contrôler un accès verrouillé par gâche électrique, et/ou l’ouverture d’un automatisme de portail par l’intermédiaire de son contact sec.
Le clavier à code Thomson est équipé de deux sorties qui permettent de gérer indépendamment la gâche électrique ou l’automatisme de deux accès distincts. Il dispose également d’entrées filaires permettant de contrôler et signaler un accès resté ouvert.
Chaque accès peut être déverrouillé par la saisie d’un code secret de 4 à 6 chiffres ou le passage de l’un des 5 badges RFID fournis devant la façade du clavier. Les touches du clavier sont rétro-éclairées.
Il est possible au total d’enregistrer dans l’appareil jusqu’à 1200 badges ou codes secrets et de les attribuer à l’une ou l’autre des sorties disponibles.

Technical Aspect

CLAVIER À CODE 12/24V AVEC BADGES RFID THOMSON

Quelques caractéristiques techniques :
Alimentation du clavier : 12-24VDC / 12-18VAC
Consommation : 60mA
Consommation en veille : 25 +/- 5mA Relais contact sec : Zone 1 / Zone 2 / Alarme 1A max
Durée de fonctionnement des relais : 1 à 99s
Indice de Protection IP65
Température de fonctionnement : -40°C +60°C
Humidité en Fonctionnement : 5% – 95%
RH Nombre d’utilisateurs : 1200 max
Lecteur RFID 125kHz EM
Distance RFID : max 3 à 6cm
Dimensions : H128 x L82 x l28mm
Poids : 650g
Matériau : Alliage de zinc

Project Description

Problem Definition
Avoir l'accès à un local en ayant un badge ou le mot de passe
Challenges & Motivation
Nous avions décidés de réaliser ce projet pour nous mettre en sécurité ainsi que notre bien
De nos jours, le contrôle d'accès est le l'un des principaux moyens de filtrer et gérer les individus.
Le contrôle d'accès est le meilleur moyen qui existe pour sécuriser un lieu car on protège les individus, les biens matériels ou immatériels, les locaux.
Real and Complete Usecases

 En effet, grâce au contrôle d’accès par badge, vous limitez les entrées au sein de vos locaux, ainsi seules les personnes habilitées peuvent y entrer. De ce fait, vous réduisez considérablement, les risques liés au vandalisme ou à la dégradation des locaux qu’un individu extérieur pourrait faire.

Certes, vous protégez votre entreprise, mais vous protégez également vos collaborateurs. En effet, cela les aide à se sentir plus en sécurité.

Technical Description

Comment ça marche?

Le lecteur RFID couplé à la carte Arduino permet de détecter un badge enregistré ou non. Lorsque l’utilisateur est reconnu, le système déclenche l’ouverture de la porte avec un affichage sur l’écran LCD “accès autorisé” ou une alarme (buzzer) dans le cas échéant en affichant “accès refusé.

 

Hardware

Materials
ImageNamePart NumberPriceCountLink
Ecran lcd 294-869517,86 euros1🛒
Serrure électriqueVERROU 12V6,45 €1🛒
Buzzer 5V134-72960,50 eur1🛒
Lecteur RFIDNFC RFID-RC522 4 euros1🛒
carte ArduinoCarte UNO11,90 euros1🛒
Clavier alphanumérique CLAVIER 16 TOUCHES3,35 €1🛒
Relais 5v Relais 5V - 250V - 10A Songle SRD-05VDC-1,991🛒
Alimentation 12V175-33059,901🛒
Cable de connexion CÂBLES MÂLE/MÂLE X654,45 €1🛒
Breadboardmb-1029,90 £1🛒
Schematic

Software

Arduino Code

#include  
#include 
#include 
#include  
#include 

LiquidCrystal_I2C lcd(0x27,16,2);
#define taille 6
#define SS_PIN 10
#define RST_PIN 9
#define Serrure 3 
#define Buzzer 8
char Data[taille];
char Code1[taille] = "1234D";
int indice = 0;
char customKey;
const byte ROWS = 4;
const byte COLS = 4; 
char keys[ROWS][COLS] = {
   {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

byte rowPins[ROWS] = {4,5,6,7}; 
byte colPins[COLS] = {A3,A2,A1,A0};
Keypad customKeypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);

MFRC522 mfrc522(SS_PIN, RST_PIN);//Create MFRC522 instance.

void setup()
{
 pinMode(Buzzer, OUTPUT); 
 pinMode(Serrure,OUTPUT);
 Serial.begin(9600);// Initiate a serial communication
 SPI.begin();    
 mfrc522.PCD_Init();  
 lcd.init();// initialize the lcd 
 lcd.init();
 lcd.backlight();
 lcd.setCursor(2,0);
 lcd.print("PORTE FERMEE");
 Serial.println("PORTE FERMEE");
 lcd.setCursor(0,1);
 lcd.print("TAPEZ VOTRE CODE ");
 Serial.println("TAPEZ VOTRE CODE ");

       digitalWrite(Serrure,HIGH);
}

void loop()
{
  ///////////////////////////////////////////////////////////////////////////////////////////////////
 customKey = customKeypad.getKey();
  if (customKey) // makes sure a key is actually pressed, equal to (customKey != NO_KEY)
  {
    digitalWrite(Buzzer,HIGH);
    delay(100);
    digitalWrite(Buzzer,LOW);
    Data[indice] = customKey;
   lcd.setCursor(5,0);
   lcd.print("CODE:");
   Serial.print("CODE:");
    indice++;
    if(indice==1)
    {
      lcd.clear();
         lcd.setCursor(5,0);
   lcd.print("CODE:");
   
      lcd.setCursor(0,1);
      lcd.print("*");//lcd.print(customKey);
    }
        if(indice==2)
    {
     lcd.setCursor(1,1);
      lcd.print("*");//lcd.print(customKey);
     Serial.print("*");
    }
            if(indice==3)
    {
     lcd.setCursor(2,1);
          lcd.print("*");    //lcd.print(customKey);
    }

    if(indice==4)
    {
     lcd.setCursor(3,1);
     lcd.print("*");  //lcd.print(customKey);

    }

        if(indice==5)
    {
     lcd.setCursor(4,1);
      lcd.print("*");//lcd.print(customKey);
   delay(500);
    }
    
   
 }

  if(indice == taille-1 )
  {
    indice=0;
    if(!strcmp(Data, Code1))
    {
           
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("ACCES AUTORISER");
      lcd.setCursor(4,1);
      lcd.print("CODE BON");
      digitalWrite(Serrure,LOW);
      delay(1000);
      digitalWrite(Serrure,HIGH);
      delay(2000);
      affichage();
    }
    else
    {  
       clearData();
       lcd.clear();
       lcd.setCursor(2,0);
       lcd.print("ACCES REFUSER");
       lcd.setCursor(2,1);
       lcd.print("MAUVAIS CODE ");
       digitalWrite(Buzzer,HIGH);
       delay(1000);
       digitalWrite(Buzzer,LOW);
       delay(1000);
       affichage(); 
    }   
     
  }
  delay(100);

///////////////////////////////////////////////////////////////////////////////////////////////////

// ///////////////////////////////////////////////////////////////////////////////////////////////////
//    // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  //Show UID on serial monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
if(content.substring(1) == "FC 04 AF 1A")//change here the UID of the card/cards that you want to give access
  {
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("ACCES AUTORISER");
      lcd.setCursor(3,1);
      lcd.print("BONNE CARTE");
      digitalWrite(Serrure,LOW);
      delay(1000);
      digitalWrite(Serrure,HIGH);
      delay(2000);
      affichage();
  } else   
  {
       clearData();
       lcd.clear();
       lcd.setCursor(2,0);
       lcd.print("ACCES REFUSER");
       lcd.setCursor(2,1);
       lcd.print("MAUVAISE CARTE");
       digitalWrite(Buzzer,HIGH);
       delay(1000);
       digitalWrite(Buzzer,LOW);
       delay(1000);
       affichage();
  }
       digitalWrite(Serrure,HIGH);

 }
 ///////////////////////////////////////////////////////////////////////////////////////////////////

    
/*********************************************************************************************************************************************/
/************************************************************* Sous Programme ****************************************************************/
/*********************************************************************************************************************************************/
void clearData()
{
  while(indice !=0)
  {
    Data[indice--] = 0;
  }
  return; 
}
void affichage()
{
   lcd.clear();
   lcd.setCursor(3,0);
   lcd.print("PORTE FERMEE");
   lcd.setCursor(0,1);
   lcd.print("TAPEZ VOTRE CODE ");
   return;
}

External Services