Made byBobr AI

Badge RFID Multifonctions : Gestion des Accès pour Lycée

Découvrez un projet de badge RFID centralisé pour lycée : gestion des accès, casiers et cantine avec Arduino, interface web et base de données.

#rfid#arduino#gestion-accès#lycée#grand-oral#iot#système-embarqué#informatique
Watch
Pitch
Background

BADGE MULTIFONCTIONS

Solution de Gestion des Accès pour Lycée

Made byBobr AI

Questions Grand Oral

Site Web & Données personnelles

Q1

Comment les technologies numériques peuvent-elles simplifier la gestion d'un lycée ?

  • Problèmes actuels : systèmes multiples, gestion compliquée
  • Solution : badge unique, centralisation des données
  • Rôle du site web : interface admin, consultation, gestion élèves
  • Avantages : gain de temps, meilleure organisation
  • Limites : dépendance au numérique, pannes, RGPD
Q2

Quels sont les enjeux liés à la collecte des données personnelles ?

  • Données collectées : identité, horaires, services utilisés
  • Utilité : gestion admin, sécurité, organisation
  • Risques : piratage, utilisation abusive
  • Protection : RGPD, sécurisation, contrôle d'accès
  • Équilibre : innovation vs vie privée
Made byBobr AI

Questions Grand Oral

RFID & Objets connectés

Q1

Comment les objets connectés transforment-ils notre société ?

  • Définition : objets communiquant via internet
  • Exemple projet : badge RFID → système informatique
  • Avantages : automatisation, gain de temps
  • Applications : transports, santé, entreprises, écoles
  • Limites : sécurité, coût, dépendance
Q2

Comment la RFID change-t-elle l'accès aux services ?

  • Avant : clés physiques, cartes multiples
  • Aujourd'hui : badges, sans contact, smartphones
  • Exemple projet : un badge pour tous les services du lycée
  • Avantages : simplicité, rapidité, centralisation
  • Éthique : traçabilité, vie privée, sécurité
Made byBobr AI
Background

PLANNING DU PROJET

Calendrier Prévisionnel et Jalons Clés

Phase Réalisation
Statut En cours
Gantt Chart

Vue d'ensemble chronologique des tâches et livrables majeurs.

Made byBobr AI

MONTAGE

camera_view.jpg
Montage Image
Montage Arduino + Module RFID RC522 + Écran LCD RGB
Made byBobr AI

CODE ARDUINO

Arduino C++
main.ino — Badge RFID Arduino
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
#include <Wire.h> // Bibliothèque I2C (LCD)
#include <SPI.h> // Bibliothèque SPI (RFID)
#include <MFRC522.h> // Bibliothèque lecteur RFID RC522
#include "rgb_lcd.h" // Bibliothèque écran LCD RGB

// ---- PINS ----
#define SS_PIN 10 // Pin SDA (SS) du module RFID
#define RST_PIN 9 // Pin RESET du module RFID

MFRC522 mfrc522(SS_PIN, RST_PIN); // Objet RFID avec ses pins
rgb_lcd lcd; // Objet écran LCD

