Comment construire un système de péage automatique à l’aide d’Arduino

Automatic Toll Gate System Project using Arduino
Composants Description Quantité
Arduino Uno Microcontrôleur utilisé pour lire les capteurs, traiter les données RFID et contrôler la servo-porte. 1

Lecteur RFID

Lit les cartes RFID et envoie leur identifiant unique à l’Arduino. Utilisé comme scanner de carte de paiement numérique. 1
Étiquettes/cartes RFID Stocké avec les valeurs d’équilibre. Utilisé pour simuler les cartes de paiement des véhicules. 3
Modules de capteurs infrarouges Détecte la présence du véhicule à l’entrée et à la sortie du péage. 2
Servomoteur Agit comme un portail automatique qui s’ouvre et se ferme. 1
LED rouge Indique un accès refusé ou un portail fermé. 1
LED verte Indique le succès du paiement ou la porte ouverte 1
Fils de liaison Utilisé pour les connexions de circuits.

Planche à pain Pour connecter des composants sans soudure. 1
Alimentation 5 V/alimentation USB Alimente l’Arduino et les composants connectés. 1

Composants requis pour le projet de système de péage automatique utilisant Arduino, notamment un lecteur RFID, des capteurs IR, un servomoteur et des LED

1. Le véhicule arrive – Le premier capteur infrarouge détecte le véhicule qui approche.
2. Balayage RFID – Le conducteur tape la carte RFID et l’Arduino lit son identifiant.
3. Vérification de la carte et du solde – Le système vérifie la carte et vérifie si le solde est suffisant.
4. Décision de paiement

  • Si le solde est suffisant → le péage est déduit.
  • Sinon → l’accès est refusé.

5. La porte s’ouvre – Pour un paiement réussi, le servo ouvre le portail et la LED verte s’allume.
6. Laissez-passer pour véhicules – Le deuxième capteur IR détecte le départ du véhicule.
7. La porte se ferme – Une fois que le véhicule a quitté la sortie, le portail se ferme et les LED se réinitialisent.
8. Système prêt- Le système attend le prochain véhicule.

Schéma de circuit du système de péage automatique

Tableaux complets de connexion des broches pour système de péage automatique

Épingles RFID Broches Arduino
SDA 10
SCK 13
MOSI 11
MISO 12
GND GND
TVD 9
3,3 V 3,3 V

Pour plus d’informations, vous pouvez vous référer au didacticiel Arduino RFID : Guide complet du RC522 avec code et projet, qui fournit des schémas de câblage clairs et un exemple de code pour les débutants. Les indicateurs LED fournissent un retour visuel clair dans le système de péage automatisé, aidant ainsi les utilisateurs à comprendre l’état du système en un coup d’œil.

Câblage des indicateurs LED

LED Broches Arduino
LED rouge 6
LED verte 7
Les deux LED GND GND

Capteurs IR

Broches Arduino

Entrée IR OUT 6
Quitter IR OUT 7
VCC 5V
GND GND
SERVOmoteur Broches Arduino

Signal

5
VCC 5V
GND GND

Un guide utile pour les débutants est le didacticiel Comment contrôler un servomoteur à l’aide d’Arduino, qui fournit des instructions étape par étape.

#include 
#include 
#include 
#define SS_PIN 10
#define RST_PIN 9
#define IR_ENTRY 2
#define IR_EXIT 3
#define LED_RED 6
#define LED_GREEN 7
#define SERVO_PIN 5
Servo gateServo;
MFRC522 rfid(SS_PIN, RST_PIN);
const int GATE_OPEN = 90;
const int GATE_CLOSED = 0;
byte Tag1[4] = {...};
byte Tag2[4] = {...};
byte Tag3[4] = {...};
int balance1 = 500;
int balance2 = 300;
int balance3 = 0;
int tollAmount = 20;

Dans cette partie, les objets pour le module RFID et le servomoteur sont créés. Les identifiants des étiquettes RFID sont stockés dans des tableaux, avec les soldes de leur portefeuille. Les positions des portes et le montant du péage sont également définis dans cet ensemble de codes. Ces valeurs seront disponibles tout au long du programme et pourront être utilisées à plusieurs reprises au cours du programme.

4. Fonction de configuration – Initialisation du système

