Arduino ve Rc522 RFID Modül Kullanımı ile Röle Kontrolü
Arduino Uno ve Rc522 RFID Okuyucu ile Röle Kartı kullanarak kapı otomatiği devresi yapacağız.
Rc522 RFID Okuyucu Modül Nedir?
RFID, radyo frekansı tanımlama anlamına gelir. RFID, verileri kısa mesafelerde aktarmak için elektromanyetik alanları kullanır. RFID ile kişileri tanımlamak, tanımlı olmayan kişilerin depo vb yerlere girmesini engellemek, giriş – çıkış saatlerini kayıt altında tutmak vb gibi bir çok işlem gerçekleştirilebilir.
Bir RFID sistemi şunları kullanır:
- Tanımlanacak nesneye bağlı etiketler, bu örnekte bir anahtarlık ve bir elektromanyetik kartımız var. Her etiketin kendi kimliği (UID) vardır.
- İki yönlü kablosuz alıcı-verici – okuyucu, etikete bir sinyal gönderir ve yanıtını okur.
Rc522 RFID Okuyucu Modül Özellikleri
- Giriş voltajı: 3.3V
- Frekans: 13,56 MHz
- Bağlantı şekli SPI
Proje için gereken kütüphaneler ve kullanımı:
- Buradan modül için oluşturulan RFID kütüphanesini indirebilirsiniz.
- RFID kütüphanesini Arduino IDE’nize kurun
- Arduino IDE’nizi yeniden başlatın
Rc522 Arduino Pinout – Pin Bağlantısı Şeması:
Modül Pini | Arduino Uno’ya kablolama |
SDA | Dijital 10 |
SCK | Dijital 13 |
MOSI | Dijital 11 |
MİSO | Dijital 12 |
IRQ | bağımsız |
GND | GND |
RST | Dijital 9 |
3.3V | 3.3V |
Dikkat: Bu cihazı 3,3V ile çalışır. Bu sebeple daha yüksek voltaj vermemeniz gerekir.
Röle kartının orta bacağını Arduino Uno da 7. Pine, VCC pinini 5V pinine, GND pinini de GND pinine bağlayabilirsiniz.
Bağlantıları şemaya uygun yaptıktan sonra kodumuzu Arduino Uno kartımıza yükleyip test edebiliriz. Unutmayın ki elinizdeki kart numaraları kod kısmında yer alanlardan farklı olduğu için önce onları okutup seri port ekranında gördükten sonra değiştirmeniz gerekir.
RC522 Modülü ile RFID Arduino Kodu aşağıdaki gibidir:
// Modül kütüphanesi ekleniyor #include <SPI.h> #include <MFRC522.h> #define RST_PIN 9 // rst pini seçimi #define SS_PIN 10 // ss pini seçimi MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. String read_rfid; // okunan rfis kart değişkeni String ok_rfid_1="e199312d"; // 1. Kart numarası ( sizler kendi kart numaralarınızı girmelisiniz ) String ok_rfid_2="fbecb673"; // 2. Kart numarası ( sizler kendi kart numaralarınızı girmelisiniz ) int lock = 7; // Röle pini /* * Kurulum yapılıyor */ void setup() { Serial.begin(9600); // seri iletişim ayarı SPI.begin(); // SPI iletişim ayarı mfrc522.PCD_Init(); // MFRC522 kart okuyucu ayarı //Röle pini ayarı pinMode(lock, OUTPUT); } /* * İlk kart okuma kısmı bura da okunan kart numarasını 1. Ve 2. Kart olarak eklemeniz gereklidir. */ void dump_byte_array(byte *buffer, byte bufferSize) { read_rfid=""; for (byte i = 0; i < bufferSize; i++) { read_rfid=read_rfid + String(buffer[i], HEX); } } void open_lock() { //Kapı otomatiğini Röle yi 500 ms açık tut digitalWrite(lock,HIGH); delay(500); digitalWrite(lock,LOW); } void loop() { // kart oku if ( ! mfrc522.PICC_IsNewCardPresent()) return; // kart seçimi if ( ! mfrc522.PICC_ReadCardSerial()) return; dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size); Serial.println(read_rfid); if (read_rfid==ok_rfid_1) { //eğer kart numarası uyarsa röleyi çek open_lock(); } }
Bir sonraki yazımızda görüşmek üzere.
“” işaretleri kopyalanınca hata veriyor dikkat ediniz çözdüm…:) teşekkürler
Merhabalar, blog sayfamızdaki kodu kopyalayip kullanırken, unicode seçimi nedeniyle tırnak işareti “”
Olarak çıkmış, kod içindeki tüm tırnak işaretlerini düzeltmeniz gerekiyor. Ayrıca eğer ikinci kartı da kullanacaksanız, en alta ikinci if döngüsünü girmelisiniz. Sizin için yeniden hazırladığımız kodu denemenizi rica ederiz.
https://drive.google.com/file/d/1D8bIbtmn6TQpAHUIgvb4L9zGnQpx2Boc/view?usp=sharing
2. kartı bi türlü yükleyemedim bi görsel ile açıklarsanız sevinirim.
Merhaba. buradaki “String ok_rfid_2=”fbecb673″; ” kodunu 3, 4, 5… şeklinde çoğaltarak istediğimiz kadar kart tanımlayabilir miyiz acaba? alt kısımda da ” if (read_rfid==ok_rfid_2) { open_lock(); } kısmını da çoğaltarak elbette. mesela üst kısımda diğerlerinin altına “String ok_rfid_3=”kzecb651″; ” yazsak, alt kısma da ” if (read_rfid==ok_rfid_3) { open_lock(); } yazsak, 3 kart birden eklemiş olur muyuz?
Merhaba,
Aşağıda belirtilen kodları ikinci bir RFID Kart için gerekli pin, lock ve string değerleri yeniden eklemeniz gerekir. Kaç adet kart eklemek isterseniz bu işlemi o kadar tekrar etmelisiniz.
#define RST_PIN 9 // rst pini seçimi
#define SS_PIN 10 // ss pini seçimi
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
String read_rfid; // okunan rfis kart değişkeni
String ok_rfid_1=”e199312d”; // 1. Kart numarası ( sizler kendi kart numaralarınızı girmelisiniz )
String ok_rfid_2=”fbecb673″; // 2. Kart numarası ( sizler kendi kart numaralarınızı girmelisiniz )
int lock = 7; // Röle pini
Selam
Bunu şu şekilde yapma şansınız var mı
Kart okudu röle1 yazılan süre kadar çalıştı ve kapı açıldı
Yazılan süre kadar bekledi ve röle 2 verilen süre kadar çalıştı ve kapı kapandı
Slm arkadaşlar bu kodu kullanarak kapı otomatiğini kartla açmaya çalışıyorum 3 tane daha kartı tanıttım kodu Arduino ya gönderdikten sonra röle direkt açık geliyor röledeki yeşil ışık ve kırmızı ışık aynı anda yanıyor kartı okuttuğum zaman yeşil ışık sönüyor ve tekrar yanıyor
Merhaba Role Kart Okutulduğunda Kapanıyor Ayrıca Kartı Basılı Tuttuğumda Aç Kapa Yapıyor Döngü Şeklinde
Emeğinize sağlık, kod sorunsuz çalışıyor. 6 Kart tanımladım ve sorunsuz çalıştı. Çok teşekkürler.