// ---- SETUP ----
void setup() { // Exécutée une fois au démarrage
  Serial.begin(9600); // Communication série avec le PC

  lcd.begin(16, 2); // LCD 16 colonnes, 2 lignes
  lcd.setRGB(0, 0, 255); // Couleur bleue (démarrage)
  lcd.setCursor(0, 0); // Curseur début ligne 1
  lcd.print(" Systeme RFID "); // Titre du système
  lcd.setCursor(0, 1); // Curseur ligne 2
  lcd.print(" Initialise... "); // Message d'initialisation
  delay(1500); // Pause pour lire

  SPI.begin(); // Initialise la communication SPI
  mfrc522.PCD_Init(); // Initialise le module RFID

  lcd.clear(); // Efface l'écran LCD
  lcd.setRGB(255, 165, 0); // Couleur orange (attente PC)
  lcd.setCursor(0, 0); // Position curseur ligne 1
  lcd.print("Attente PC... "); // Affiche message attente
  lcd.setCursor(0, 1); // Position ligne 2
  lcd.print(" "); // Ligne vide

  unsigned long t = millis(); // Sauvegarde le temps actuel
  while (millis() - t < 5000) { // Boucle max 5 secondes
    if (Serial.available()) { // Si message du PC
      String msg = Serial.readStringUntil('\n'); // Lit le message
      msg.trim(); // Supprime espaces/retours
      if (msg == "READY") break; // PC prêt → sort boucle
    }
  }
  afficherPret(); // Affiche écran 'prêt'
}
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
// ---- LOOP ----
void loop() { // Fonction exécutée en boucle
  if (Serial.available()) { // Si message du PC
    String reponse = Serial.readStringUntil('\n'); // Lit réponse
    reponse.trim(); // Nettoie le texte
    if (reponse == "GRANTED") { // Accès autorisé
      afficherAutorise(); // Appelle fonction autorisé
    } else if (reponse == "DENIED") { // Accès refusé
      afficherRefuse(); // Appelle fonction refus
    } else if (reponse == "READY") { // Remise à zéro
      afficherPret(); // Retour écran d'attente
    }
  }
  if (!mfrc522.PICC_IsNewCardPresent()) return; // Aucun badge → quitte
  if (!mfrc522.PICC_ReadCardSerial()) return; // Lecture échoue → quitte

  String uid = ""; // Variable pour l'UID du badge
  for (byte i = 0; i < mfrc522.uid.size; i++) { // Parcourt l'UID
    if (mfrc522.uid.uidByte[i] < 0x10) uid += "0"; // Ajoute 0 si besoin
    uid += String(mfrc522.uid.uidByte[i], HEX); // Convertit en HEX
  }
  uid.toUpperCase(); // Met l'UID en majuscules

  lcd.clear(); // Efface l'écran
  lcd.setRGB(255, 255, 0); // Jaune = lecture en cours
  lcd.setCursor(0, 0); // Position ligne 1
  lcd.print("Scan badge... "); // Message de scan
  lcd.setCursor(0, 1); // Position ligne 2
  lcd.print(uid); // Affiche l'UID

  Serial.println("SCAN:" + uid + ":porte"); // Envoie UID au PC

  mfrc522.PICC_HaltA(); // Stop communication carte
  mfrc522.PCD_StopCrypto1(); // Stop chiffrement RFID
  delay(500); // Pause anti-double lecture
}

// ---- AFFICHAGE ----
void afficherPret() { // Écran 'prêt'
  lcd.clear(); // Efface l'écran
  lcd.setRGB(0, 100, 255); // Couleur bleu
  lcd.setCursor(0, 0); // Ligne 1
  lcd.print(" Pret - Badge "); // Message principal
  lcd.setCursor(0, 1); // Ligne 2
  lcd.print(" Approchez svp "); // Instruction utilisateur
}
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
void afficherAutorise() { // Accès autorisé
  lcd.clear(); // Efface l'écran
  lcd.setRGB(0, 255, 0); // Couleur verte
  lcd.setCursor(0, 0); // Ligne 1
  lcd.print(" ACCES AUTORIS "); // Message succès
  lcd.setCursor(0, 1); // Ligne 2
  lcd.print(" Bienvenue ! "); // Message accueil

  delay(1500); // Pause pour lecture

  afficherPret(); // Retour écran d'attente
}

void afficherRefuse() { // Accès refusé
  lcd.clear(); // Efface l'écran
  lcd.setRGB(255, 0, 0); // Couleur rouge
  lcd.setCursor(0, 0); // Ligne 1
  lcd.print(" ACCES REFUSE "); // Message refus
  lcd.setCursor(0, 1); // Ligne 2
  lcd.print(" Badge inconnu "); // Explication

  delay(1500); // Pause

  afficherPret(); // Retour état initial
}
Made byBobr AI

Chaîne d'information

Schéma Chaîne d'information

De la lecture du badge à l'enregistrement en base de données via internet

Made byBobr AI

Site WEB

Page de connexion administrateur
Interface de gestion — Historique des accès

Interface web sécurisée — Gestion et suivi des accès en temps réel

Made byBobr AI
Background

DIAGRAMME D'EXIGENCES

Analyse Fonctionnelle du Système

Diagramme d'exigences
Made byBobr AI
Background

RÉPARTITION DES TÂCHES

Organisation et rôles par spécialité

SIN Icon

SIN

  • Création du site web
  • Création et gestion de la BDD
  • Interface administrateur
SIN 2 Icon

SIN 2

  • Programmation RFID
  • Identification des élèves
  • Transmission des données
EE Icon

EE

  • Alimentation du système
  • Gestion de l’énergie
  • Sécurisation électrique
Objectif Répartir le travail selon les spécialités pour optimiser l’efficacité du projet.
Made byBobr AI

CONTEXTE

