Made byBobr AI

Projet ScanShield : Contrôle d'Accès Scolaire RFID

Découvrez ScanShield, un système intelligent de contrôle d'accès scolaire utilisant RFID et Arduino pour sécuriser les entrées des lycées.

#scanshield#arduino#rfid#contrôle-d-accès#tsti2d#sécurité-scolaire#digicode
Watch
Pitch
Projet ScanShield
SCANSHIELD
TSTI2D_4
1/14
Made byBobr AI
CONTEXTE
Permettre d'aider le personnel éducatif à gérer des entrées sécurisés et à faciliter l'entrée pour les élèves avec un système d'oubli de code.
2/14
Made byBobr AI
SOMMAIRE
RÉPARTITION DES TÂCHES
ASPECT ENVIRONNEMENTAL
Planning
Use Case
Diagramme Requirements
Chaîne d'information
Photo
Code
Questions du GO
3/14
Made byBobr AI
RÉPARTITION
DES TÂCHES
Wassim :
Identifier les élèves rentrant et scanner leur badges respectifs.
Oualid :
Faire un digicode permettant à l'élève ayant oublié son badge d'entrer son code à la place
4/14
Made byBobr AI

Consomme peu d'énergie il est donc à considérer énergétiquement et facile à entretenir.

Cela facilite la charge de travail lié au personnel éducatif et facilite également l'entrée au lycée.

L'achat d'un scanner n'est pas coûteuse, il apportera des changements qualitatifs au sein du lycée tout en ayant une carte réutilisable sur les 3 ans de scolarité.

Environnemental
Social
Economique
Durable
ASPECT
ENVIRONNEMENTAL
5/14
Made byBobr AI
PLANNING
6/14
Nom Date de déb... Date de fin Semaine 6 Semaine 7 Semaine 8 Semaine 9 Semaine 10 Semaine 11 Semaine 12 Semaine 13 Semaine 14
Planification 02/02/2026 02/02/2026
Recherche d'idée 03/02/2026 03/02/2026
Cahier des charges 05/02/2026 05/02/2026
Simulation 10/02/2026 10/02/2026
Revue 0 12/02/2026 12/02/2026
Conception 13/02/2026 13/02/2026
Préparation question GO 16/02/2026 16/02/2026
Maquettage du projet 17/02/2026 17/02/2026
Test du projet 19/02/2026 19/02/2026
Maquette suite 09/03/2026 10/03/2026
Copie_Maquette suite 12/03/2026 12/03/2026
Revue 1 13/03/2026 13/03/2026
Test et validation 16/03/2026 17/03/2026
Préparation des questions 19/03/2026 20/03/2026
Finalisation du projet 23/03/2026 24/03/2026
Finalisation du p. 26/03/2026 26/03/2026
Grand Oral Blanc 27/03/2026 27/03/2026
Oral Blanc Suite 30/03/2026 31/03/2026
Révision préparation écrit 02/04/2026 02/04/2026
Made byBobr AI
USE CASE
7/14
ScanShield
Scanner
Digicode
Identifier les élèves
Identifier si oublie carte
Autoriser ou refuser l'accès
Eleve
<<include>>
<<include>>
Made byBobr AI
DIAGRAMME REQUIREMENTS
<<include>> <<include>> <<include>> <<dependency>>
req
ReqDiagram
<<requirement>>
ScanShield
Id="1.0"
Text="Le système devra scanner chaque élève"
<<requirement>>
Digicode
Id="2.0"
Text="Permettre à l'élève d'accéder au lycée si oubli de carte"
<<requirement>>
Identifier
Id="1.1"
Text="Identifier chaque carte"
<<requirement>>
Autorisation
Id="1.2"
Text="Autoriser ou refuser l'accès au lycée"
<<requirement>>
Alimentation
Id="3.0"
Text="Doit être efficace énergétiquement et capable de tenir longtemps"
<<requirement>>
Gain de temps
Id="4.0"
Text="Faire gagner du temps au personnel tout en améliorant la sécurité"
8/14
Made byBobr AI
CHAÎNE D'INFORMATION
Grandeurs physiques :
Acquérir :
Digicode
Lecteur RFID
Signal électrique
Traiter :
Arduino
Signal numérique
Communiquer :
Afficheur LCD
Envoie vers chaîne d'énergie
9/14
Made byBobr AI
PHOTO
10/14
Made byBobr AI
CODE
#include <SPI.h> #include <MFRC522.h> #include <Keypad.h> #include <Wire.h> #include "rgb_lcd.h" MFRC522 mfrc522(10, 9); rgb_lcd lcd; 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] = {9, 8, 7, 6}; byte colPins[COLS] = {5, 4, 3, 2}; Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); byte uids[][4] = { {0xDE, 0xAD, 0xBE, 0xEF}, {0xCA, 0xFE, 0xBA, 0xBE} }; String codes[] = { "1234", "5678" }; int ids[] = {1, 2}; bool attenteID = true; bool attCode = false; String currentCode = ""; int badgeIndex = -1; void setup() { SPI.begin(); mfrc522.PCD_Init(); lcd.begin(16, 2); lcd.setRGB(255, 255, 255); lcd.print("Init Shield..."); delay(1000); lcd.clear(); lcd.print("Presentez badge"); }
void loop() { char key = keypad.getKey(); if (key == '#') { attenteID = true; attCode = false; currentCode = ""; badgeIndex = -1; lcd.clear(); lcd.setRGB(255, 255, 255); lcd.print("Presentez badge"); return; } if (attenteID) { if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { gestionSaisie(); // Update UI for (int i = 0; i < 2; i++) { if (checkUID(mfrc522.uid.uidByte, uids[i])) { badgeIndex = i; break; } } if (badgeIndex != -1) { attenteID = false; attCode = true; lcd.clear(); lcd.setRGB(0, 0, 255); // Blue lcd.print("Code PIN:"); } } } if (attCode && key) { currentCode += key; lcd.setCursor(0, 1); lcd.print(currentCode); if (currentCode.length() == 4) { if (currentCode == codes[badgeIndex]) { lcd.clear(); lcd.setRGB(0, 255, 0); // Green lcd.print("Acces autorise"); } else { lcd.clear(); lcd.setRGB(255, 0, 0); // Red lcd.print("Code incorrect"); } delay(3000); setup(); // System reset } } }
11/14
Made byBobr AI
CODE (FIN)
    delay(2000);
    resetSystem();
    return;
  }
  
  if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) return;

  lcd.clear();
  bool ok = false;
  
  for(byte i=0; i
    
    attenteID = 0;
    attenteCode = 0;
    idSaisi = codeSaisi = codeCorrect = "";
    badgeIndex = -1;
    resetAffichage();
  }
}

