Motion İle Sensörlü Bir Güvenlik Sunucusu Kurulumu
Merhaba arkadaşlar,
Bugün size Raspberry Pi’yi moton ile nasıl bir güvenlik sistemine dönüştüreceğinizi anlatacağım.
Artıları?
- Çok basit bir kuruluma sahip, çok az ayar yaparak başarılı bir sunucuya sahip olabilirsiniz.
- Stream yaptığı için başka yerlerden de kameranızı gerçek zamanlı olarak tıpkı bir güvenlik programı gibi izleyebilirsiniz.
- Hareketlerde değişikliği algılayabiliyor, ve de değişikliğe göre video/resim kaydı (ya da ikisini birden) gerçekleştirebiliyor.
- İsteğe bağlı olarak kaydedilen video/resimde değişikliği işaretleyebiliyor çerçeve içinde.
- Belirli periyotlarda resim alabiliyor (misal: otuz dakikada bir ya da her pazartesi 12:00’da resim al diyebilirsiniz, ya da ofisinizde hafta sonları ve hafta içi akşamları kayıt için özelleştirebilirsiniz)
- Videoların/resimlerin altına tarih/saat atayabiliyor, hatta isteğe bağlı özel metin girebiliyorsunuz.
- Her açılışta kendisini otomatik olarak başlatacak bir ayara sahip.
- Değişiklik durumunda çalıştırılabilecek özel komut callback’ine sahip. Bu sayede örneğin gece ofisinize hırsız girerse Pi’nizde tanımladığınız bir komut ile alarmı başlatabilirsiniz 😉
- Ve tabi bunu yapan benzer yüzlerde dolarlık programların yanında ki ücretsiz 🙂
Eksileri
- Performans mükemmel değil, (daha iyi performans verdiği iddia edilen başka bir çözüm var, henüz deneyemedim, deneyince onu da paylaşacağım)
- (Gerçi tam eksik sayılmasa da) Sürekli bir üçüncü parti disk takılı olması gerekmekte, çünkü SD kartların okuma / yazma hızları kötü ve de kapasiteleri çok düşük. Tavsiyem bir USB hard disk tanımlayıp oraya yazdırmanız.
Gelelim Kuruluma
- İlk önce web kameranızın algılanmış olduğundan emin olun. “sudo lsusb” komutunu girince kameranızın markasını, “ls /dev/video*” komutu ile de algılanmış olduğundan emin olun. (resimde /dev/video0 a tanımlı mesela)
- Önce gerekli paketleri kurmamız lazım. Raspbian için aşağıdaki komutlarla kurabilirsiniz, diğer dağıtımlarda da paket adları değişmeyecektir.
sudo apt-get install motion ffmpeg
- Şimdi de Pi’nin her açılışında motion’u aktif etmeyi ve de ağdaki diğer bilgisayarların erişebilmesini ayarlayacağız. Terminalden şu komutu girin:
sudo nano /etc/default/motion
Şunun gibi bir görüntü gelecek, No yazan yeri yes olarak işaretleyin (resimde yes olarak düzenlenmiş), böylece her açılışta servis olarak çalışacak.
Ctrl+X ve Y diyerek kaydedip kapatalım. - Şimdi gelelim konfigürasyona. Config dosyasını düzenlemek için aşağıdaki komutu girelim:
sudo nano /etc/motion/motion.conf
Buradaki komutları şuradaki açıklamalara göre düzenleyebilirsiniz, (tüm değerleri okumanızı şiddetle tavsiye ederiz), yalnız bazı en temel değerleri anlatmak istedim (ctrl+w ile değerleri arama yapabilirsiniz);
- daemon değerini her açılışta açılmasını istiyorsanı on a çekmelisiniz.
- videodevice değerini yukarda bulduğumuz değer ile değiştiriyoruz (eğer /dev/video0 ise değiştirmeye gerek yok)
- input değeri usb webcam olduğu için 8 olarak kalmalı
- norm değeri kayıtta hangi video normunun kullanılacağını belirler (0 Pal, 1 NTSC, 2 SECAM, 3 PAL NC ya da Renksiz), dokunmasanız da olur
- width ve height değerleri video ve resim çözünürlüğünü belirler, acil gereksinim yoksa 320 ve 240 değerleri pi’yi kastırmadan webcam ile idare eder bir kalite yakalamanızı sağlayacaktır.
- framerate değeri saniye başına kaç frame yakalanacağını belirler, değeri 2 ise 1 saniyede 2 kare resim çeker/videoya işler.
- auto_brightness değeri kamera eğer çok aydınlık ve karanlık ortamlarda gelip gidici ise parlaklığı otomatik ayarlamak içindir, açmak için on demelisiniz.
- brightness, contast, saturation ve hue değerleri ile oynayarak ideal renk ayarını yakalayabilirsiniz.
- output_normal değeri jpeg olarak resim kaydetmenin ayarıdır. off iken kapalı, on iken açık, best iken en fazla hareketin olduğu an, center iken de odak noktasının ortasına en yakın yerdeki harekete yönelmiş resim alma önceliği (özel bir noktaya kamerayı odakladığınızı ve de tam orta noktadaki değişikliklerin kritik olduğunu düşünün) ayarlanır.
- quality kısmı resim kalitesini verir, daha iyi kalitede resim yakalamak için 75 değerini daha yüksek bir değer ile değiştirin.
- ppm , jpg yerine ppm formatında resim kaydetmek içindir, on yaparsanız açılır.
- ffmpeg_cap_new değerini eğer video kaydetmek istiyorsanız on yapmalısınız.
- ffmpeg_video_codec değerini hangi formatta video kaydetmek istediğiniz ile değiştirmelisiniz. Satırın tam yukarısında desteklenen formatlar var, (flv, mov, ffv1, swf, mpeg1, mpeg4, msmpeg4)
- snapshot_interval değeri ile otomatik olarak x saniyede snapshot almanızı ayarlayabilirsiniz. 0 olunca kapalı olur.
- locate değeri harekette değişiklik olursa değişikliği çerçeve içine almanızı sağlar. Böylece hareket değişikliklerini video/resim akışında işaretleyebilirsiniz.
- text_right ve text_left değerleri ile kaydolan video/resmin başınba ve sonuna ön ek, veya tarih atayabilirsiniz. Değerleri bilmiyorsanız değiştirmenize gerek yok.
- target_dir kısmı önemli, burada hangi klasöre resim ve videoları yazmak istediğinizi belirleyebilirsiniz. Tavsiyem harici bir usb hard diske yapmanız.
Not: Yapılan klasöre 777 CHMOD vermeyi unutmayınsudo chmod 777 /klasör/adi
- snapshot_filename, jpeg_filename, movie_filename ve timelapse_filename kısmından bu dosyaların adlarının nasıl olacağını belirleyebilirsiniz. Ayrıca kayitlar/%Y-%m-%d/%v-%Y%m%d%H%M%S gibi alt klasör tanımlaması da yapabilirsiniz, burada arşivlemede otomatik düzen oluşacaktır.
- webcam_port değeri ile ipadresi:8081 şeklinde bağlandığınızda kameranın canlı yayınını görebilirsiniz, yalnız aşağıdaki ayarlardan kamerayı ağa açmanız lazım
- webcam_quality kameranın görüntü stram kalitesini belirler, 50 değerini daha da yükseltebilirsiniz.
- webcam_motion değeri ile hareket olmadığı zaman bitrate’i düşürüp hareket halinde bitrate’i yükselterek daha düşük boyutta daha iyi kalite yakalamanızı sağlayabilirsiniz. Çok fazla hareket olmayan yerlerde data transfer tasarrufu da sağlayacaktır.
- webcam_framerate web kamerasının kaç fps ile stream verdiğini gösterir, 1i 25 yaparsanız mesela video izler gibi görürsünüz, yalnız video bu durumda pi’yi kastırabilir.
- webcam_localhost bu değeri off yapmazsanız sadece pi’den açılınca gözükür kamera, ağdaki diğer kullanıcılara açmak için off değerine almalısınız.
- control_port değeri webcam’in arayüzüne hangi porttan bağlanacağınızı gösterir, ipadresi:8080 gibi girmenizi sağlar. Başka rastgele bir porta çekmeniz tavsiyemdir.
- control_localhost webkamerası görüntülerinin kontrolünü sadece localhosttan yapmanız için kısıtlamadır, bunu off yapmanız durumunda kontrol mekanizmasını da ağa açmış olursunuz.
- control_authentication satırı yanındaki ; ü kaldırıp username:password yerine kullaniciadi:sifre belirlerseniz kontrol kısmına ağdan girerken kullanıcı adı ve parola soracaktır. Ayarlamanızı tavsiye ederim.
- on_motion_detected değerinin başındaki ; ü kaldırıp value yerine terminalden istediğiniz komutu girerek mesela hareket olduğunda daha önceden hazırladığınız alarm çalıştırma komutu, uyarı maili atma komutu gibi komutları çalıştırabilirsiniz. Bu çok işinize yarayacaktır. Callback’leri dökümandan okumanızı tavsiye ederim.
- Ayarları da yaptıktan sonra servisi şağıdaki komutlardan biri ile başlatabilirsiniz.
sudo /etc/init.d/motion start
sudo service motion start
- Son olarak tarayıcınızdan http://ipadresi:yukardaayarlananport diye girince kamera akışını görmeye başlayacaksınız.
Örnek resim göstermem gerekirse (ben çekmedim, netten buldum resimleri);
Afiyet olsun 😉