RFID je skraćenica od Identifikacija radio frekvencije. RFID modul može čitati ili pisati malu količinu podataka u pasivnu RFID oznaku, koja se može koristiti u procesu identifikacije u raznim sustavima kao što su Attendance sustav, sigurnosni sustav, sustav glasanja itd. RFID je vrlo prikladna i lagana tehnologija.
Da bismo čitali i označavali pasivne RFID kartice, potreban nam je mikrokontroler s UART hardverom. Ako odaberemo mikrokontroler bez UART-a, trebamo implementirati softver UART. Ovdje koristimo PIC mikrokontroler PIC16F877A za povezivanje RFID-a. Jednostavno ćemo pročitati jedinstveni identifikacijski broj. RFID oznaka i prikažite ga na LCD-u 16x2.
RFID modul i njegov rad
U ovom smo projektu odabrali EM-18 RFID modul, koji je mali, jeftin i energetski učinkovit modul. EM-18 RFID modul koristi 125 KHz RF frekvenciju za čitanje pasivnih 125 KHz RFID oznaka. Modul EM-18 koristi oscilator, demodulator i dekoder podataka za čitanje podataka s pasivne kartice.
RFID oznaka
Dostupne su tri vrste RFID oznaka, pasivna, aktivna ili pasivna uz pomoć baterije. Na tržištu su dostupne različite vrste RFID oznaka različitih oblika i veličina. Malo ih koristi različite frekvencije u svrhu komunikacije. Upotrijebit ćemo pasivne RFID kartice od 125 khz koje sadrže jedinstvene ID podatke. Ovdje su RFID kartica i oznake koje koristimo za ovaj projekt.

Rad RFID-a
Ako vidimo tablicu podataka (http://www.alselectro.com/files/rfid-ttl-em18.pdf) EM-18 modula, mogli bismo vidjeti stražnju stranu modula i aplikacijski krug:

Modul koristi UART komunikacijski protokol u brzini od 9600 Baud. Kada se valjana frekvencijska oznaka unese u magnetsko polje čitača EM-18, BC557 tranzistor se uključi i zujalica će početi oglašavati, a on također svijetli LED. Koristimo modul koji je lako dostupan na tržištu i ima kompletne sklopove sa zujalicom, led i dodatnim RS232 priključkom.
Ovdje je RFID modul ploče koji koristimo s imenima pinova. Ovaj modul također ima dodatnu opciju napajanja.

Treba imati na umu da izlaz čitača EM-18 koristi logičku razinu 5V. Mogli bismo koristiti drugi mikrokontroler koji koristi nižu logičku razinu, ali u takvim je slučajevima potreban dodatni pretvarač logičke razine. U nekoliko slučajeva, UART pin na 3.3V mikrokontroleru često tolerira 5V.
Izlaz UART pruža 12-bitne ASCII podatke. Prvih 10 bitova je broj RFID oznake, što je jedinstveni ID, a posljednje dvije znamenke koriste se za testiranje pogrešaka. Te posljednje dvije znamenke su XOR broja oznake. EM-18 modul očitat će podatke s 125 KHz pasivnih RFID oznaka ili kartica.
Te oznake ili ID imaju tvornički programirani niz memorije koji pohranjuje jedinstveni ID broj. Kako su pasivne, tako da na kartici ili pločicama nema baterije, napaja ih magnetsko polje RF primopredajnog modula. Ove RFID oznake izrađene su pomoću EM4102 CMOS IC-a koji je taktiran i magnetskim poljem.
Potreban materijal
Za izradu ovog projekta trebamo sljedeće stavke-
- PIC16F877A
- Kristal od 20 MHz
- 2kom 33pF kondenzator s keramičkim diskom
- LCD s 16x2 karaktera
- Ploča za kruh
- 10k unaprijed postavljenih lonaca
- Otpor 4.7k
- Jednožične žice za spajanje
- Adapter od 5V
- RF modul EM-18
- Zujalica 5V
- Kondenzator 100uF &.1uF 12V
- BC557 Tranzistor
- LED
- Otpor 2.2k i 470R.
Koristimo ploču modula EM-18 s zujalicom i unaprijed konfiguriranom led lampicom. Dakle, komponente navedene od 11 do 15 nisu potrebne.
Kružni dijagram

Shema je jednostavna; povezali smo LCD preko priključka RB i povezali EM-18 modul preko UART Rx pina.
Povezali smo ploču na ploči prema shemi.

Objašnjenje koda
Kao i uvijek, prvo moramo postaviti konfiguracijske bitove u mikrokontroleru pic, definirati neke makronaredbe, uključujući knjižnice i frekvenciju kristala. Možete provjeriti kôd za sve one u kompletnom kodu navedenom na kraju.
// PIC16F877A Postavke konfiguracijskog bita // Izjave o konfiguraciji izvorne crte 'C' // CONFIG #pragma config FOSC = HS // Bitovi za odabir oscilatora (HS oscilator) #pragma config WDTE = OFF // Bit za omogućavanje nadzornika vremena (WDT onemogućen) # pragma config PWRTE = OFF // Bit za uključivanje i isključivanje timera (PWRT onemogućen) #pragma config BOREN = ON // Bit za omogućavanje resetiranja Brown-out (omogućen BOR) #pragma config LVP = OFF // Niskonaponski (pojedinačno napajanje)) Bit za omogućavanje serijskog programiranja u krugu (pin RB3 / PGM ima PGM funkciju; omogućeno je programiranje niskog napona) #pragma config CPD = OFF // Bit zaštite podataka EEPROM memorijskog koda (zaštita podataka EEPROM koda isključena) #pragma config WRT = OFF // Bitovi za omogućavanje upisivanja u Flash program memorije (zaštita od zapisivanja isključena; cjelokupna memorija programa može se upisati pomoću EECON kontrole) #pragma config CP = OFF // Blic za zaštitu koda memorije Flash programa (zaštita koda isključena) # uključite "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Ako vidimo glavnu funkciju nazvali smo funkciju za inicijalizaciju sustava. U ovoj funkciji inicijaliziramo LCD i UART.
/ * Ova je funkcija za inicijalizaciju sustava. * / void system_init (void) { TRISB = 0x00; // LUKA B postavljena kao izlazni pin lcd_init (); // Ovo će inicijalizirati lcd EUSART1_Initialize (); // Ovo će inicijalizirati Eusart }
Sada smo u glavnoj funkciji koristili 13-bitni niz koji je RFID broj. Primamo svaki bit RFID-a br. pomoću EUSART1_Read (); funkcija, koja je deklarirana unutar UART biblioteke. Nakon primanja 12 bita, ispisujemo niz kao niz na LCD-u.
void main (void) { nepotpisano brojanje znakova; nepotpisani znak RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Sažetak kruga"); while (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Postavljanje kursora za početak drugog retka lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Kompletni kod s demonstracijskim videom dan je u nastavku.
Također provjerite povezanost RFID-a s drugim mikrokontrolerom:
RFID povezivanje s MSP430 Launchpadom
RFID povezivanje s mikrokontrolerom 8051
RFID povezivanje s Arduinom