void resetAffichage() {
  lcd.clear();
  lcd.setRGB(0, 0, 255);
  lcd.print("Passer carte");
}

boolean compareUID(byte *a, byte *b) {
  for(byte i=0; i<4; i++) {
    if(a[i] != b[i]) return 0;
  }
  return 1;
}

void resetSystem() {
  // Reinitialisation du microcontroleur
}
12/14
Made byBobr AI
QUESTIONS DU GO
De quelle manière un système automatisé peut-il être fiable avec des capteurs imparfaits ?
Capteur jamais parfaits, plusieurs sources d'informations, Vérification et refus si doute.
A quel point peut-on simplifier un système de sécurité sans le rendre vulnérable ?
Simplifier améliore la fiabilité, Ne pas trop simplifier, limiter le système et vérifier.
13/14
Made byBobr AI
MERCI DE
VOTRE ÉCOUTE
14/14
Made byBobr AI
Bobr AI

DESIGNER-MADE
PRESENTATION,
GENERATED FROM
YOUR PROMPT

Create your own professional slide deck with real images, data charts, and unique design in under a minute.

Generate For Free

Projet ScanShield : Contrôle d'Accès Scolaire RFID

Découvrez ScanShield, un système intelligent de contrôle d'accès scolaire utilisant RFID et Arduino pour sécuriser les entrées des lycées.

Projet ScanShield

SCANSHIELD

TSTI2D_4

1/14

CONTEXTE

Permettre d'aider le personnel éducatif à gérer des entrées sécurisés et à faciliter l'entrée pour les élèves avec un système d'oubli de code.

2/14

SOMMAIRE

RÉPARTITION DES TÂCHES

ASPECT ENVIRONNEMENTAL

Planning

Use Case

Diagramme Requirements

Chaîne d'information

Photo

Code

Questions du GO

3/14

RÉPARTITION

DES TÂCHES

Wassim :

Identifier les élèves rentrant et scanner leur badges respectifs.

Oualid :

Faire un digicode permettant à l'élève ayant oublié son badge d'entrer son code à la place

4/14

ASPECT<br/>ENVIRONNEMENTAL

Consomme peu d'énergie il est donc à considérer énergétiquement et facile à entretenir.

Cela facilite la charge de travail lié au personnel éducatif et facilite également l'entrée au lycée.

L'achat d'un scanner n'est pas coûteuse, il apportera des changements qualitatifs au sein du lycée tout en ayant une carte réutilisable sur les 3 ans de scolarité.

5/14

PLANNING

6/14

USE CASE

7/14

ScanShield

Eleve

Scanner

Digicode

Identifier les élèves

