Arduino

Arduino ile Hırsız Alarm Sistemi: Keypad, PIR Sensörü, LED ve Buzzer Kullanımı

Aykut AKMAN 9 ay önce Yorumlar (0) 7 Dakika Okuma
Arduino ile Hırsız Alarm Sistemi: Keypad, PIR Sensörü, LED ve Buzzer Kullanımı
E-Posta : 967 0

Hırsız alarm sistemi, ev güvenliğini artırmak için etkili bir çözüm sunar. Bu proje ile, Arduino, PIR sensörü, LED'ler ve buzzer kullanarak bir alarm sistemi geliştireceğiz. Şifre korumalı bu sistem, belirli bir hareket algılandığında alarmı tetikleyip, doğru şifre girilene kadar alarmı durdurmayacaktır.

Gerekli Malzemeler

  • 1 x Arduino Uno (veya uyumlu bir model)
  • 1 x 4x4 Keypad (Tuş Takımı)
  • 1 x PIR Sensörü
  • 1 x Buzzer
  • 1 x I2C LCD Ekran
  • 1 x Kırmızı LED (Alarm durumu göstergesi için)
  • 1 x Yeşil LED (Alarmın devreden çıkarıldığını göstermek için)
  • Breadboard
  • Bağlantı Kabloları

Devre Bağlantıları

arduino-ile-hırsız-alarm-sistemi-devre-şeması
BileşenArduino Pini
Keypad ROWS2, 3, 4, 5
Keypad COLS6, 7, 8, 9
Yeşil LEDD10
Kırmızı LEDD11
BuzzerD12
PIR SensörüD13
I2C LCD EkranSDA=>A4 SCL=>A5

PIR Sensör

  • VCC → 5V
  • GND → GND
  • Data → D13

LED'ler

  • Uzun bacak (anot) → Belirtilen dijital pine
  • Kısa bacak (katot) → GND

Buzzer

  • Pozitif bacak → D12
  • Negatif bacak → GND

Keypad

  • Keypad'in satır ve sütun pinleri Arduino'ya belirtilen şekilde bağlanır.