Dans un lycée, l’accès aux bâtiments, l’ouverture des casiers et l’identification à la cantine sont gérés par des systèmes différents. Cette organisation complique la gestion administrative et le suivi des élèves.
Le développement des technologies numériques permet aujourd’hui de centraliser ces services grâce à un système unique utilisant la technologie RFID et relié à une interface web permettant l’enregistrement et la consultation des données.

OBJECTIF

Simplifier et centraliser la gestion des accès grâce à un badge multifonctions connecté.

Made byBobr AI
Background

DIAGRAMME DE CONTEXTE

Diagramme de contexte
SYSTEM ARCHITECTURE // CONTEXT DIAGRAM
Made byBobr AI
Background

Diagramme de cas d’utilisation

Diagramme SysML
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

Badge RFID Multifonctions : Gestion des Accès pour Lycée

Découvrez un projet de badge RFID centralisé pour lycée : gestion des accès, casiers et cantine avec Arduino, interface web et base de données.

BADGE MULTIFONCTIONS

Solution de Gestion des Accès pour Lycée

Projet Scolaire

2024 - 2025

Questions Grand Oral

Site Web & Données personnelles

Comment les technologies numériques peuvent-elles simplifier la gestion d'un lycée ?

Quels sont les enjeux liés à la collecte des données personnelles ?

Questions Grand Oral

RFID & Objets connectés

Comment les objets connectés transforment-ils notre société ?

Comment la RFID change-t-elle l'accès aux services ?

PLANNING DU PROJET

Calendrier Prévisionnel et Jalons Clés

Réalisation

En cours

Vue d'ensemble chronologique des tâches et livrables majeurs.

MONTAGE

Montage Arduino + Module RFID RC522 + Écran LCD RGB

CODE ARDUINO

Arduino C++

1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br>33<br>34<br>35<br>36<br>37<br>38<br>39<br>40<br>41<br>42<br>43<br>44<br>45

46<br>47<br>48<br>49<br>50<br>51<br>52<br>53<br>54<br>55<br>56<br>57<br>58<br>59<br>60<br>61<br>62<br>63<br>64<br>65<br>66<br>67<br>68<br>69<br>70<br>71<br>72<br>73<br>74<br>75<br>76<br>77<br>78<br>79<br>80<br>81<br>82<br>83<br>84<br>85<br>86<br>87<br>88<br>89<br>90

