- Composants utilisés:
- Explication de travail:
- Description du circuit:
- Installation de la bibliothèque de câblagePi dans Raspberry Pi:
- Explication de la programmation:
Nous avons déjà utilisé la RFID dans beaucoup de nos projets RFID et déjà construit un système de présence basé sur RFID utilisant 8051, ici nous allons construire un système de présence basé sur RFID à l'aide de Raspberry Pi.
Dans ce projet de système de présence basé sur la RFID, nous vous expliquerons comment autoriser et compter automatiquement la présence à l'aide de cartes RFID. La technologie RFID (identification et détection par radiofréquence) est couramment utilisée dans les écoles, les collèges, les bureaux et les stations à diverses fins pour suivre automatiquement les personnes. Ici, nous compterons la présence d'une personne autorisée en utilisant la RFID.
Si vous n'êtes pas familier avec Raspberry Pi, nous avons créé une série de tutoriels et de projets Raspberry Pi, avec une interface avec tous les composants de base et quelques projets simples pour commencer, vérifiez.
Composants utilisés:
- Raspberry Pi (avec carte SD démarrée)
- Bouton poussoir
- Avertisseur sonore
- Écran LCD 16x2
- Pot de 10k
- Résistance 10K
- LED
- Résistance 1k
- Planche à pain
- Lecteur RFID
- Puissance 5 volts
- Étiquettes ou cartes RFID
- Câble Ethernet
- Fils de connexion
Lecteur RFID et étiquettes:
La RFID est un appareil électronique qui comporte deux parties: l'une est un lecteur RFID et l'autre une étiquette ou une carte RFID. Lorsque nous plaçons l'étiquette RFID à proximité du lecteur RFID, il lit les données de l'étiquette en série. L'étiquette RFID a un code de caractère à 12 chiffres dans une bobine. Cette RFID fonctionne à une vitesse de transmission de 9600 bps. La RFID utilise un électroaimant pour transférer les données du lecteur à l'étiquette ou de l'étiquette au lecteur.
Explication de travail:
Ici, Raspberry Pi 3 contrôle l'ensemble du processus de ce projet (l'utilisateur peut utiliser n'importe quelle carte Raspberry Pi). Le lecteur RFID lit l' ID de la carte RFID, ces données sont reçues par Raspberry Pi via UART, puis RPi valide la carte et affiche les résultats sur l'écran LCD.
Lorsqu'une personne place son étiquette RFID près du lecteur RFID pour la numériser, la RFID lit les données de l'étiquette et les envoie à Raspberry Pi. Ensuite, Raspberry Pi lit le numéro d'identification unique de cette étiquette RFID, puis compare ces données avec des données ou des informations prédéfinies. Si les données correspondent à des données prédéfinies, le Raspberry Pi incrémente de un la présence de la personne de la balise et si la correspondance ne correspond pas, le microcontrôleur affiche le message `` Carte invalide '' sur l'écran LCD et le buzzer émet un bip continu pendant un certain temps. Et ici, nous avons également ajouté un bouton poussoir pour voir le total non. de présence de tous les étudiants. Ici, nous avons pris 4 étiquettes RFID dans lesquelles trois sont utilisées pour enregistrer la présence de trois étudiants et une est utilisée comme une carte invalide.
Description du circuit:
Le schéma de circuit de ce projet de système de présence Raspberry Pi est très simple, il contient Raspberry Pi 3, lecteur RFID, balises RFID, buzzer, LED et LCD. Ici, Raspberry Pi contrôle le processus complet comme la lecture des données provenant du lecteur, la comparaison des données avec des données prédéfinies, le buzzer de conduite, la LED d'état de conduite et l'envoi de l'état à l'écran LCD. Le lecteur RFID est utilisé pour lire les étiquettes RFID. Le buzzer est utilisé pour les indications et piloté par un transistor NPN intégré. L'écran LCD est utilisé pour afficher l'état ou les messages dessus.
Les connexions sont simples. L'écran LCD est connecté au Raspberry Pi en mode 4 bits. La broche RS, RW et EN de l'écran LCD est directement connectée au câblagePi GPIO 11, gnd et 10. Et la broche de données est connectée au câblagePi GPIO 6, 5, 4 et 1. Un potentiomètre 10K est utilisé pour régler le contraste ou la luminosité de l'écran LCD. Le buzzer est connecté à la broche 7 de la borne GPIO du câblage Pi GPIO par rapport à la terre. Trois LED sont connectées pour l'indication de l'étudiant avec la carte RFID respective. Et une LED est utilisée pour indiquer que le système est prêt à scanner la carte RFID. Un bouton-poussoir est également connecté à la broche 12 du câblagePi GPIO pour afficher le compteur de présence. Le lecteur RFID est connecté à la broche UART (câblage de la broche GPIO 16).
Installation de la bibliothèque de câblagePi dans Raspberry Pi:
Comme en Python, nous importons RPi.GPIO en tant que fichier d'en-tête IO pour utiliser les broches GPIO de Raspberry Pi, ici en langage C, nous devons utiliser la bibliothèque de câblagePi pour utiliser les broches GPIO dans notre programme C. Nous pouvons l'installer en utilisant les commandes ci-dessous une par une, vous pouvez exécuter cette commande depuis Terminal ou depuis un client SSH comme Putty (si vous utilisez Windows). Parcourez notre didacticiel Premiers pas avec Raspberry Pi pour en savoir plus sur la manipulation du Raspberry Pi.
sudo apt-get install git-core sudo apt-get mise à jour sudo apt-get mise à niveau git clone git: //git.drogon.net/wiringPi cd câblagePi git pull origine cd câblagePi./build
Testez l'installation de la bibliothèque de câblagePi, utilisez les commandes ci-dessous:
gpio -v gpio readall
Explication de la programmation:
Maintenant, nous avons d'abord inclus certaines bibliothèques et définir les broches que nous devons utiliser dans ce code.
#comprendre
Après cela, définissez des variables et un tableau pour le calcul et stockez les valeurs et les chaînes.
int sp; int count1 = 0, count2 = 0, count3 = 0; char ch; char rfid; int i = 0; char temp;
Ensuite, des fonctions ont été écrites pour exécuter l'ensemble du processus. Certains d'entre eux sont donnés ci-dessous:
Étant donné lcdcmd vide fonction est utilisée pour envoyer des commandes à cristaux liquides
void lcdcmd (unsigned int ch) {int temp = 0x80; digitalWrite (D4, temp & ch << 3); digitalWrite (D5, temp & ch << 2); digitalWrite (D6, temp & ch << 1); digitalWrite (D7, temp & ch); DigitalWrite (RS, LOW); digitalWrite (EN, HIGH);……………..
La fonction d' écriture vide donnée est utilisée pour envoyer des données à l'écran LCD.
void write (unsigned int ch) {int temp = 0x80; digitalWrite (D4, temp & ch << 3); digitalWrite (D5, temp & ch << 2); digitalWrite (D6, temp & ch << 1); digitalWrite (D7, temp & ch); DigitalWrite (RS, HIGH); digitalWrite (EN, HIGH);……………..
Étant donné que la fonction void clear () est utilisée pour effacer l'écran LCD, void setCursor est utilisé pour définir la position du curseur et annuler l'impression pour envoyer une chaîne à l'écran LCD.
void clear () {lcdcmd (0x01); } void setCursor (int x, int y) {int set = 0; si (y == 0) set = 128 + x; si (y == 1) set = 192 + x; lcdcmd (ensemble); } void print (char * str) {while (* str) {write (* str); str ++; }}
La fonction void begin est utilisée pour initialiser l'écran LCD en mode 4 bits.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Les fonctions void buzzer () et void wait () sont utilisées pour faire retentir le buzzer et attendre de remettre la carte en place. La fonction void serialbegin est utilisée pour initialiser la communication série.
buzzer vide () {digitalWrite (buzz, HIGH); retard (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); retard (3000); } void serialbegin (int baud) {if ((sp = serialOpen ("/ dev / ttyS0", baud)) <0) {clear (); print ("Impossible d'ouvrir"); setCursor (0,1); print ("port série"); }}
Dans la fonction void setup () , nous initialisons tous les GPIO, LCD et UART série.
void setup () {if (câblagePiSetup () == -1) {clear (); print ("Impossible de démarrer"); setCursor (0,1); impression ("câblagePi"); } pinMode (led1, OUTPUT); pinMode (led2, SORTIE);……………………
La fonction donnée void get_card () est utilisée pour obtenir les données du lecteur RFID.
Dans la fonction void main () , nous avons montré quelques messages sur l'écran LCD et comparé les données de balise avec des données prédéfinies pour valider la carte avec le code ci-dessous.
……………… if (strncmp (rfid, "0900711B6003", 12) == 0) {count1 ++; clair(); print ("Attd. Registered"); setCursor (0,1); impression ("Studnet 1"); digitalWrite (led1, HIGH); avertisseur sonore(); digitalWrite (led1, LOW); attendez(); } else if (strncmp (rfid, "090070FE6EE9", 12) == 0) {count2 ++; clair(); print ("Attd. Registered"); setCursor (0,1);………………
Enfin, la fonction void check_button () est utilisée pour afficher la fréquentation totale en appuyant sur le bouton.
void check_button () {if (digitalRead (in1) == 0) {digitalWrite (led5, LOW); clair(); setCursor (0,0); print ("std1 std2 std3");……………..
Vérifiez le code complet de ce système de présence Raspberry Pi ci-dessous.