Ana Sayfa Raspberry Pi Raspberry Pi ile Harekete Duyarlı Güvenlik Kamerası

Raspberry Pi ile Harekete Duyarlı Güvenlik Kamerası

10 min read
30
1
17,730

Merhaba arkadaşlar,

Bu yazımda sizlere USB kamera ve PIR sensörü ile yaptığım güvenlik kamera çalışmasını anlatmaya çalışacağım. Evde – iş yerinizde veya herhangi bir yerde bu sistemi kurarak ortamın güvenliğini sağlayabilirsiniz. Uygulamamız ortamda herhangi bir hareket algıladığında kamera ile fotoğrafını çekip sizin mailinize göndererek haber veriyor. Örnek olarak uygulama videosunu da izleyebilirsiniz.

Hadi şimdi uygulamamızı yapmaya başlayalım..

Malzeme listemizi oluşturalım öncelikle. Bu malzemeleri aşağıdaki tavsiye ettiğimiz yerden alabilirsiniz.

1 adet Raspberry Pi

1 adet USB Kamera

1 adet PIR sensörü

3 adet jumper (dişi-dişi)

1 adet Nano Usb adaptör (isteğe bağlı ama taşınabilir olması açısından önemli)

1 adet mobil sarj (çıkış gücü 5v-1000mA(max)) (isteğe bağlı ama taşınabilir olması açısından önemli)

Mobil sarjı raspberry pi’ nin enerji girişine bağlayarak uzun süreli prizden uzakta kullanabilirsiniz.

Nano USB Adaptör Ayarları

Şimdi nano USB wifi adaptör ayarlarını yapalım. Daha önceden Ethernet kablosuyla interneti paylaştırarak kullandığımız Raspberry Pi’ yi artık bilgisayardan bağımsız ve kablosuz olarak istediğimiz yerde kullanabiliriz. Usb adaptörü taktıktan sonra Ethernet kablosu ile bağlantı yaparak ayarları yapacağız. Terminale eriştikten sonra şu komutu gireceğiz.

  • sudo nano /etc/network/interfaces

komutu girdikten sonra çıkan ayarları aşağıdaki gibi değiştireceğiz.

auto lo

 

iface lo inet loopback

iface eth0 inet dhcp

 

allow-hotplug wlan0

auto wlan0

 

iface wlan0 inet dhcp

wpa-ssid “”   // kullanacağınız Wi-Fi ağının SSID numarasını girin

wpa-psk “”  // kullanacağınız Wi-Fİ ağının parolasını girin

 

bu ayarları yaptıktan sonra kaydedip Raspberry Pi’ yi yeniden başlatın. Artık Ethernet kablosu olmadan Raspberry Pi’ yi kullanabilirsiniz. Ve bu ağa bağlı olan her cihazdan  Raspberry Pi’ ye bağlanabilirsiniz. Telefondan bağlanmak için Android uygulamalar var (mobile SSH gibi).

PIR sensörü ile ilgili ayrıntılı bilgilere bir önceki  yazıdan ulaşabilirsiniz. PIR sensör bağlantılarını ve işlemleri önceki yazıdaki gibi yaptıktan sonra kontrol edin eğer çalışıyorsa devam edin yoksa adımları tekrar kontrol edip hataları giderin.

USB Kamera Ayarları

Şimdi USB kamera ayarlarını yapalım.

Kamerayı raspberry Pi kapalı iken  takın veya taktıktan sonra yeniden başlatın.

Daha sonra şu komutları girin.

  • Sudo apt-get install ssmtp
  • Sudo apt-get install mailutils

Yüklemeler bittikten sonra aşağıdaki komutla ayarların bulunduğu sayfaya girin.

  • sudo nano /etc/ssmtp/ssmtp.conf

#

# Config file for sSMTP sendmail

#

# The person who gets all mail for userids < 1000

# Make this empty to disable rewriting.

root=postmaster

 

# The place where the mail goes. The actual machine name is required no

# MX records are consulted. Commonly mailhosts are named mail.domain.com

mailhub=smtp.gmail.com:587

 

# Where will the mail seem to come from?

#rewriteDomain=

 

# The full hostname

hostname=raspberrypi

 

# Are users allowed to set their own From: address?

# YES – Allow the user to specify their own From: address

# NO – Use the system generated From: address

AuthUser=aaa@gmail.com //gönderilecek mail hesabı yazıyoruz.

AuthPass=123456            // gönderilecek mail hesabın parolasını yazıyoruz.

 

FromLineOverride=YES