void setup() {
 Serial.begin(9600);
 SPI.begin();
 rfid.PCD_Init();
 pinMode(IR_ENTRY, INPUT);
 pinMode(IR_EXIT, INPUT);
 pinMode(LED_RED, OUTPUT);
 pinMode(LED_GREEN, OUTPUT);
 gateServo.attach(SERVO_PIN);
 gateServo.write(GATE_CLOSED);
}
void loop() {
 digitalWrite(LED_RED, HIGH);
 digitalWrite(LED_GREEN, LOW);
 gateServo.write(GATE_CLOSED);
 if (digitalRead(IR_ENTRY)) {
   Serial.println("\nCar at entry. Waiting for RFID...\n");
   while (digitalRead(IR_ENTRY) == HIGH) {
     if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) {
       delay(100);
       continue;
     }
     Serial.print("RFID Tag Detected: ");
     printUID(rfid.uid.uidByte);
     Serial.println();
     bool is1 = uidEquals(rfid.uid.uidByte, Tag1);
     bool is2 = uidEquals(rfid.uid.uidByte, Tag2);
     bool is3 = uidEquals(rfid.uid.uidByte, Tag3);
     if (is1) {
       processCard(balance1, 1);
     } else if (is2) {
       processCard(balance2, 2);
     } else if (is3) {
       processCard(balance3, 3);
     } else {
       Serial.println("Unknown Card -- Access Denied");
       denyAccess();
     }
     waitForCardRemoval();
     rfid.PICC_HaltA();
     rfid.PCD_StopCrypto1();
     delay(200);
   }
 }
}

Sortie du moniteur série – Test du système de péage automatique

Le moniteur série fournit des commentaires en temps réel pour le débogage et la surveillance du projet de système de péage automatique. Ces journaux permettent de vérifier que le système fonctionne correctement et facilitent le débogage pendant le développement.

Vous trouverez ci-dessous un exemple de format de sortie série :

Moniteur série montrant l'authentification RFID réussie, la déduction du solde et l'ouverture automatique du péage dans le projet Arduino

Sortie du moniteur série affichant la carte RFID détectée mais l'accès refusé en raison d'un solde insuffisant dans le système de péage automatiséProjet complet de système de péage automatique assemblé utilisant Arduino avec connexions de planche à pain

La première sortie montre le flux complet d’une entrée réussie d’un véhicule. Lorsque le capteur infrarouge détecte une voiture, le système scanne l’étiquette RFID et vérifie la carte comme autorisée. Après avoir confirmé le solde et déduit le montant du péage, l’Arduino ouvre le portail asservi, laissant passer le véhicule puis ferme le portail. Enfin, le système se réinitialise et attend le prochain véhicule.

Main tenant la carte RFID près du module de lecteur RC522 pour authentifier et ouvrir la barrière de péage automatiséeLED rouge allumée indiquant l'état d'accès refusé dans le projet de système de péage automatique

Dans le scénario de solde insuffisant, le système lit la carte RFID, mais après avoir vérifié le solde stocké, il constate que le montant n’est pas suffisant pour payer le péage. L’Arduino refuse alors l’accès et affiche un message d’avertissement sur le moniteur série.

Applications concrètes des systèmes de péage automatique

La technologie des systèmes de péage automatisés a de nombreuses applications pratiques au-delà de la perception de base du péage :

» Postes de péage autoroutier : La perception automatisée des péages réduit les embouteillages et élimine la manipulation manuelle des espèces, améliorant ainsi le débit sur les routes très fréquentées.
» Parkings : Les centres commerciaux, les aéroports et les complexes de bureaux utilisent des systèmes d’entrée/sortie automatisés basés sur la RFID pour une gestion efficace du stationnement.
» Complexes résidentiels : Les communautés fermées mettent en œuvre un contrôle d’accès RFID pour l’identification des véhicules des résidents et la gestion de la sécurité.
» Installations industrielles : Les entrepôts et les usines de fabrication utilisent des portails automatisés pour le suivi des véhicules et l’autorisation d’accès.
» Établissements d’enseignement : Les écoles et les universités déploient des systèmes RFID pour l’accès aux véhicules sur le campus et la gestion du stationnement.
» Lieux de l’événement : Les stades et les salles de concert utilisent des portes automatisées pour une validation rapide et sans contact des billets et une gestion des entrées.

Dépannage des problèmes courants dans le système de péage automatique

