Raspberry Pi Raspberry Pi ile Harekete Duyarlı Güvenlik Kamerası By Ömer Aba Posted on 8 Şubat 2016 10 min read 38 6 35,608 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr Raspberry Pi ile PIR ve USB kamera kullanımı ile harekete duyarlı güvenlik kamera uygulaması 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 [email protected] //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 = “[email protected]” # 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 = ‘[email protected]’ # gönderilecek mail hesabın adını yazıyoruz receivers= ‘[email protected]’ # 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.