UseSTARTTLS=YES

AuthLogin=Yes

##

Bu ayarları yukarıdaki gibi düzelttikten sonra gönderilecek mail hesabının güvenlik derecesini azaltıyoruz. Yoksa güvenlik sebebi ile mail gönderimini engelliyor.

İşlemleri bitirdikten sonra aşağıdaki kodu yeni bir sayfa açarak yazıyoruz. (sudo nano campır.py gibi)

#!/usr/bin/python

import RPi.GPIO as GPIO

import time

import smtplib

from email.MIMEMultipart import MIMEMultipart

from email.MIMEImage import MIMEImage

from email.MIMEText import MIMEText

from email.Utils import COMMASPACE, formatdate

from email import Encoders

import subprocess

def sendEmail():

grab_cam = subprocess.Popen(“sudo fswebcam -p YUYV image1.jpeg”,shell=True)

grab_cam.wait()

image_path = ‘image1.jpeg’

username = “aaa@gmail.com” # gönderilen mail hesabın adını yazıyoruz

password = “123456”            # gönderilen mail hesabın şifresini yazıyoruz

COMMASPACE = ‘,’

message = MIMEMultipart()

message[‘Subject’] = ‘Hareket Algilandi’

me = ‘bbbbb@gmail.com’ # gönderilecek mail hesabın adını yazıyoruz

receivers= ‘bbbbb@gmail.com’  # gönderilecek mail hesabın adını yazıyoruz

message[‘From’] = me

message[‘To’] = COMMASPACE.join(receivers)

message.preamble = ‘Hareket’

fp = open(‘image1.jpeg’, ‘rb’)

img = MIMEImage(fp.read())

fp.close()

message.attach(img)

try:

server = smtplib.SMTP(“smtp.gmail.com”, 587)   #portu mail servis saglayacisi

server.ehlo()

server.starttls()

server.login(username,password)

server.sendmail(me, receivers.split(“,”), message.as_string())

server.close()

print ‘mail gonderildi’

except:

print “mail gonderilemedi”

 

GPIO.setmode(GPIO.BCM)

PIR_PIN = 7

GPIO.setup(PIR_PIN, GPIO.IN)

try:

print “PIR Modul Testi (Cikmak icin CTRL+C’ye basin )”

time.sleep(2)

print “Hazir”

 

while True:

if GPIO.input(PIR_PIN):

print “Hareket Algilandi!”

sendEmail()

time.sleep(1)

except KeyboardInterrupt:

print “Cikis”

GPIO.cleanup()

 

 

Kodları kaydettikten sonra artık uygulamamız hazır. Şimdi kodumuzu çalıştırıp hareket sensörünün önünde herhangi bir hareket  ile uygulamayı test edebiliriz. Artık eviniz (istediğiniz ortam) güvende, gözünüz arkada kalmasın 🙂

Lütfen karşılaştığınız hataları yorum olarak yazın ki bu hatalarla daha sonra karşılaşanlar da faydalansın. Herkese iyi çalışmalar dilerim.

 

 

 

 

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Ömer Aba
Daha Fazla Göster -  Raspberry Pi