<span style='color:#c678dd'>#include</span> <span style='color:#98c379'>&lt;Wire.h&gt;</span> <span style='color:#6a9955'>// Bibliothèque I2C (LCD)</span><br><span style='color:#c678dd'>#include</span> <span style='color:#98c379'>&lt;SPI.h&gt;</span> <span style='color:#6a9955'>// Bibliothèque SPI (RFID)</span><br><span style='color:#c678dd'>#include</span> <span style='color:#98c379'>&lt;MFRC522.h&gt;</span> <span style='color:#6a9955'>// Bibliothèque lecteur RFID RC522</span><br><span style='color:#c678dd'>#include</span> <span style='color:#98c379'>"rgb_lcd.h"</span> <span style='color:#6a9955'>// Bibliothèque écran LCD RGB</span><br><br><span style='color:#6a9955'>// ---- PINS ----</span><br><span style='color:#c678dd'>#define</span> <span style='color:#d19a66'>SS_PIN</span> <span style='color:#d19a66'>10</span> <span style='color:#6a9955'>// Pin SDA (SS) du module RFID</span><br><span style='color:#c678dd'>#define</span> <span style='color:#d19a66'>RST_PIN</span> <span style='color:#d19a66'>9</span> <span style='color:#6a9955'>// Pin RESET du module RFID</span><br><br>MFRC522 <span style='color:#61afef'>mfrc522</span>(<span style='color:#d19a66'>SS_PIN</span>, <span style='color:#d19a66'>RST_PIN</span>); <span style='color:#6a9955'>// Objet RFID avec ses pins</span><br>rgb_lcd lcd; <span style='color:#6a9955'>// Objet écran LCD</span><br><br><span style='color:#6a9955'>// ---- SETUP ----</span><br><span style='color:#e06c75'>void</span> <span style='color:#61afef'>setup</span>() { <span style='color:#6a9955'>// Exécutée une fois au démarrage</span><br>&nbsp;&nbsp;Serial.<span style='color:#61afef'>begin</span>(<span style='color:#d19a66'>9600</span>); <span style='color:#6a9955'>// Communication série avec le PC</span><br><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>begin</span>(<span style='color:#d19a66'>16</span>, <span style='color:#d19a66'>2</span>); <span style='color:#6a9955'>// LCD 16 colonnes, 2 lignes</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setRGB</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>255</span>); <span style='color:#6a9955'>// Couleur bleue (démarrage)</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setCursor</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>0</span>); <span style='color:#6a9955'>// Curseur début ligne 1</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>print</span>(<span style='color:#98c379'>" Systeme RFID "</span>); <span style='color:#6a9955'>// Titre du système</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setCursor</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>1</span>); <span style='color:#6a9955'>// Curseur ligne 2</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>print</span>(<span style='color:#98c379'>" Initialise... "</span>); <span style='color:#6a9955'>// Message d'initialisation</span><br>&nbsp;&nbsp;<span style='color:#61afef'>delay</span>(<span style='color:#d19a66'>1500</span>); <span style='color:#6a9955'>// Pause pour lire</span><br><br>&nbsp;&nbsp;SPI.<span style='color:#61afef'>begin</span>(); <span style='color:#6a9955'>// Initialise la communication SPI</span><br>&nbsp;&nbsp;mfrc522.<span style='color:#61afef'>PCD_Init</span>(); <span style='color:#6a9955'>// Initialise le module RFID</span><br><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>clear</span>(); <span style='color:#6a9955'>// Efface l'écran LCD</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setRGB</span>(<span style='color:#d19a66'>255</span>, <span style='color:#d19a66'>165</span>, <span style='color:#d19a66'>0</span>); <span style='color:#6a9955'>// Couleur orange (attente PC)</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setCursor</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>0</span>); <span style='color:#6a9955'>// Position curseur ligne 1</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>print</span>(<span style='color:#98c379'>"Attente PC... "</span>); <span style='color:#6a9955'>// Affiche message attente</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setCursor</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>1</span>); <span style='color:#6a9955'>// Position ligne 2</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>print</span>(<span style='color:#98c379'>" "</span>); <span style='color:#6a9955'>// Ligne vide</span><br><br>&nbsp;&nbsp;<span style='color:#e06c75'>unsigned</span> <span style='color:#e06c75'>long</span> t = <span style='color:#61afef'>millis</span>(); <span style='color:#6a9955'>// Sauvegarde le temps actuel</span><br>&nbsp;&nbsp;<span style='color:#e06c75'>while</span> (<span style='color:#61afef'>millis</span>() - t &lt; <span style='color:#d19a66'>5000</span>) { <span style='color:#6a9955'>// Boucle max 5 secondes</span><br>&nbsp;&nbsp;&nbsp;&nbsp;<span style='color:#e06c75'>if</span> (Serial.<span style='color:#61afef'>available</span>()) { <span style='color:#6a9955'>// Si message du PC</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String msg = Serial.<span style='color:#61afef'>readStringUntil</span>(<span style='color:#98c379'>'\n'</span>); <span style='color:#6a9955'>// Lit le message</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.<span style='color:#61afef'>trim</span>(); <span style='color:#6a9955'>// Supprime espaces/retours</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style='color:#e06c75'>if</span> (msg == <span style='color:#98c379'>"READY"</span>) <span style='color:#e06c75'>break</span>; <span style='color:#6a9955'>// PC prêt → sort boucle</span><br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<span style='color:#61afef'>afficherPret</span>(); <span style='color:#6a9955'>// Affiche écran 'prêt'</span><br>}