Problème Causes possibles Solutions
Le lecteur RFID ne détecte pas les cartes • Mauvaise tension (en utilisant 5 V au lieu de 3,3 V)
• Connexions SPI lâches
• Version de bibliothèque incorrecte
• Vérifiez la connexion d’alimentation 3,3 V.
• Vérifiez tous les fils SPI (MOSI, MISO, SCK, SS)
• Mettre à jour la bibliothèque MFRC522 vers la dernière version.
• Plage de détection de la carte de test (max 5 cm)
Le servomoteur ne bouge pas • Alimentation électrique insuffisante
• Mauvaise connexion des broches
• Bibliothèque Servo.h non incluse
• Utilisez une alimentation externe de 5 V pour le servo (min 500 mA).
• Vérifiez la broche de signal connectée à la broche numérique 5.
• Inclure Servo.h au début du code
• Testez le servo indépendamment avec le code de balayage
Les capteurs IR se déclenchent toujours • Réglage incorrect de la sensibilité
• Interférence de la lumière ambiante
• Capteur positionné trop près
• Ajustez le potentiomètre sur le module IR.
• Protéger les capteurs de la lumière directe du soleil
• Positionner les capteurs à 10-15 cm du point de détection
• Ajouter un délai dans le code pour anti-rebond des signaux
Le portail se ferme avant le passage du véhicule • Le capteur IR de sortie ne fonctionne pas
• Retard insuffisant dans le code
• Mauvais positionnement du capteur
• Testez le capteur de sortie indépendamment
• Augmenter le délai après l’ouverture du portail (2-3 secondes)
• Positionner le capteur de sortie au-delà de la barrière du portail
• Ajouter une boucle while pour attendre le passage du véhicule
Le solde ne se met pas à jour correctement • Variable non transmise par référence
• Erreur de logique de code
• Réinitialisation de la balance lors du cycle d’alimentation
• Utilisation et opérateur dans les paramètres de fonction
• Vérifier la logique de déduction dans processCard()
• Stocker les soldes dans l’EEPROM pour la persistance
• Ajoutez des impressions de débogage en série pour suivre les modifications.
Plusieurs cartes avec le même UID • Utilisation de l’UID par défaut à partir d’exemples
• Cartes mal initialisées
• Cloner des cartes du même lot
• Lire l’UID réel à l’aide du code de vidage RFID
• Utilisez des cartes uniques pour les tests
• Mettre à jour les tableaux de balises avec de vrais UID
• Pensez à utiliser les blocs mémoire de la carte

Fonctionnalités avancées pour votre projet de système de péage automatique

Améliorez votre projet de système de péage automatique à l’aide d’Arduino avec ces modifications avancées :

1. Intégration IoT et connectivité cloud

2. Améliorations du système de paiement

3. Intégration avancée des capteurs

4. Améliorations de l’interface utilisateur

5. Fonctionnalités de sécurité et de sûreté

Projets de référence

Référentiel GitHub et fichiers sources

Accédez au code source complet, aux schémas de circuit et à la documentation de ce projet de système de péage automatique à l’aide d’Arduino.

Système de péage automatique utilisant un fichier ArduinoSystème de péage automatique utilisant le fichier Zip Arduino

Projets basés sur la RFID utilisant le lecteur RFID EM18

  Système d'allumage de voiture basé sur les empreintes digitales utilisant Arduino et RFID  Système de gestion d'événements basé sur l'IoT utilisant RFID et ThingSpeak

Système de gestion d’événements basé sur l’IoT utilisant RFID et ThingSpeak

Créez un système de gestion d’événements IoT basé sur RFID qui non seulement surveille le journal d’entrée mais, avec l’aide de la technologie IoT, mais peut également envoyer les données de journal et d’entrée directement à un serveur dédié capable de gérer toute l’authentification, l’autorisation et la gestion, rendant l’ensemble du processus transparent.

  Comment connecter la RFID au microcontrôleur STM32

Comment connecter la RFID au microcontrôleur STM32

Créez un système de gestion d’événements IoT basé sur RFID qui surveille non seulement le journal des entrées, mais avec l’aide de la technologie IoT, mais peut également envoyer les données de journal et d’entrée directement à un serveur dédié capable de gérer toute l’authentification, l’autorisation et la gestion, rendant l’ensemble du processus transparent.

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

YouTube video