Skip to content

Instantly share code, notes, and snippets.

@mavitm
Last active April 18, 2020 22:15
Show Gist options
  • Save mavitm/3ca4613d70450dc3ee64fa09889fb1b7 to your computer and use it in GitHub Desktop.
Save mavitm/3ca4613d70450dc3ee64fa09889fb1b7 to your computer and use it in GitHub Desktop.
#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