<span style='color:#6a9955'>// ---- LOOP ----</span><br><span style='color:#e06c75'>void</span> <span style='color:#61afef'>loop</span>() { <span style='color:#6a9955'>// Fonction exécutée en boucle</span><br>&nbsp;&nbsp;<span style='color:#e06c75'>if</span> (Serial.<span style='color:#61afef'>available</span>()) { <span style='color:#6a9955'>// Si message du PC</span><br>&nbsp;&nbsp;&nbsp;&nbsp;String reponse = Serial.<span style='color:#61afef'>readStringUntil</span>(<span style='color:#98c379'>'\n'</span>); <span style='color:#6a9955'>// Lit réponse</span><br>&nbsp;&nbsp;&nbsp;&nbsp;reponse.<span style='color:#61afef'>trim</span>(); <span style='color:#6a9955'>// Nettoie le texte</span><br>&nbsp;&nbsp;&nbsp;&nbsp;<span style='color:#e06c75'>if</span> (reponse == <span style='color:#98c379'>"GRANTED"</span>) { <span style='color:#6a9955'>// Accès autorisé</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style='color:#61afef'>afficherAutorise</span>(); <span style='color:#6a9955'>// Appelle fonction autorisé</span><br>&nbsp;&nbsp;&nbsp;&nbsp;} <span style='color:#e06c75'>else</span> <span style='color:#e06c75'>if</span> (reponse == <span style='color:#98c379'>"DENIED"</span>) { <span style='color:#6a9955'>// Accès refusé</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style='color:#61afef'>afficherRefuse</span>(); <span style='color:#6a9955'>// Appelle fonction refus</span><br>&nbsp;&nbsp;&nbsp;&nbsp;} <span style='color:#e06c75'>else</span> <span style='color:#e06c75'>if</span> (reponse == <span style='color:#98c379'>"READY"</span>) { <span style='color:#6a9955'>// Remise à zéro</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style='color:#61afef'>afficherPret</span>(); <span style='color:#6a9955'>// Retour écran d'attente</span><br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<span style='color:#e06c75'>if</span> (!mfrc522.<span style='color:#61afef'>PICC_IsNewCardPresent</span>()) <span style='color:#e06c75'>return</span>; <span style='color:#6a9955'>// Aucun badge → quitte</span><br>&nbsp;&nbsp;<span style='color:#e06c75'>if</span> (!mfrc522.<span style='color:#61afef'>PICC_ReadCardSerial</span>()) <span style='color:#e06c75'>return</span>; <span style='color:#6a9955'>// Lecture échoue → quitte</span><br><br>&nbsp;&nbsp;String uid = <span style='color:#98c379'>""</span>; <span style='color:#6a9955'>// Variable pour l'UID du badge</span><br>&nbsp;&nbsp;<span style='color:#e06c75'>for</span> (<span style='color:#e06c75'>byte</span> i = <span style='color:#d19a66'>0</span>; i &lt; mfrc522.uid.size; i++) { <span style='color:#6a9955'>// Parcourt l'UID</span><br>&nbsp;&nbsp;&nbsp;&nbsp;<span style='color:#e06c75'>if</span> (mfrc522.uid.uidByte[i] &lt; <span style='color:#d19a66'>0x10</span>) uid += <span style='color:#98c379'>"0"</span>; <span style='color:#6a9955'>// Ajoute 0 si besoin</span><br>&nbsp;&nbsp;&nbsp;&nbsp;uid += String(mfrc522.uid.uidByte[i], HEX); <span style='color:#6a9955'>// Convertit en HEX</span><br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;uid.<span style='color:#61afef'>toUpperCase</span>(); <span style='color:#6a9955'>// Met l'UID en majuscules</span><br><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>clear</span>(); <span style='color:#6a9955'>// Efface l'écran</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setRGB</span>(<span style='color:#d19a66'>255</span>, <span style='color:#d19a66'>255</span>, <span style='color:#d19a66'>0</span>); <span style='color:#6a9955'>// Jaune = lecture en cours</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setCursor</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>0</span>); <span style='color:#6a9955'>// Position ligne 1</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>print</span>(<span style='color:#98c379'>"Scan badge... "</span>); <span style='color:#6a9955'>// Message de scan</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setCursor</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>1</span>); <span style='color:#6a9955'>// Position ligne 2</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>print</span>(uid); <span style='color:#6a9955'>// Affiche l'UID</span><br><br>&nbsp;&nbsp;Serial.<span style='color:#61afef'>println</span>(<span style='color:#98c379'>"SCAN:"</span> + uid + <span style='color:#98c379'>":porte"</span>); <span style='color:#6a9955'>// Envoie UID au PC</span><br><br>&nbsp;&nbsp;mfrc522.<span style='color:#61afef'>PICC_HaltA</span>(); <span style='color:#6a9955'>// Stop communication carte</span><br>&nbsp;&nbsp;mfrc522.<span style='color:#61afef'>PCD_StopCrypto1</span>(); <span style='color:#6a9955'>// Stop chiffrement RFID</span><br>&nbsp;&nbsp;<span style='color:#61afef'>delay</span>(<span style='color:#d19a66'>500</span>); <span style='color:#6a9955'>// Pause anti-double lecture</span><br>}<br><br><span style='color:#6a9955'>// ---- AFFICHAGE ----</span><br><span style='color:#e06c75'>void</span> <span style='color:#61afef'>afficherPret</span>() { <span style='color:#6a9955'>// Écran 'prêt'</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>clear</span>(); <span style='color:#6a9955'>// Efface l'écran</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setRGB</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>100</span>, <span style='color:#d19a66'>255</span>); <span style='color:#6a9955'>// Couleur bleu</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setCursor</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>0</span>); <span style='color:#6a9955'>// Ligne 1</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>print</span>(<span style='color:#98c379'>" Pret - Badge "</span>); <span style='color:#6a9955'>// Message principal</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setCursor</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>1</span>); <span style='color:#6a9955'>// Ligne 2</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>print</span>(<span style='color:#98c379'>" Approchez svp "</span>); <span style='color:#6a9955'>// Instruction utilisateur</span><br>}

