Herkese merhabalar ! Blog sayfamızda Arduino ile pek çok proje yaptık ve yapmaya devam ediyoruz. Bu projelerle ilgili sorularınızı yazının hemen altındaki Yorum Yap kısmından bizimle paylaşabilirsiniz. Bu yazımızda hareket (PIR) sensörü kullanarak Arduino ile basit hırsız alarmı uygulaması yapacağız. Bu sayede hareket sensörünün kullanımını öğrenceğiz ve Arduino ile birçok farklı proje yapabileceğimizi göreceğiz. Hadi öyleyse çalışmaya başlayalım !

PIR Sensörü ile Raspberry Pi derslerimizde de uygulama yapmıştık >>> Raspberry Pi 3 PIR Sensör ile Hareket Algılama

Arduino İle Hareket Sensörü Diğer Adıyla PIR (Passive Infrared Sensör) Kullanımı

PIR ismi Passive Infra-Red kelimelerinin baş harflerinden gelmektedir. Bu da bu sensörün kızılötesi dalgalarla çalıştığı anlamına gelir. Hareket sensörü ortamdaki sıcaklık ve kızılötesi dalga değişimlerini algılamaya yarayan sensörlerdir. Yapılarında bir fresnel lens bulunur. Bu lens sayesinde ortamdaki nesnelerden gelen ışınlar sensörün odaklanmasını sağlar. Ortamda bir dalga değişimi olduğunda sensör algılama işlemi gerçekleştirir.

PIR Sensörü ve diğer tüm sensörler hakkında detaylı bilgi almak için blog yazımızı ziyaret edebilirsiniz.

Arduino ile PIR sensörünün kullanımı dersimizde devrede yalnızca bir servo motor kullanmıştık. Hareket sensörü ile daha önce hiç çalışmadıysanız kanalımızdaki videomuzu takip ederek hazırlanabilirsiniz. PIR sensörü ile ilk uygulamamızı yapmak için aşağıdaki devreyi kurarak Arduino kodunu yüklememiz yeterli olacaktır.

PIR Sensörü Servo Motor Devresi
PIR Sensörü Servo Motor Devresi
#include                 //Servo kütüphanemizi ekliyoruz.

int pirPin = 8;                   //Sensörü takacağımız pin
int servoPin = 9;                 //Servoyu takacağımız pin
int hareket;                      //Sensörden aldığımız veri
Servo motor;                      //Servo motor değişkeni


void setup() {
  motor.attach(servoPin);         //Servomuzu 9. pin ile ilişkilendiriyoruz.
  pinMode(pirPin, INPUT);         //Sensör pinimizi giriş olarak ayarlyoruz.

}

void loop() {
  hareket = digitalRead(pirPin);  //Sensörden okuma yapıyoruz.
  
  if(hareket == HIGH){            //Hareketlilik var ise içerideki komutlar uygulanır.
    motor.write(150);
    delay(250);
    motor.write(30);
    delay(250);
    motor.write(150);
    delay(250);
    motor.write(30);
    delay(250);
    motor.write(150);
    delay(250);
    motor.write(30);
    delay(250);
    motor.write(90);
  }
  else{                           //Hareketlilik yok ise içerideki komutlar uygulanır.
    motor.write(90);
    
  }
}

Şimdi İse Arduino ve Hareket Sensörünü Kullanarak Hırsız Alarmı Yapalım

Şimdi ise PIR sensörü kullanarak gerçek bir proje yapmaya hazırız ! Hareket sensörü, buzzer ve LED kullanarak basit bir hırsız alarmı uygulaması yapacağız. Kuracağımız devrede hareket sensörümüz bir hareket algıladığında bu bilgiyi Arduino’ya aktaracak ve Arduino’nun çıkışına bağlı olan LED ve buzzerı tetikleyecektir. Aynı zamanda hareket algılama işlemini seri port ekranından da takip edebileceğiz. Hadi öyleyse projemize başlayalım !

Gerekli Malzemeler:

Devre Şeması

Basit hırsız alarmı yapımı için gerekli devreyi aşağıdaki gibi kuralım:

Arduino Hırsız Alarmı Devresi
Arduino Hırsız Alarmı Devresi

Basit Hırsız Alarmı Arduino Kodu

int sensor = 2;
int led = 13;
int buzzer = 10;
int sensordurum = LOW;
int deger = 0;

void setup() {
  pinMode(sensor, INPUT);
  pinMode(led, OUTPUT);
  pinMode(buzzer, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  deger = digitalRead(sensor);
  if (deger == HIGH) {
    digitalWrite(led, HIGH);
    playTone(300, 160);
    delay(150);


    if (sensordurum == LOW) {

      Serial.println("Hareket Tespit Edildi!");

      sensordurum = HIGH;
    }
  } else {
    digitalWrite(led, LOW);
    playTone(0, 0);
    delay(300);
    if (sensordurum == HIGH) {

      Serial.println("Hareket Sonlandi!");

      sensordurum = LOW;
    }
  }
}

void playTone(long duration, int freq) {
  duration *= 1000;
  int period = (1.0 / freq) * 1000000;
  long elapsed_time = 0;
  while (elapsed_time < duration) {
    digitalWrite(buzzer, HIGH);
    delayMicroseconds(period / 2);
    digitalWrite(buzzer, LOW);
    delayMicroseconds(period / 2);
    elapsed_time += (period);
  }
}

1 YORUM

  1. İyi günler. Hırsız alarm sistemini yaptığımda hareket olmadığında bile led ve buzzer sürekli belli aralıklarla yanıp ses çıkartıyor. Aynı kodları yazıp aynı devreyi kurduğum ve hassasiyetleriyle oynadığım halde bu sorun gitmedi. Bu sorunu çözmek için ne yapabilirim ?

CEVAP VER

Please enter your comment!
Please enter your name here