30 Yorumlar

  1. OguzhanGultekın

    8 Şubat 2016 at 21:58

    Çok güzel olmuş elinize sağlık

    Reply

  2. Ömer Aba

    Ömer Aba

    10 Şubat 2016 at 09:52

    Teşekkür ederim.

    Reply

  3. CİHAN

    26 Nisan 2016 at 13:13

    Merhaba Raspberry Pi 3 kullanıyorum expect KeyboardInterrupt komutunda söz dizimi hastası veriyor neden olabilir.

    Reply

  4. Ömer Aba

    Ömer Aba

    26 Nisan 2016 at 21:29

    Merhaba, boşluklardan dolayıdır. Düz yazı olarak paylaşıldığı için boşluklar silinmiş. Düzeltip tekrar denerseniz olur inşallah. Yine bir hata alırsanız burdan screenshotları paylaşabilirim.

    Reply

    • CİHAN

      2 Mayıs 2016 at 09:22

      Komutları Screenshot olarak paylaşma imkanınız olabilirmi

      Reply

  5. veys

    16 Mayıs 2016 at 20:22

    Screenshot olarak paylaşabilir misiniz?

    Reply

  6. Ali Kerem karalar

    30 Ağustos 2016 at 14:22

    Çok güzel bir çalışma olmuş ellerinize sağlık. Ben birşey sormak istiyorum.. Raspberry e hiç baglanmadan sadece beslemeyi verdigimizde otomatik açılıp bu işlemleri yapmasi mümkün mü? Ne yapmam gerekiyor? Açılış için otomatik yönlendirme yapabiliyor muyum? Bide yeni topladiginiz 3D yazicinin kurulum videosu ve ürünleri nerden temin ettiginiz hakkinda sayfada paylasiminizi bekliyoruz teşekkürler..

    Reply

  7. Ömer Aba

    Ömer Aba

    31 Ağustos 2016 at 12:08

    Merhaba Ali Kerem Bey, Raspberry Pi’ deki istediğiniz programı başlangıçta çalıştıracak şekilde ayarlarsanız sadece besleme vererek çalıştırabilirsiniz.

    Reply

  8. Emrecan

    11 Kasım 2016 at 22:11

    merhaba elınıze saglık cok guzel bı calısma olmus ben bu projeyı bıraz farklı yapmak ıstıyordum gps/gprs modulu ıle mms gondermek ıstıyorum yardımcı olabılır mısınız bıde bu projenın komutlarının ss ını paylasabılırmısın
    tesekkurler ıyı calısmalar

    Reply

    • Yücel Yılmaz

      Yücel Yılmaz

      14 Kasım 2016 at 18:13

      GSM/GPRS modülü ile kullanmak istiyorsanız sahip olacağınız modülün IMEI numarasının Türkiye’de kayıtlı olmasına özen gösterin, aksi takdirde belli bir süre sonra ilgili IMEI tarihin tozlu sayfalarında kendine yer bulacaktır. İlgili video’yu 720p çözünürlükte izlemeniz takdirde net bir şekilde konsol komutları gözüküyor, eğer yine de göremezseniz size özel yazabiliriz, iyi çalışmalar Emrecan.

      Reply

      • Emrecan

        4 Aralık 2016 at 23:06

        tamamdır tesekkur ederım mms gonderme konusunda yardımcı olabılırsenız cok makbul gecer gsm/gprs modul kartını ben tasarlıcam ama kodlama kısmında tıkanıyorum bu anlamda kendımı gelıstırmek ıcın onerebılcegınız kaynak var mı.onerınız ıcın tesekkur ederım

        Reply

  9. Emrecan

    4 Aralık 2016 at 23:04

    her usb kamera da calısıyor mu ben wıfı ve pır ayarlarında sorun yasamadım ama kamera ayarlarında sorun cıktı yapamadım Sudo apt-get install ssmtp ve Sudo apt-get install mailutils komutlarında -bash: Sudo: command not found hatasını verıyor

    Reply

  10. Ömer Aba

    Ömer Aba

    4 Aralık 2016 at 23:17

    Merhaba Emrecan,
    Aldığın hata yazım yanlışından dolayıdır. “Sudo …” komutunu küçük harflerle yazıp tekrar denersen çalışacaktır.
    İyi çalışmalar.

    Reply

  11. Emrecan

    9 Aralık 2016 at 16:01

    raspberry pi 3 kullanıyorum ve wıfı ayarlarını senın kodundakı gıbı yaptım ondan kaynaklı olabılır mı bu arada ılgın ıcın tesekkur ederım

    Reply

  12. Emrecan

    25 Aralık 2016 at 03:31

    kodlardakı bı kac degısıklık ıle projeyı tamamladım tesekkur ederım

    Reply

    • Ömer Aba

      Ömer Aba

      26 Aralık 2016 at 12:30

      Çok sevindim. Daha güzel projelerde görüşmek dileğiyle 🙂

      Reply

  13. Emrecan

    20 Ocak 2017 at 02:39

    inşALLAH 🙂

    Reply

  14. umut

    25 Mart 2017 at 23:24

    merhaba

    robotik konusunda yeniyim.

    1)raspberry. pi’yi kodlamak icin hangi dili kullanıyorsunuz?linux konsol kodlarina benzettim.
    2)örneğin python da kullanilabilir mi?
    3)projeniz cok guzel olmus. başarılarızın devamini dilerim.

    Reply

    • Ömer Aba

      Ömer Aba

      27 Mart 2017 at 18:30

      Merhaba umut,

      Öncelikle teşekkür ederim.
      1.soruna cevap olarak, python programlama dilini kullandım. Ve raspberry pi’nin işletim sistemi olan Raspbian, debian tabanlı linux dağıtımıdır. Ve ben konsol üzerinden uygulamalarımı gerçekleştirdim.
      2. Python, C ve java dilinde uygulamalar yazılabilir.

      Yeni projelerde görüşmek dileğiyle.

      Reply

  15. kenan

    14 Mayıs 2017 at 19:28

    dostum yeniyim o yüzden basit bir soru gibi gelebilir 🙂 bu ilk başta sudo etc/ssmtp.conf dosyasına gidince o komutları ekledıkten sonra nasıl kaydedecegız?

    Reply

    • Ömer Aba

      Ömer Aba

      15 Mayıs 2017 at 23:56

      Merhaba Kenan,
      Değişiklikleri kaydetmek için ctrl+x sonra y harfi ile kaydedebilirsin. Her zaman yardımcı olmaya hazırız. En ufak bişey kafana takılsa bile çekinmeden sorabilirsin.iyi çalışmalar.

      Reply

  16. kenan

    14 Mayıs 2017 at 19:38

    conf dosyasını kaydetmeyi başardım. Sonrasında grab_cam kod satırında hata alıyorum sebebi ne olabilir

    Reply

    • Ömer Aba

      Ömer Aba

      15 Mayıs 2017 at 23:57

      Hata kodunu paylaşabilir misin?

      Reply

  17. Oğuz

    15 Mayıs 2017 at 23:35

    (Acil) Rassberry pi 3 alacağım. Nano USB Adaptör almama gerek var mı ? Pi 3 ün wifi ile geldiğini duymuştum

    Reply

    • Ömer Aba

      Ömer Aba

      15 Mayıs 2017 at 23:53

      Merhaba Oğuz,
      Raspberry pi 3 için wifi adaptörüne gerek yok. Kendi wifi ile aynı işlemleri yapabilirsiniz. İyi çalışmalar.

      Reply

  18. MustafaGÜDÜK

    22 Mayıs 2017 at 23:28

    Uzak bir noktaya bu sistemi kurarak. bulunduğu yerde elektrik yok güneş panelli sistem ile beslenip iletişimi wifi 3g modemle sağlayacak. bu yüzden uzak port açmam veya ip ile bağlanmam zor gözüküyor (pahalı ). günde 3-4 defa resim göndermesini ve ben istediğimde görüntü alabilmem gerekiyor. uzaktan bu tetiklemeyi nasıl yaparım. sizinde buna benzer veya bu fikir üzerinde yorumlarınızı bekliyorum. İyi çalışmlar…

    Reply

    • Ömer Aba

      Ömer Aba

      26 Mayıs 2017 at 12:16

      Merhaba Mustafa,
      Sistemi dediğiniz şekilde güneş paneli ile besleyerek wifi 3g modemle yapabilirsiniz. Ve hareket algılandıkça veya istediğiniz saatlerde/zaman aralıklarında fotoğraf çekip göndermesini de sağlayabilirsiniz. Ancak rastgele bi saatte görüntü alabilmek için ya ip adresinden bağlanmalısınız veya web programlama ile tetikleyip yapabilirsiniz. Başka bir yol aklıma gelirse yazarım buradan.
      iyi çalışmalar dilerim.

      Reply

      • Ömer Aba

        Ömer Aba

        26 Mayıs 2017 at 12:23

        Ayrıca Web programlama konusu çok zor değil yapabilirsin. Takıldığın yer olursa da yardımcı olurum. Web arayüzünde bii tane checkbox koyup mail at dersin o checked olunca fotoğraf çekip sana mail atar. Raspberry pi tarafında da port yönlendirmesi yapman gerekiyor dışarıdan bağlanmak için.

        Reply

  19. oguz

    30 Mayıs 2017 at 22:47

    merhabalar kodu calistirinca `File “canpir.py”, line 23
    SyntaxError: Non-ASCII character ‘\xe2’ in file canpir.py on line 23, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details` boyle bir hata aliyorum neden olabilir

    Reply

    • Ömer Aba

      Ömer Aba

      30 Mayıs 2017 at 23:59

      Merhaba Oğuz,

      ASCII karakter hatası veriyor. canpir.py dosyasındaki 23. satırı kontrol eder misin? orada türkçe karakter kullanmış olabilirsin. Kopyalayıp yapıştırmışsan noktalama işaretlerini tanımamıştır bundan dolayı bu hatayı alman normal. Aynı satırdaki noktalama işaretlerini silip tekrar yaz.

      İyi çalışmalar dilerim.

      Reply

Bir Cevap Yazın

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

Bak Bakalım ?

Raspberry Pi ile Yangın Alarm Uygulaması

Merhaba arkadaşlar, Bu yazımızda sizlere Raspberry Pi ile yangın alarm uygulamasını anlata…