Last active
April 18, 2020 22:15
-
-
Save mavitm/3ca4613d70450dc3ee64fa09889fb1b7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <SPI.h> //SPI kütüphanemizi tanımlıyoruz. | |
#include <MFRC522.h> //MFRC522 kütüphanemizi tanımlıyoruz. | |
#include <Servo.h> //Servo kütüphanemizi tanımlıyoruz. | |
int RST_PIN = 9; //RC522 modülü reset pinini tanımlıyoruz. | |
int SS_PIN = 10; //RC522 modülü chip select pinini tanımlıyoruz. | |
int servoPin = 8; //Servo motor pinini tanımlıyoruz. | |
Servo motor; //Servo motor için değişken oluşturuyoruz. | |
MFRC522 rfid(SS_PIN, RST_PIN); //RC522 modülü ayarlarını yapıyoruz. | |
byte ID[4] = {97, 76, 67, 9}; //Yetkili kart ID'sini tanımlıyoruz. | |
byte EXID[4] = {97, 76, 67, 9}; //Yedek Yetkili kart ID'sini tanımlıyoruz. | |
int initalize = 0; | |
int motorAciDerece = 0; | |
void setup() { | |
motor.attach(servoPin); //Servo motor pinini motor değişkeni ile ilişkilendiriyoruz. | |
Serial.begin(9600); //Seri haberleşmeyi başlatıyoruz. | |
SPI.begin(); //SPI iletişimini başlatıyoruz. | |
rfid.PCD_Init(); //RC522 modülünü başlatıyoruz. | |
} | |
void loop() { | |
if(initalize < 1){ //elektrik gidip geldiğinde motor 90 derece geliyor ise onu düzenliuoruz | |
initalize = 1; | |
kapiKapa(); | |
} | |
if ( ! rfid.PICC_IsNewCardPresent()) //Yeni kartın okunmasını bekliyoruz. | |
return; | |
if ( ! rfid.PICC_ReadCardSerial()) //Kart okunmadığı zaman bekliyoruz. | |
return; | |
if (rfid.uid.uidByte[0] == ID[0] && //Okunan kart ID'si ile ID değişkenini karşılaştırıyoruz. | |
rfid.uid.uidByte[1] == ID[1] && | |
rfid.uid.uidByte[2] == ID[2] && | |
rfid.uid.uidByte[3] == ID[3] ) { | |
kapiAcKapa(); | |
} | |
else if (rfid.uid.uidByte[0] == EXID[0] && //Okunan kart ID'si ile EXID değişkenini karşılaştırıyoruz. | |
rfid.uid.uidByte[1] == EXID[1] && | |
rfid.uid.uidByte[2] == EXID[2] && | |
rfid.uid.uidByte[3] == EXID[3] ) { | |
kapiAcKapa(); | |
} | |
else{ //Yetkisiz girişte içerideki komutlar çalıştırılır. | |
Serial.println("Yetkisiz Kart"); | |
ekranaYazdir(); | |
} | |
rfid.PICC_HaltA(); | |
} | |
/** | |
iflerin icerisinde ayni kodu tekrarlamamk icin islemleri metodlastirdim | |
*/ | |
void kapiAc(){ | |
Serial.println("Kapi acildi"); | |
ekranaYazdir(); | |
motor.write(180); //Servo motoru 180 dereceye getiriyoruz. | |
motorAciDerece = 180; //motorun aktif acisini aklimizda tutuyoruz | |
delay(1000); //kapi acilirken bekle tekrar kart okursa kapatmaya gecme | |
} | |
void kapiKapa(){ | |
Serial.println("Kapi acildi"); | |
motor.write(0); //Servo motoru 0 dereceye getiriyoruz. | |
motorAciDerece = 0; //motorun aktif acisini aklimizda tutuyoruz | |
delay(1000); | |
} | |
void kapiAcKapa(){ | |
if(motorAciDerece > 0){ | |
kapiKapa(); | |
} | |
else{ | |
kapiAc(); | |
} | |
} | |
void ekranaYazdir(){ | |
Serial.print("ID Numarasi: "); | |
for(int sayac = 0; sayac < 4; sayac++){ | |
Serial.print(rfid.uid.uidByte[sayac]); | |
Serial.print(" "); | |
} | |
Serial.println(""); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment