Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

26 Nisan 2021 Pazartesi

RFID RC522 ve Arduino Kullanan Kapı Güvenlik Sistemi

 

RFID RC522 ve Arduino Kullanan Kapı Güvenlik Sistemi


RFID RC522 ve Arduino Kullanan Kapı Güvenlik Sistemi: Bu   Arduino tabanlı proje , RC522 RFID modülünün Arduino ile nasıl arayüzleneceği ve kapı güvenlik sisteminin nasıl tasarlanacağı ile ilgilidir. Kapı Güvenlik Sistemi , yetkisiz kişilerin bir odaya veya bir binaya girişini engellemek için kullanılır. Bu tür bir sistem, bir bilgisayarda veya dosya paketinde depolanan önemli verileriniz, bilgileriniz ve araştırmacılarınız varsa çok kullanışlıdır.







Bu tür bir güvenlik sistemi Askeri, Araştırma Merkezleri, Bankalar, Sunucu odaları, Hapishaneler, Devlet daireleri ve Nükleer Santrallerde çok kullanışlıdır. Bu sistem büyük bir yıkımı ve kaybı önler. Proje RFID RC522 modülüne dayanmaktadır; RFID RC522 modülünü bilmiyorum daha sonra açıklayacağım. Arduino Uno, bu projenin beynidir.  LCD , mesajları görüntülemek için kullanılır. Servo motor , kapının açıldığını veya kapandığını belirtmek için kullanılır.

RFID RC522 Kullanan Kapı Güvenlik Sisteminin Blok Şeması RFID RC522 ve Arduino blok şemasını kullanarak Kapı Güvenlik Sistemi

RFID RC522 Kullanan Kapı Güvenlik Sistemi için Gerekli Bileşenler


  • Arduino Uno: Projemde Arduino Uno kullanıyorum çünkü kullanımı kolay ve fiyatı çok ucuz. RFID modülü için 12 dijital pin ve 3.3v'ye ihtiyacım olduğu için projeme de uyuyor. 
  • Servo Motor: Bu projede servo motor kapının açılıp kapandığını belirtmek için kullanılmaktadır. Kullanımı ve programlanması kolaydır ve ayrıca hassas hareket sağlar. Arduino ile servo motor arayüzünde servo hakkında daha fazla bilgi edinin
  • 16 × 2 LCD: LCD, Metin ve özel karakterleri göstermek için kullanılır. Toplam 16 pimi vardır. LCD'nin kontrastını ayarlamak için üçüncü pim ile bir 10K ohm potansiyometre bağlanır. Ayrıca bir arka ışık LED'i içerir. Kullandığımız bu projede LCD , iki satırda 16 karakter görüntüleyebilmektedir. Bu projede, mesajların gösterilmesi için LCD kullanılmıştır.
  • RFID RC522: Bu modül, temassız iletişimde kullanılan MFRC522 IC'ye dayanmaktadır. Hem okuyucu hem de yazar olarak kullanılır. Bu modül sekiz pim içerir. Pim açıklaması aşağıdaki gibidir:

Pinler Açıklama RFID RC522

  1. SDA: I2C-bus seri veri hattı girişi / çıkışı.
  2. SCK: SPI seri saat girişi.
  3. MOSI: SPI master çıkışı, bir slave girişi.
  4. MISO: SPI master girişi, slave çıkışı.
  5. IRQ: Kesme isteği çıkışı, bir kesme olayını gösterir.
  6. GND: Toprak.
  7. RST: sıfırlama ve güç kapatma girişi.
  8. 3V: 3.3 voltluk güç kaynağı.

Bu modül fiyat olarak ucuz ve kullanımı çok kolay bir projedir. Çalışma voltajları 3,3v'dir ve 40mA'ya kadar akım çeker.

  • LCD için uygun dirençler (benim durumumda 10K ohm) ve bağlantılar için jumper kablolar