Identifier si oublie carte

Autoriser ou refuser l'accès

DIAGRAMME REQUIREMENTS

8/14

1.0

Le système devra scanner chaque élève

2.0

Permettre à l'élève d'accéder au lycée si oubli de carte

1.1

Identifier chaque carte

1.2

Autoriser ou refuser l'accès au lycée

3.0

Doit être efficace énergétiquement et capable de tenir longtemps

4.0

Faire gagner du temps au personnel tout en améliorant la sécurité

CHAÎNE D'INFORMATION

Grandeurs physiques :

Acquérir :

Digicode<br>Lecteur RFID

Signal électrique

Traiter :

Arduino

Signal numérique

Communiquer :

Afficheur LCD

Envoie vers chaîne d'énergie

9/14

PHOTO

10/14

CODE

11/14

#include &lt;SPI.h&gt; #include &lt;MFRC522.h&gt; #include &lt;Keypad.h&gt; #include &lt;Wire.h&gt; #include "rgb_lcd.h" MFRC522 mfrc522(10, 9); rgb_lcd lcd; 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] = {9, 8, 7, 6}; byte colPins[COLS] = {5, 4, 3, 2}; Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); byte uids[][4] = { {0xDE, 0xAD, 0xBE, 0xEF}, {0xCA, 0xFE, 0xBA, 0xBE} }; String codes[] = { "1234", "5678" }; int ids[] = {1, 2}; bool attenteID = true; bool attCode = false; String currentCode = ""; int badgeIndex = -1; void setup() { SPI.begin(); mfrc522.PCD_Init(); lcd.begin(16, 2); lcd.setRGB(255, 255, 255); lcd.print("Init Shield..."); delay(1000); lcd.clear(); lcd.print("Presentez badge"); }

void loop() { char key = keypad.getKey(); if (key == '#') { attenteID = true; attCode = false; currentCode = ""; badgeIndex = -1; lcd.clear(); lcd.setRGB(255, 255, 255); lcd.print("Presentez badge"); return; } if (attenteID) { if (mfrc522.PICC_IsNewCardPresent() &amp;&amp; mfrc522.PICC_ReadCardSerial()) { gestionSaisie(); // Update UI for (int i = 0; i &lt; 2; i++) { if (checkUID(mfrc522.uid.uidByte, uids[i])) { badgeIndex = i; break; } } if (badgeIndex != -1) { attenteID = false; attCode = true; lcd.clear(); lcd.setRGB(0, 0, 255); // Blue lcd.print("Code PIN:"); } } } if (attCode &amp;&amp; key) { currentCode += key; lcd.setCursor(0, 1); lcd.print(currentCode); if (currentCode.length() == 4) { if (currentCode == codes[badgeIndex]) { lcd.clear(); lcd.setRGB(0, 255, 0); // Green lcd.print("Acces autorise"); } else { lcd.clear(); lcd.setRGB(255, 0, 0); // Red lcd.print("Code incorrect"); } delay(3000); setup(); // System reset } } }

CODE (FIN)

12/14

delay(2000); resetSystem(); return; } if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) return; lcd.clear(); bool ok = false; for(byte i=0; i<NUM_BADGES; i++) { if(compareUID(mfrc522.uid.uidByte, badges[i])) { ok = true; break; } } if (ok) { lcd.print("Acces autorise"); lcd.setRGB(0, 255, 0); } else { lcd.print("Carte refusee"); lcd.setRGB(255, 0, 0); } delay(2000); resetAffichage(); } void gestionSaisie(char key, String &s, bool masque) { // Fonction de gestion des saisies au clavier matriciel

attenteID = 0; attenteCode = 0; idSaisi = codeSaisi = codeCorrect = ""; badgeIndex = -1; resetAffichage(); } } void resetAffichage() { lcd.clear(); lcd.setRGB(0, 0, 255); lcd.print("Passer carte"); } boolean compareUID(byte *a, byte *b) { for(byte i=0; i<4; i++) { if(a[i] != b[i]) return 0; } return 1; } void resetSystem() { // Reinitialisation du microcontroleur }

QUESTIONS DU GO

De quelle manière un système automatisé peut-il être fiable avec des capteurs imparfaits ?

Capteur jamais parfaits, plusieurs sources d'informations, Vérification et refus si doute.

A quel point peut-on simplifier un système de sécurité sans le rendre vulnérable ?

Simplifier améliore la fiabilité, Ne pas trop simplifier, limiter le système et vérifier.

13/14

MERCI DE

VOTRE ÉCOUTE

14/14

  • scanshield
  • arduino
  • rfid
  • contrôle-d-accès
  • tsti2d
  • sécurité-scolaire
  • digicode