Arkadaşlar merhaba, bu yazımızda Arduino ile RC522 RFID Uygulaması gerçekleştireceğiz.
Malzeme Listesi
İlk öncelikle Arduino’dan Breadboard’a 5 V luk gücümüzü gönderiyoruz.
Bunun için Arduino’nun 5V yazılı kutubundan Breadboard’un (+) kutbuna kablo bağlantımızı yapıyoruz.
Daha sonra Arduino’ nun GND yazılı kutbundan Breadboard’un (-) yazılı kutbuna ikinci kablo bağlantısını yapıp, Breadboard’a 5V luk enerjimizi aktarmış olduk.
Şimdi ise bizim için çok önemli olan projenin temel taşı RFID Sensörüne gelelim. RFID Sensörünün gerekli kutuplarından Arduino UNO kartımıza ve Breadboard’a gerekli bağlantı işlemlerini yapmamız gerek. RFID sensörünün üstünde bulunan yerlerin nerelerle bağlantı yapması gerektiğine bakalım ve işlemimizi yapalım.
SDA=10 | SCK=13 | MOSI=11 | MISO=12
GND=Breadboard’un (-) kutbuna* | RST=9 | 3.3V=Arduino’nun 3.3 V pinine
*RFID Sensörünün (-) kutbunu Arduino UNO’ ya değil de Breadboard’a verme sebebim; kablo kirliliğini Arduino’nun üstünde olabildiğince azaltmaktır. Bunu yaptığım işlemi diğer parçalarda da göreceksiniz. Zaten biz Breadboard’umuza Arduino’ dan 5V luk enerji göndermiştik. Bu enerjiyi Breadboard da diğer parçalar içinde kullanmamızın bir sakıncası yoktur.
Sırada Servo Motorumuz var. Aslında Servo Motoru projemizin kapımızın kilidi olarak görebilirsiniz. Oynayan kısmına bir kilit montajı yaparsak amacına ulaşmış olur. Gelin birlikte bağlantısını nasıl yapacağımıza bakalım.
*Kahverengi kablo=Breadboard’un (-) kutbuna
Kırmızı kablo=Breadboard’un (+) kutbuna
*Sarı kablo= 3 numaralı pin
*Aşağıdaki gördüğünüz görseldeki
Sarı kablo= kahverengi kablo ,
Kırmızı kablo = kırmızı kablo ,
Siyah kablo = sarı kabloyu temsil etmektedir.
Şemayı oluşturduğum programın renkleri ile bizim elimizde bulunan Servo Motor’un renkleri birbirine uymadığı için bunu ek olarak belirtmek istedim. 🙂
Gelelim buzzer’ımıza, aslında hırsızların korkulu rüyası da diyebiliriz 🙂 Buzzer’ın görevi herhangi bir yanlış kart okutulduğunda adeta bir alarm gibi ses çıkartarak güvenliği sağlamaktadır. Doğru kartı okuttuğumuzda ise size kapı açıldı dermişcesine bir onay sesi çıkartmasını sağlayabilirsiniz. Bu size kalmış bir işlem.Gelelim bağlantı kısmına;
Buzzer’ın (+) kutbu (-) kutbuna göre biraz daha uzundur. Eğer üstünde yazmıyorsa bunu bu şekilde ayırt edebilirsiniz.
(+) Bacak = 2 numaralı pin
(-) Bacak= Breadboard’un (-) kısmına
Herhangi bir terslik anında uyarımızı işitsel olarak Buzzer dan almıştık. Sırada görsel uyarımız LEDLERİMİZ bize eşlik ediyor 🙂
LEDLERİMİZ şu şekilde ayarladık; doğru kartı okuttuğumuzda yeşil LED yansın, yanlış kartı okuttuğumuzda kırmızı LEDİMİZ yansın.
Bu sayede görsel açıdanda tatmin olmuş oluyoruz.
Beraber LED bağlantılarımızı inceleyelim..
Bildiğiniz gibi LEDİN uzun bacağı bize (+) kutbunu göstermekte.
Diğer bacak ise haliyle (-) bacağımız
Yeşil LED = (+) Bacak= 4 (-) Bacak=Breadboard’ın (-) kutbuna
Kırmızı LED = (+) Bacak=5 (-) Bacak=Breadboard’ın (-) kutbuna
Arduino Kodları
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#define SS_PIN 10
#define RST_PIN 9
#define LED_G 5 //define green LED pin
#define LED_R 4 //define red LED
#define BUZZER 2 //buzzer pin
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
Servo myServo; //define servo name
void setup()
{
Serial.begin(9600); // Initiate a serial communication
SPI.begin(); // Initiate SPI bus
mfrc522.PCD_Init(); // Initiate MFRC522
myServo.attach(3); //servo pin
myServo.write(0); //servo start position
pinMode(LED_G, OUTPUT);
pinMode(LED_R, OUTPUT);
pinMode(BUZZER, OUTPUT);
noTone(BUZZER);
Serial.println("KARTI SENSÖRE OKUTUNUZ.");
Serial.println();
}
void loop()
{
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Show UID on serial monitor
Serial.print("UID tag :");
String content= "";
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Message : ");
content.toUpperCase();
if (content.substring(1) == "KARTINIZIN KODU" )
{
Serial.println("KAPI AÇILDI ");
Serial.println();
delay(500);
digitalWrite(LED_G, HIGH);
tone(BUZZER, 500);
delay(300);
noTone(BUZZER);
myServo.write(180);
delay(5000);
myServo.write(0);
digitalWrite(LED_G, LOW);
}
else {
Serial.println(" KAPI AÇILAMADI");
digitalWrite(LED_R, HIGH);
tone(BUZZER, 300);
delay(1000);
digitalWrite(LED_R, LOW);
noTone(BUZZER);
}
}
Kartın Arduino’ya Tanımlanması
İlk öncelikle Arduino programımızın sağ üst köşesindeki büyüteç bu butona basıyoruz.
Daha sonra RFID sensörmüze kartımızı okutuyoruz.
Ve yüksek ihtimal karşınıza böyle bir şey çıkacak ;
Gördüğünüz gibi kapı açılamadı uyarısını aldık bunun sebebi daha kartımızı tanımlamadık. Haydi şimdi kartımızı tanımlayalım..
Yukarıdaki resimde de gördüğünüz gibi ‘UID tag’ diye bir şey var bu bizim kartımızın numarası diyebiliriz. Bu numarayı kopyalayıp
Kodumuzun biraz aşağısına indiğimizde şöyle bir yazı göreceğiz
if (content.substring(1) == “KARTINIZIN KODU” )
KARTINIZ KODU yazılı yere biraz önce ki kopyaladığımız numarayı yapıştırıyoruz. Örnek olarak resimdeki kartın numarasını göstereceğim;
if (content.substring(1) == “80 6D E2 2B” )
Bu şekilde kartımızı tanımlamış olduk.
Eğer birden fazla kart tanımlamak istersek şu şekilde yapabiliriz;
if (content.substring(1) == “80 6D E2 2B” | | content.substring(1) == “2. Kartın numarası “)
RC522 RFID Projemiz bu şekildeydi arkadaşlar yaşadığınız herhangi bir sorunda benimle iletişime geçebilirsiniz. İyi Çalışmalar..
Benzer bir çalışma için tıklayabilirsiniz.
Arduino ile kurulumu gerçekleştirdikten sonra kart id’sini öğrenmek için okuma işlemini gerçekleştiriyorum fakat console’da hiç bir yazı gelmiyor. Lehimleme sırasında bir problem olmuş olabilir mi? Karta güç geliyor ama bilgileri okuyamıyorum.
2. bi kart eklemek istediğimde dediğiniz gibi yaptım uyarı veriyor