Harekete Duyarlı Güvenlik kamerası

Merhaba arkadaşlar , İnternette dolaşırken gözüme çarpan ve sizinde hoşunuza gideceğini düşündüğüm bir projeyi sizinle paylaşmak istiyorum.

Projenin amacı güvenlik kamerasının hareketin olduğu yere yönlendirerek kayıt almasını sağlamaltır. Bu projenin geliştirilmesi mümkün (sizi takip eden bir bilgisayar ekranı gibi )

Kullanılan Malzemeler

  1. PIR sensörü (5 adet ) sayı ne kadar çok olursa hassasiyeti ona göre fazla olur.
  2. Arduino UNO ,Mega,Pro,Promini vs..
  3. 5 adet LED
  4. 5 adet 220ohm direnç
  5. 100mf kondansatör
  6. SERVO motor.

Bağlantı şeması

hareketsensoru_baglanti

Proje Resimleri

CamBase 2 CamBase 7

 

CamBase 5

Programı

/*************************************************
*** The Motion Following Motorized Camera Base ***
***               by Lindsay Fox               ***
*************************************************/

// Servor motor
#include <Servo.h>
Servo camServo; // name the servo motor controlling the camera base
int currentPIRposition = 0; // set current angle of servo

// LED status lights
int LEDpin[] = {9,10,11,12,13}; // LED pin numbers
int currentLEDpin = 9; // the current LED pin; begin with the first in the sequence above

// PIR sensors
int PIRpin[] = {2,3,4,5,6}; // PIR pin numbers
int currentPIRpin = 2; // the current PIR pin; begin with the first in the sequence above
int PIRprevState[] = {1,1,1,1,1}; // the previous state of the PIR (0 = LOW, 1 = HIGH)
int PIRposition[] = {157,117.75,78.5,39.25,0}; // assign angles for servo motor (0-157 distributed equally between 5 PIR sensors)
boolean PIRstatus; // Set status of PIR sensor as either true or false



///// SETUP //////////////////////////////////////
void setup()  {
  
  Serial.begin(9600);
  camServo.attach(7); // assign servo pin
  
  for (int p = 0; p < 5; p++)  { // set all PIR sensors as INPUTS
  pinMode(PIRpin[p], INPUT);
    } // end 'p' for
    
  for (int l = 0; l < 5; l++)  { // set all LEDs as OUTPUTS
  pinMode(LEDpin[l], OUTPUT);
    } // end 'l' for
  
  /////// CALIBRATE PIR SENSORS ///////
  Serial.print("Calibrating PIR Sensors ");
    for(int c = 0; c < 15; c++){ // calibrate PIR sensors for 15 seconds (change from 10-60 sec depending on your sensors)
      Serial.print(".");
      delay(1000); // wait 1 second
      } // end calibration for
    Serial.println("PIR Sensors Ready");
  
  camServo.write(78.5); // move the servo to the center position to begin
  
  } // end setup



///// MAIN LOOP //////////////////////////////////
void loop()  {
  
  for (int PIR = 0; PIR < 5; PIR++) { // start this loop for each PIR sensor
    currentPIRpin = PIRpin[PIR]; // set current PIR pin to current number in 'for' loop
    currentLEDpin=LEDpin[PIR]; // set current LED pin to current number in 'for' loop
    PIRstatus = digitalRead(currentPIRpin);
    
    if (PIRstatus == HIGH) { // if motion is detected on current PIR sensor
      digitalWrite(currentLEDpin, HIGH); // turn corresponding LED on
      if(PIRprevState[PIR] == 0) { // if PIR sensor's previous state is LOW
        if (currentPIRposition != currentPIRpin && PIRprevState[PIR] == 0) { // if high PIR is different than current position PIR then move to new position
          camServo.write(PIRposition[PIR]);
          Serial.print("Current angle : ");
          Serial.println(PIRposition[PIR]);
          delay(50);
          currentPIRposition = currentPIRpin; // reset current PIR position to active [PIR] pin
          PIRprevState[PIR] = 1; // set previous PIR state to HIGH
          }
        PIRprevState[PIR] = 1; // set previous PIR state to HIGH if the current position is the same as the current PIR pin
        } // end PIRprevState if  
      } // end PIRstatus if
    
    else  { //
      digitalWrite(currentLEDpin, LOW);  //the led visualizes the sensors output pin state
      PIRprevState[PIR] = 0;   // set previous PIR state to LOW
      } // end else
      
    } // end [PIR] for loop
  } // end main loop

Alıntıdır.

Boş zamanlarda arduino ile uğraşan kendi halinde bir Öğretmen.

  1. Arda 16 Nisan 2017 01:06

    Merhabalar hocam. Ben bütün malzemeleri aldım. Yanlız birkac sorum var. Servo motor olarak mg995 aldım geri kalanlar normal. Benim anlamadigim arduinonun üzerindeki kart hocam ledli olan kafam karişti orda nasil yapacagimi bilmiyorum sizin vermis olduğunuz devre şeması ile bu adamin yaptigi ayni degil galiba siz biraz daha sadelestirmissiniz bende ayni sizinki gibi yapsam sorun olur mu. Ve servo motorum 120 130 derece dönüyor problem çıkartır mi

    Cevapla
  2. Arda 16 Nisan 2017 01:02

    Merhabalar hocam. Ben bütün malzemeleri aldım. Yanlız birkac sorum var. Servo motor olarak mg995 aldım geri kalanlar normal. Benim anlamadigim arduinonun üzerindeki kart hocam ledli olan kafam karişti orda nasil yapacagimi bilmiyorum sizin vermis olduğunuz devre şeması ile bu adamin yaptigi ayni degil galiba siz biraz daha sadelestirmissiniz bende ayni sizinki gibi yapsam sorun olur mu. Ve servo motorum 120 130 derece dönüyor problem çıkartır mi. Simdiden teşekkürler

    Cevapla
  3. Ardahan 14 Nisan 2017 18:53

    Merhaba hocam ben bütün malzemeleri aldım. Servi motor olarak mg995 tercih ettim. Bu projede görünmeyen elemanlar var. Mesela arduinonun üzerindeki kart onu almadim sadece oradaki board var bende. O boarda led ve dirençleri bağlamış galiba . Ama sizin vermis oldugunuz devre bağlantısında iki board kullanilmis nasıl yapmaliyiz yardimci olurmusunuz

    Cevapla
  4. Samed ÇETİNER 12 Nisan 2017 15:29

    Hocam bu kod’da dereceli olarak ayarlanmış ama biz derecelerini ayarlayamadık dereceli değilde 1.PIR sensör gördüğünde 1’e 2.PIR sensör gördüğünde 2. sensöre dönecek şekilde nasıl programlayabiliriz kodda ne gibi değişiklikler yapmamız lazım acil cevap verirsen seinirim.

    Cevapla
    • Arduinocu 13 Nisan 2017 06:18

      camServo.write(PIRposition[PIR]); komutunu
      camServo.write(Hangi degere gidilmesi gerekiyorsa ); yazilarak halledebilirsiniz

      Cevapla

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.