91<br>92<br>93<br>94<br>95<br>96<br>97<br>98<br>99<br>100<br>101<br>102<br>103<br>104<br>105<br>106<br>107<br>108<br>109<br>110<br>111<br>112<br>113<br>114<br>115<br>116<br>117<br>118<br>119<br>120<br>121<br>122<br>123<br>124<br>125<br>126<br>127<br>128<br>129<br>130

<span style='color:#e06c75'>void</span> <span style='color:#61afef'>afficherAutorise</span>() { <span style='color:#6a9955'>// Accès autorisé</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>clear</span>(); <span style='color:#6a9955'>// Efface l'écran</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setRGB</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>255</span>, <span style='color:#d19a66'>0</span>); <span style='color:#6a9955'>// Couleur verte</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setCursor</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>0</span>); <span style='color:#6a9955'>// Ligne 1</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>print</span>(<span style='color:#98c379'>" ACCES AUTORIS "</span>); <span style='color:#6a9955'>// Message succès</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setCursor</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>1</span>); <span style='color:#6a9955'>// Ligne 2</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>print</span>(<span style='color:#98c379'>" Bienvenue ! "</span>); <span style='color:#6a9955'>// Message accueil</span><br><br>&nbsp;&nbsp;<span style='color:#61afef'>delay</span>(<span style='color:#d19a66'>1500</span>); <span style='color:#6a9955'>// Pause pour lecture</span><br><br>&nbsp;&nbsp;<span style='color:#61afef'>afficherPret</span>(); <span style='color:#6a9955'>// Retour écran d'attente</span><br>}<br><br><span style='color:#e06c75'>void</span> <span style='color:#61afef'>afficherRefuse</span>() { <span style='color:#6a9955'>// Accès refusé</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>clear</span>(); <span style='color:#6a9955'>// Efface l'écran</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setRGB</span>(<span style='color:#d19a66'>255</span>, <span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>0</span>); <span style='color:#6a9955'>// Couleur rouge</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setCursor</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>0</span>); <span style='color:#6a9955'>// Ligne 1</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>print</span>(<span style='color:#98c379'>" ACCES REFUSE "</span>); <span style='color:#6a9955'>// Message refus</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>setCursor</span>(<span style='color:#d19a66'>0</span>, <span style='color:#d19a66'>1</span>); <span style='color:#6a9955'>// Ligne 2</span><br>&nbsp;&nbsp;lcd.<span style='color:#61afef'>print</span>(<span style='color:#98c379'>" Badge inconnu "</span>); <span style='color:#6a9955'>// Explication</span><br><br>&nbsp;&nbsp;<span style='color:#61afef'>delay</span>(<span style='color:#d19a66'>1500</span>); <span style='color:#6a9955'>// Pause</span><br><br>&nbsp;&nbsp;<span style='color:#61afef'>afficherPret</span>(); <span style='color:#6a9955'>// Retour état initial</span><br>}

Chaîne d'information

De la lecture du badge à l'enregistrement en base de données via internet

Site WEB

Page de connexion administrateur

Interface de gestion — Historique des accès

Interface web sécurisée — Gestion et suivi des accès en temps réel

DIAGRAMME D'EXIGENCES

Analyse Fonctionnelle du Système

RÉPARTITION DES TÂCHES

Répartir le travail selon les spécialités pour optimiser l’efficacité du projet.

CONTEXTE

Dans un lycée, l’accès aux bâtiments, l’ouverture des casiers et l’identification à la cantine sont gérés par des systèmes différents. Cette organisation complique la gestion administrative et le suivi des élèves.

Le développement des technologies numériques permet aujourd’hui de centraliser ces services grâce à un système unique utilisant la technologie RFID et relié à une interface web permettant l’enregistrement et la consultation des données.

OBJECTIF

Simplifier et centraliser la gestion des accès grâce à un badge multifonctions connecté.

DIAGRAMME DE CONTEXTE

Diagramme de cas d’utilisation

  • rfid
  • arduino
  • gestion-accès
  • lycée
  • grand-oral
  • iot
  • système-embarqué
  • informatique