0% ont trouvé ce document utile (0 vote)
19 vues7 pages

Karima Parking Projet

Le document présente un code Arduino pour un système de contrôle d'accès utilisant un lecteur RFID et un afficheur LCD. Il inclut des fonctionnalités telles que la détection de badges, l'activation de LEDs pour indiquer l'accès autorisé ou refusé, et le contrôle d'un servo moteur pour ouvrir une barrière. De plus, il intègre un capteur ultrason pour gérer la distance et activer des sorties en fonction de celle-ci.

Transféré par

Abir Yousfi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
19 vues7 pages

Karima Parking Projet

Le document présente un code Arduino pour un système de contrôle d'accès utilisant un lecteur RFID et un afficheur LCD. Il inclut des fonctionnalités telles que la détection de badges, l'activation de LEDs pour indiquer l'accès autorisé ou refusé, et le contrôle d'un servo moteur pour ouvrir une barrière. De plus, il intègre un capteur ultrason pour gérer la distance et activer des sorties en fonction de celle-ci.

Transféré par

Abir Yousfi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

LCD RS pin to digital pin 12

20

21 * LCD Enable pin to digital pin 11

22

23 * LCD D4 pin to digital pin 5

24

25 * LCD D5 pin to digital pin 4

26

27 * LCD D6 pin to digital pin 3

28

29 * LCD D7 pin to digital pin 2

30

31 * LCD R/W pin to ground

Essai “#include <SPI.h>

#include <MFRC522.h>

#include <LiquidCrystal.h>

#define SS_PIN 10

#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);

LiquidCrystal lcd(1, 4, 5, 6, 7, 8); // Initialisation de l'afficheur LCD

#define LED_VERTE 3

#define LED_ROUGE 2

#define MAX_TENTATIVES 3 // Nombre maximal de tentatives autorisées

byte badgeAutorise[4] = {0x07, 0xE7, 0x22, 0x1B}; // Code du badge autorisé

byte carteRFID[4] = {0x23, 0x7F, 0xCC, 0x0E}; // Code de la carte RFID

int tentativesRestantes = MAX_TENTATIVES;

bool badgeDetecte = false; // Indicateur de détection de badge