I2C LCD Ekran

  • VCC: Arduino 5V
  • GND: Arduino GND
  • SDA: Arduino A4 (Uno için)
  • SCL: Arduino A5 (Uno için)
  • Arduino Kodu

    Aşağıdaki kod, alarm sisteminin temel işlevlerini gerçekleştirir:

    <#include 
    #include 
    #include 
    
    // I2C ekran tanımlama (0x27 adresli 16x2 ekran için)
    LiquidCrystal_I2C lcd(0x27, 16, 2);
    
    const byte ROWS = 4;
    const byte COLS = 4;
    
    char keys[ROWS][COLS] = {
      {'1', '2', '3', 'A'},
      {'4', '5', '6', 'B'},
      {'7', '8', '9', 'C'},
      {'*', '0', '#', 'D'}
    };
    
    byte rowPins[ROWS] = {2, 3, 4, 5};
    byte colPins[COLS] = {6, 7, 8, 9};
    
    Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
    
    String correctPassword = "1234";
    String inputPassword = "";
    
    const int greenLED = 10;
    const int redLED = 11;
    const int buzzer = 12;
    const int pirSensor = 13;
    
    bool alarmActive = false;  // Alarm aktif mi?
    bool alarmTriggered = false;  // Alarm tetiklenmiş mi?
    
    void setup() {
      pinMode(greenLED, OUTPUT);
      pinMode(redLED, OUTPUT);
      pinMode(buzzer, OUTPUT);
      pinMode(pirSensor, INPUT);
    
      lcd.init();               // LCD ekranı başlat
      lcd.backlight();          // Arka ışığı aç
      lcd.setCursor(0, 0);
      lcd.print("Alarm Sistemi");
      delay(2000);
      lcd.clear();
    
      // Başlangıç durumu: Alarm kurulu değil, yeşil LED yanar
      digitalWrite(greenLED, HIGH);
      digitalWrite(redLED, LOW);
      lcd.print("Durum: Pasif");
    }
    
    void loop() {
      char key = keypad.getKey();
      
      // Şifre girme işlemi
      if (key) {
        if (key == '#') {
          if (inputPassword == correctPassword) {
            if (alarmTriggered) {
              lcd.clear();
              lcd.print("Alarm Durdu!");
              noTone(buzzer);
              alarmTriggered = false;
              delay(2000);
              lcd.clear();
            } else {
              alarmActive = !alarmActive;
              lcd.clear();
              lcd.print(alarmActive ? "Durum: Aktif" : "Durum: Pasif");
              digitalWrite(greenLED, !alarmActive);
              digitalWrite(redLED, alarmActive);
            }
          } else {
            lcd.clear();
            lcd.print("Yanlis Sifre!");
            delay(2000);
            lcd.clear();
            lcd.print(alarmActive ? "Durum: Aktif" : "Durum: Pasif");
          }
          inputPassword = "";  // Girişi sıfırla
        } else if (key == '*') {
          inputPassword = "";  // Girişi temizle
          lcd.clear();
          lcd.print("Girisi Temizlediniz");
          delay(2000);
          lcd.clear();
          lcd.print(alarmActive ? "Durum: Aktif" : "Durum: Pasif");
        } else {
          inputPassword += key;  // Tuşu girişe ekler
          lcd.setCursor(0, 1);
          lcd.print("Girilen: ");
          lcd.print(inputPassword);
        }
      }
    
      // Alarm aktifken hareket algılama
      if (alarmActive && digitalRead(pirSensor) == HIGH) {
        lcd.clear();
        lcd.print("Hareket Algilandi!");
        lcd.setCursor(0, 1);
        lcd.print("Alarm Caliyor!");
        alarmTriggered = true;
        while (alarmTriggered) {
          tone(buzzer, 1000); // Alarm çalar
          digitalWrite(redLED, HIGH);
          digitalWrite(greenLED, LOW); // Hareket algılandığında kırmızı LED yanar, yeşil LED söner
          key = keypad.getKey();
          if (key == '#') {
            if (inputPassword == correctPassword) {
              lcd.clear();
              lcd.print("Alarm Durdu!");
              noTone(buzzer);
              digitalWrite(greenLED, HIGH); // Alarm durdurulduğunda yeşil LED yanar
              digitalWrite(redLED, LOW);   // Alarm durdurulduğunda kırmızı LED söner
              alarmTriggered = false;     // Alarm durduruluyor
              delay(2000);
              lcd.clear();
              lcd.print("Durum: Pasif");
            } else {
              lcd.clear();
              lcd.print("Yanlis Sifre!");
              delay(2000);
              lcd.clear();
              lcd.print("Alarm Caliyor!");
            }
            inputPassword = "";  // Girişi sıfırla
          } else if (key && key != '#') {
            inputPassword += key;
            lcd.setCursor(0, 1);
            lcd.print("Girilen: ");
            lcd.print(inputPassword);
          }
        }
      }
    }
    

    Kod Açıklamaları

    Keypad ile Şifre Girişi

    • # tuşu ile şifre kontrol edilir.
    • * tuşu ile şifre temizlenir.
    • Doğru şifre girildiğinde alarm aktif veya pasif edilir.

    PIR Sensör Kontrolü

    • Alarm aktifken PIR sensör hareket algıladığında alarm tetiklenir.

    LED ve Buzzer Kontrolü

    • Alarm kurulu değilse: Yeşil LED yanar.
    • Alarm kuruluysa: Kırmızı LED yanar.
    • Alarm tetiklenirse: Buzzer çalar ve kırmızı LED yanar.

    I2C Ekran Kontrolü

  • LCD Başlatma: lcd.init() ve lcd.backlight() ile ekran başlatıldı.
  • Başlangıç Durumu: "Durum: Pasif" mesajı başlangıçta ekranda görüntülenir.
  • Şifre Girişi: Giriş sıfırlandığında veya girilen şifre doğru olduğunda ekranda durum mesajları görüntülenir.
  • Hareket Algılama: Hareket algılandığında ekranda "Hareket Algilandi!" ve "Alarm Caliyor!" mesajları görünür.
  • Alarm Durdurma: Doğru şifre girildiğinde alarm durur ve ilgili mesaj ekranda görüntülenir.

  • Projenin çalışan örneğini görmek için tıklayınız.

    Kullanım Alanları

    • Ev güvenlik sistemleri
    • Ofis alarm sistemleri
    • Eğitim projeleri

    Bu sistem, Arduino ile temel güvenlik sistemlerinin nasıl geliştirilebileceğini öğrenmek için harika bir başlangıçtır.

    Sıkça Sorulan Sorular

    Arduino, PIR sensör, Keypad ve LED kullanarak bir hırsız alarm sistemi oluşturabilirsiniz. Şifre girildiğinde alarm aktif olur, hareket algılandığında şifreyle devre dışı bırakılır.

    Evet, Arduino ve 4x4 Keypad kullanarak şifreyle kontrol edilen bir alarm sistemi yapabilirsiniz. Şifre doğru girildiğinde alarm devreye girer veya kapanır.

    PIR sensör, hareket algıladığında Arduino'ya sinyal gönderir. Alarm devredeyse buzzer çalar ve kırmızı LED yanar. Şifreyle alarm kapatılabilir.

    Arduino alarm sistemi için 4x4 Keypad, PIR sensör, kırmızı ve yeşil LED, buzzer, breadboard ve bağlantı kabloları kullanılır.

    PIR sensör hareket algılamadığında alarm devrede değilse yeşil LED yanar. Alarm devredeyse kırmızı LED yanar ve buzzer sessizdir.

    Şifre, Arduino kodunda String correctPassword değişkeniyle tanımlanır. Kullanıcı doğru şifreyi girerek alarmı kontrol edebilir.

    Alarm aktifse ve hareket algılanırsa, buzzer çalar ve kırmızı LED yanar. Kullanıcı doğru şifreyi girene kadar alarm devam eder.

    Keypad, alarm sistemine şifre girişi için kolay bir yöntem sağlar. Şifre doğrulamasıyla alarm kontrol edilebilir.

    Alarm devredeyken kırmızı LED, devrede değilken yeşil LED yanar. Hareket algılanmadığında sistem durumuna göre LED'ler değişir.

    Keypad için 2-9 numaralı PIN'ler, yeşil LED için 10, kırmızı LED için 11, buzzer için 12 ve PIR sensör için 13 numaralı PIN kullanılır.

    Aykut AKMAN

    Aykut AKMAN

    Bilişim Öğretmeni

    Bu Gönderiye Yorum Yapılmamış

    Yorum Yap

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlendi.

    Diğer Yazılar