RFID, Radyo Frekansı Tanımlama anlamına gelir. RFID modülü, Seyirci sistemi, güvenlik sistemi, oylama sistemi vb. Gibi çeşitli sistemlerde tanımlama sürecinde kullanılabilen bir Pasif RFID etiketine az miktarda veri okuyabilir veya yazabilir. RFID çok kullanışlı ve kolay bir teknolojidir.
Pasif RFID kartlarını ve etiketi okumak için UART donanımına sahip bir mikro denetleyiciye ihtiyacımız var. UART'sız bir mikro denetleyici seçersek, yazılım UART uygulamamız gerekir. Burada RFID arayüzünü oluşturmak için PIC Mikroişlemci PIC16F877A kullanıyoruz. Sadece benzersiz kimlik numarasını okuyacağız. RFID etiketleri ve 16x2 LCD ekran üzerinde görüntüleyin.
RFID modülü ve Çalışması
Bu projede küçük boyutlu, düşük maliyetli ve güç verimli modül olan EM-18 RFID modülünü seçtik. EM-18 RFID modülü, pasif 125 KHz RFID etiketlerini okumak için 125 KHz RF frekansı kullanır. EM-18 modülü, pasif bir karttan veri okumak için Osilatör, demodülatör ve veri kod çözücü kullanır.
RFID Etiketi
Üç tür RFID etiketi bulunmaktadır: Pasif, Aktif veya Pil destekli pasif. Piyasada farklı şekil ve boyutlara sahip farklı türde RFID etiketleri bulunmaktadır. Çok azı iletişim amacıyla farklı frekans kullanıyor. Benzersiz kimlik verilerini tutan 125 Khz Pasif RFID kartlarını kullanacağız. İşte bu proje için kullandığımız RFID kart ve etiketler.
RFID'nin Çalışması
EM-18 Modülünün veri sayfasını (http://www.alselectro.com/files/rfid-ttl-em18.pdf) görürsek, modülün arka tarafını ve uygulama devresini görebiliriz:
Modül, 9600 Baud hızında UART iletişim protokolünü kullanır. EM-18 okuyucunun manyetik alanına Geçerli bir frekans etiketi getirildiğinde, BC557 transistörü açılır ve sesli uyarı biplemeye başlar, ayrıca LED'i de yanar. Piyasada kolayca bulunabilen ve sesli, ledli ve ek bir RS232 portlu komple devre sistemine sahip bir modül kullanıyoruz.
İşte pin isimleri ile kullandığımız RFID kart modülü. Bu modül ayrıca ek güç seçeneğine de sahiptir.
EM-18 okuyucunun çıktısının 5V lojik seviyesi kullandığı unutulmamalıdır. Daha düşük bir mantık seviyesi kullanan başka bir mikro denetleyici kullanabiliriz, ancak bu gibi durumlarda, ek mantık seviyesi dönüştürücü gereklidir. Birkaç durumda, 3,3V mikro denetleyicinin UART pini genellikle 5V'a toleranslıdır.
UART çıkışı, 12 bitlik ASCII verileri sağlar. İlk 10 bit, benzersiz kimlik olan RFID etiket numarasıdır ve son iki hane, hata testi için kullanılır. Bu son iki hane, etiket numarasının XOR'udur. EM-18 modülü verileri 125 KHz Pasif RFID etiketlerinden veya kartlarından okuyacaktır.
Bu etiketler veya kimlikler, benzersiz kimlik numarasını saklayan fabrikada programlanmış bir bellek dizisine sahiptir. Bunlar pasif olduğundan, kart veya etiketlerde pil bulunmadığından, RF Alıcı-Verici modülünün manyetik alanı tarafından enerji verilir. Bu RFID etiketleri, manyetik alan tarafından da saati ölçülen EM4102 CMOS IC kullanılarak yapılır.
Gerekli Malzeme
Bu projeyi yapmak için aşağıdaki maddelere ihtiyacımız var:
- PIC16F877A
- 20Mhz Kristal
- 2 adet 33pF seramik disk kondansatör
- 16x2 Karakter LCD
- Bir breadboard
- 10k önceden ayarlanmış tencere
- 4.7k direnç
- Bağlanmak için tek telli teller
- 5V adaptör
- RF Modülü EM-18
- 5V Buzzer
- 100uF ve.1uF 12V kondansatör
- BC557 Transistör
- LED
- 2.2k ve 470R direnç.
EM-18 modül kartını zil ve led önceden yapılandırılmış olarak kullanıyoruz. Dolayısıyla, 11'den 15'e kadar listelenen bileşenlere gerek yoktur.
Devre şeması
Şematik basittir; LCD'yi RB portuna bağladık ve EM-18 modülünü UART Rx pinine bağladık.
Devre tahtasında bağlantıyı şematik olarak yaptık.
Kod Açıklama
Her zaman olduğu gibi, önce pic mikro denetleyicide yapılandırma bitlerini ayarlamamız, kitaplıklar ve kristal frekansı dahil bazı makroları tanımlamamız gerekir. Sen tüm o kodunu kontrol edebilirsiniz komple kod sonunda verilen.
// PIC16F877A Yapılandırma Bit Ayarları // 'C' kaynak satırı yapılandırma ifadeleri // CONFIG #pragma config FOSC = HS // Osilatör Seçim bitleri (HS osilatörü) #pragma config WDTE = KAPALI // Watchdog Zamanlayıcı Etkinleştirme biti (WDT devre dışı) # pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT devre dışı) #pragma config BOREN = ON // Brown-out Reset Enable bit (BOR etkin) #pragma config LVP = OFF // Düşük Voltaj (Tek Kaynak) Devre İçi Seri Programlama Etkinleştirme biti (RB3 / PGM pini PGM işlevine sahiptir; düşük voltajlı programlama etkin) #pragma yapılandırması CPD = KAPALI // Veri EEPROM Bellek Kodu Koruma biti (Veri EEPROM kod koruması kapalı) #pragma config WRT = OFF // Flash Program Belleği Yazmayı Etkinleştir bitleri (Yazma koruması kapalı; tüm program belleği EECON kontrolü ile yazılabilir) #pragma config CP = OFF // Flash Program Bellek Kodu Koruma biti (Kod koruması kapalı) # include "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Gördüğümüz Eğer ana işlevi biz sistemini başlatmak için bir işlev çağrısında bulundu. Bu işlevde LCD ve UART'ı başlatıyoruz.
/ * Bu Fonksiyon sistem ilklendirmeleri içindir. * / void system_init (void) { TRISB = 0x00; // PORT B çıkış pini olarak ayarlandı lcd_init (); // Bu, lcd EUSART1_Initialize () 'yi başlatacak; // Bu, Eusart'ı başlatacak }
Şimdi, ana fonksiyonda RFID Numarası olan 13 bitlik bir dizi kullandık. RFID numarasının her bir parçasını alıyoruz. EUSART1_Read () kullanarak ; işlev, UART kitaplığının içinde bildirilmiştir. 12 bit aldıktan sonra, Diziyi LCD'de string olarak yazdırıyoruz.
void main (void) { işaretsiz karakter sayısı; imzasız karakter RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Devre Özeti"); while (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // İmleci ikinci satırdan başlayan lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Tanıtım Videosu ile kodun tamamı aşağıda verilmiştir.
Ayrıca diğer Mikroişlemci ile RFID arayüzünü kontrol edin:
MSP430 Launchpad ile RFID Arayüzü
8051 Mikrodenetleyici ile RFID Arayüzü
Arduino ile RFID Arayüzü