RFID RC522 ve Arduino Kullanan Kapı Güvenlik Sisteminin Devre ŞemasıRFID RC522 ve Arduino devre şemasını kullanan Kapı Güvenlik Sistemi

RFID RC522 ve Arduino Kullanan Kapı Güvenlik Sistemi Bağlantıları

Arduino bağlantılarına RFID RC522 modülü

  • SDA - D10
  • SCK - D13
  • MOSI - D11
  • MISO - D12
  • IRQ kullanılmıyor
  • GND için GND
  • RST - D9
  • 3.3V ila 3.3V

16 × 2 LCD'den Arduino bağlantılarına:

  • RS veya D7
  • D6'ya etkinleştir
  • D4 - D5
  • D5 - D4
  • D6 - D3
  • D7 - D2
  • R / W toprağa
  • VSS toprağa
  • 5V'a VCC pini

Servo - Arduino Bağlantısı

  • Soldan başlayarak
  • 1'i toprağa sabitleyin.
  • Pin 2 - 5V.
  • Pin 3 - D8.

RFID RC522 Kullanılarak Kapı Güvenlik Sisteminin Çalışması

Kullanıcı jetonu modülün yanına getirdiğinde jetonu algılar ve değerini okur. Değer kodda tanımlananla aynı ise LCD'de Erişim İzni Verildi mesajı görüntülenir ve kullanıcıya kapıyı açar. Kodda da tanımlanan bazı gecikmelerden sonra kapı otomatik olarak kapanır. Bu işlem, kullanıcı her erişmek istediğinde gerçekleşir. Birden fazla kullanıcı olabilir, ancak her kullanıcının benzersiz bir simgesi vardır.



Code

#include <deprecated.h>
#include <MFRC522.h>
#include <MFRC522Debug.h>
#include <MFRC522Extended.h>
#include <MFRC522Hack.h>
#include <require_cpp11.h>
#include<RFID.h>
#include <SPI.h>
#include <Servo.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
#define val0 117 // chnage the value according to token no
#define val1 134
int pos = 0;
/* Define the DIO used for the SDA (SS) and RST (reset) pins. */
#define SDA_DIO 10
#define RESET_DIO 9
RFID RC522(SDA_DIO, RESET_DIO);

void setup()
{ 
myservo.attach(8); 
Serial.begin(9600);
/* Enable the SPI interface */
SPI.begin(); 
/* Initialise the RFID reader */
RC522.init();
lcd.begin(16, 2);

}

void loop()
{
byte i=0;
int ID;
if (RC522.isCard())
{
RC522.readCardSerial();
Serial.println(RC522.serNum[i],DEC);
Serial.println("Card detected:");
ID=RC522.serNum[0];}
delay(500);
if( val0 == ID)
{ lcd.clear();
lcd.print("Access Granted");
lcd.setCursor(0, 1);
lcd.print("Welcome Haris");
delay(1800); 
lcd.clear();
lcd.print("Door Opening");
delay(1500);
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
delay(5000);
lcd.clear();
lcd.print("Door Closing");
delay(1500);
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
} 
else
{
lcd.clear();
lcd.print("Door Security ");
lcd.setCursor(0, 1);
lcd.print("System ");
}
if( val1 == ID)
{ lcd.clear();
lcd.print("Access Granted");
lcd.setCursor(0, 1);
lcd.print("Welcome Bilal");
delay(1800); 
lcd.clear();
lcd.print("Door Opening");
delay(1500);
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
delay(5000);
lcd.clear();
lcd.print("Door Closing");
delay(1500);
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
} 
else
{
lcd.clear();
lcd.print("Door Security ");
lcd.setCursor(0, 1);
lcd.print("System ");
}
}


Bahadır ÖZGEN

Electronic Robotic Coding Research and Development 1975 - ∞

Learn Forever...  
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com

Hiç yorum yok:

Yorum Gönder

Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...

Not: Yalnızca bu blogun üyesi yorum gönderebilir.