void setup() {

[Link](9600); // Initialise la communication série

[Link](); // Initie la communication SPI

mfrc522.PCD_Init(); // Initie le lecteur RFID

pinMode(LED_VERTE, OUTPUT);

pinMode(LED_ROUGE, OUTPUT);

[Link](16, 2); // Initialise l'afficheur LCD (16 colonnes, 2 lignes)

[Link]("Security Access"); // Affiche le texte "Security Access" sur la première ligne

delay(2000); // Pause de 2 secondes

[Link](); // Efface l'écran LCD

}
void loop() {

// Recherche de badges RFID

if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) {

if (!badgeDetecte) {

[Link](0, 0); // Place le curseur au début de la première ligne

[Link]("Security Access"); // Affiche le texte d'accueil

return;

badgeDetecte = true; // Un badge a été détecté

// Vérification du badge

byte* id = [Link];

if (compareBytes(id, badgeAutorise, 4)) {

digitalWrite(LED_VERTE, HIGH); // Allume la LED verte

[Link](); // Efface le contenu de l'écran LCD

[Link]("Acces Autorise"); // Affiche le texte "Acces Autorise" sur la première ligne

delay(1000); // Pause de 1 seconde

digitalWrite(LED_VERTE, LOW); // Éteint la LED verte

[Link](); // Efface l'écran LCD

badgeDetecte = false; // Réinitialise l'indicateur de détection de badge

} else if (compareBytes(id, carteRFID, 4)) {

[Link](); // Efface le contenu de l'écran LCD

[Link]("Acces Refuse"); // Affiche le texte "Acces Refuse" sur la première ligne

digitalWrite(LED_ROUGE, HIGH); // Allume la LED rouge

delay(1000); // Pause de 1 seconde

digitalWrite(LED_ROUGE, LOW); // Éteint la LED rouge

tentativesRestantes--;

if (tentativesRestantes == 0) {
// Si plus de tentatives, déclenche l'alarme

alarme();

[Link](); // Efface l'écran LCD

badgeDetecte = false; // Réinitialise l'indicateur de détection de badge

bool compareBytes(byte a[], byte b[], int size) {

for (int i = 0; i < size; i++) {

if (a[i] != b[i]) {

return false;

return true;

void alarme() {

[Link](); // Efface le contenu de l'écran LCD

[Link]("Alarme! Tentatives"); // Affiche le texte "Alarme! Tentatives" sur la première ligne

[Link](0, 1); // Positionne le curseur sur la deuxième ligne

[Link]("epuisees."); // Affiche le texte "epuisees." sur la deuxième ligne

while (true) {

digitalWrite(LED_ROUGE, HIGH); // Fait clignoter la LED rouge en cas d'alarme

delay(500);

digitalWrite(LED_ROUGE, LOW);

delay(500);

#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#define SS_PIN 10
#define RST_PIN 9
#define LED_VERTE 3
#define LED_ROUGE 2
#define SERVO_PIN 4

MFRC522 mfrc522(SS_PIN, RST_PIN);


Servo servo;

#define MAX_TENTATIVES 3 // Nombre maximal de tentatives autorisées


#define TEMPS_ATTENTE 5000 // Temps d'attente en millisecondes avant de
fermer la barrière

byte badgeAutorise[4] = {0x07, 0xE7, 0x22, 0x1B}; // Code du badge


autorisé
byte carteRFID[4] = {0x23, 0x7F, 0xCC, 0x0E}; // Code de la carte
RFID

int tentativesRestantes = MAX_TENTATIVES;


bool badgeDetecte = false; // Indicateur de détection de badge

void setup() {
[Link](9600); // Initialise la communication série
[Link](); // Initie la communication SPI
mfrc522.PCD_Init(); // Initie le lecteur RFID
[Link](SERVO_PIN); // Attache le servo moteur au pin 4
[Link](0); // Positionne le servo à 0 degré (fermé) au démarrage

pinMode(LED_VERTE, OUTPUT);
pinMode(LED_ROUGE, OUTPUT);
digitalWrite(LED_VERTE, LOW); // Éteint la LED verte au démarrage
digitalWrite(LED_ROUGE, LOW); // Éteint la LED rouge au démarrage
}

void loop() {
// Recherche de badges RFID
if (!mfrc522.PICC_IsNewCardPresent() || !
mfrc522.PICC_ReadCardSerial()) {
if (!badgeDetecte) {
digitalWrite(LED_VERTE, LOW); // Éteint la LED verte
digitalWrite(LED_ROUGE, LOW); // Éteint la LED rouge
}
badgeDetecte = false;
return;
}

badgeDetecte = true; // Un badge a été détecté


// Vérification du badge
byte* id = [Link];
if (compareBytes(id, badgeAutorise, 4)) {
digitalWrite(LED_VERTE, HIGH); // Allume la LED verte
[Link](90); // Ouvre la barrière à un angle de 90 degrés
delay(TEMPS_ATTENTE); // Attente pendant 5 secondes
[Link](0); // Ferme la barrière à un angle de 0 degré
delay(1000); // Attente supplémentaire pour laisser le temps de
fermer complètement
digitalWrite(LED_VERTE, LOW); // Éteint la LED verte
badgeDetecte = false; // Réinitialise l'indicateur de détection de
badge
} else if (compareBytes(id, carteRFID, 4)) {
digitalWrite(LED_ROUGE, HIGH); // Allume la LED rouge
delay(1000); // Attente de 1 seconde
digitalWrite(LED_ROUGE, LOW); // Éteint la LED rouge
badgeDetecte = false; // Réinitialise l'indicateur de détection de
badge
}
}

bool compareBytes(byte a[], byte b[], int size) {


for (int i = 0; i < size; i++) {
if (a[i] != b[i]) {
return false;
}
}
return true;
}

Le code pour servo moteur et rfid ( barrieere automatique

Regare ce code « #include "Ultrasonic.h"

Ultrasonic ultrasonic(9, 8); // Trig et Echo

void setup() {
[Link](9600);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
}

void loop () {
int dist = [Link](CM); // exemple de changement de
méthode, vérifiez la documentation

[Link](dist);
[Link](" cm");
if (dist < 3) {digitalWrite(12, LOW); digitalWrite(11, HIGH);}
if (dist > 3) {digitalWrite(12, HIGH); digitalWrite(11, LOW);}

delay(100);
}

Vous aimerez peut-être aussi