RFID signifie Radio Frequency Identification. Le module RFID peut lire ou écrire une petite quantité de données dans une étiquette RFID passive, qui peut être utilisée dans le processus d'identification dans divers systèmes tels que le système de présence, le système de sécurité, le système de vote, etc. La RFID est une technologie très pratique et facile.
Pour lire les cartes et étiquettes RFID passives, nous avons besoin d'un microcontrôleur avec du matériel UART. Si nous sélectionnons un microcontrôleur sans UART, nous devons implémenter le logiciel UART. Ici, nous utilisons le microcontrôleur PIC PIC16F877A pour l'interfaçage RFID. Nous lirons simplement le numéro d'identification unique. d'étiquettes RFID et l'afficher sur un écran LCD 16x2.
Module RFID et son fonctionnement
Dans ce projet, nous avons choisi le module RFID EM-18, qui est un module de petite taille, à faible coût et économe en énergie. Le module RFID EM-18 utilise une fréquence RF de 125 KHz pour lire les étiquettes RFID passives de 125 KHz. Le module EM-18 utilise un oscillateur, un démodulateur et un décodeur de données pour lire les données d'une carte passive.
Étiquette RFID
Il existe trois types d'étiquettes RFID disponibles: passive, active ou passive à batterie. Différents types d'étiquettes RFID avec différents types de formes et de tailles sont disponibles sur le marché. Peu d'entre eux utilisent une fréquence différente à des fins de communication. Nous utiliserons des cartes RFID passives 125Khz qui contiennent les données d'identification uniques. Voici la carte RFID et les tags que nous utilisons pour ce projet.
Fonctionnement de la RFID
Si nous voyons la fiche technique (http://www.alselectro.com/files/rfid-ttl-em18.pdf) du module EM-18, nous pourrions voir l'arrière du module et le circuit d'application:
Le module utilise le protocole de communication UART avec un débit de 9600 bauds. Lorsqu'une étiquette de fréquence valide est introduite dans le champ magnétique du lecteur EM-18, le transistor BC557 se met en marche et le buzzer commence à émettre un bip, il allume également la LED. Nous utilisons un module facilement disponible sur le marché et doté de circuits complets avec un buzzer, une LED et un port RS232 supplémentaire.
Voici le module de carte RFID que nous utilisons avec les noms de broches. Ce module a également une option d'alimentation supplémentaire.
Une chose doit être gardée à l'esprit que la sortie du lecteur EM-18 utilise un niveau logique 5V. Nous pourrions utiliser un autre microcontrôleur qui utilise un niveau logique inférieur, mais dans de tels cas, le convertisseur de niveau logique supplémentaire est nécessaire. Dans de rares cas, la broche UART du microcontrôleur 3.3V est souvent tolérante à 5V.
La sortie UART fournit des données ASCII 12 bits. Les 10 premiers bits sont le numéro d'étiquette RFID, qui est l'ID unique et les deux derniers chiffres sont utilisés pour les tests d'erreur. Ces deux derniers chiffres sont le XOR du numéro d'étiquette. Le module EM-18 lira les données des étiquettes ou cartes RFID passives 125 KHz.
Ces étiquettes ou ID ont une matrice de mémoire programmée en usine qui stocke le numéro d'identification unique. Comme ceux-ci sont passifs, donc aucune batterie n'est présente dans la carte ou les étiquettes, ils sont alimentés par le champ magnétique du module émetteur-récepteur RF. Ces étiquettes RFID sont fabriquées à l'aide du circuit intégré CMOS EM4102 qui est également cadencé par le champ magnétique.
Matériel requis
Pour réaliser ce projet, nous avons besoin des éléments suivants:
- PIC16F877A
- Cristal 20Mhz
- Condensateur à disque en céramique 2pcs 33pF
- LCD 16 x 2 caractères
- Une maquette
- Pot préréglé 10k
- Résistance 4,7k
- Fils monobrin à connecter
- Un adaptateur 5V
- Module RF EM-18
- Buzzer 5V
- Condensateur 100uF et.1uF 12V
- Transistor BC557
- LED
- Résistance 2,2k et 470R.
Nous utilisons la carte de module EM-18 avec buzzer et led préconfigurés. Ainsi, les composants répertoriés de 11 à 15 ne sont pas nécessaires.
Schéma
Le schéma est simple; nous avons connecté l'écran LCD sur le port RB et connecté le module EM-18 sur la broche UART Rx.
Nous avons fait la connexion sur la maquette selon le schéma.
Explication du code
Comme toujours, nous devons d'abord définir les bits de configuration dans le microcontrôleur pic, définir certaines macros, y compris les bibliothèques et la fréquence du cristal. Vous pouvez vérifier le code pour tous ceux dans le code complet donné à la fin.
// Paramètres du bit de configuration PIC16F877A // Instructions de configuration de la ligne source 'C' // CONFIG #pragma config FOSC = HS // Bits de sélection de l'oscillateur (oscillateur HS) #pragma config WDTE = OFF // Bit d'activation de l'horloge de surveillance (WDT désactivé) # pragma config PWRTE = OFF // Bit d'activation de la minuterie de mise sous tension (PWRT désactivé) #pragma config BOREN = ON // Bit d'activation de la réinitialisation de Brown-out (BOR activé) #pragma config LVP = OFF // Basse tension (alimentation simple) Bit d'activation de la programmation série en circuit (la broche RB3 / PGM a une fonction PGM; programmation basse tension activée) #pragma config CPD = OFF // Bit de protection du code mémoire EEPROM des données (protection du code EEPROM des données désactivée) #pragma config WRT = OFF // Bits d'activation d'écriture de la mémoire de programme Flash (protection en écriture désactivée; toute la mémoire de programme peut être écrite par la commande EECON) #pragma config CP = OFF // Bit de protection de code de mémoire de programme flash (protection de code désactivée) # inclure "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Si nous voyons la fonction principale , nous avons appelé une fonction pour initialiser le système. Nous initialisons LCD et UART dans cette fonction.
/ * Cette fonction est destinée aux initialisations du système. * / void system_init (void) { TRISB = 0x00; // PORT B défini comme broche de sortie lcd_init (); // Cela initialisera l'écran LCD EUSART1_Initialize (); // Cela initialisera l'Eusart }
Maintenant, dans la fonction principale , nous avons utilisé un tableau de 13 bits qui est le numéro RFID. Nous recevons chaque bit de la RFID no. en utilisant EUSART1_Read (); fonction, qui est déclarée à l'intérieur de la bibliothèque UART. Après avoir reçu 12 bits, nous imprimons le tableau sous forme de chaîne sur l'écran LCD.
void main (void) {nombre de caractères non signés; non signé char RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Circuit Digest"); while (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Définit le curseur pour la deuxième ligne commençant par lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Le code complet avec la vidéo de démonstration est donné ci-dessous.
Vérifiez également l'interfaçage RFID avec un autre microcontrôleur:
Interfaçage RFID avec le Launchpad MSP430
Interfaçage RFID avec le microcontrôleur 8051
Interfaçage RFID avec Arduino