MotionEyeOS[1] (MEOS) adındaki dağıtım Raspberry Pi’ı bir kamera gözetim sistemine dönüştürmek için hazırlanmıştır. Raspberry Pi gibi diğer popüler kart bilgisayarlar için de farklı imajlara sahip olan MotionEyeOS, Raspberry Pi’ın tüm sürümlerini desteklemektedir. MotionEyeOS’u indirme sayfası olan https://github.com/ccrisan/motioneyeos/releases adresinden indirdikten sonra bir SD karta yazın ve Raspberry Pi’ı başlatın. MEOS ilk defa başlarken disk bölümünü SD kartın tamamını kullanacak şekilde biçimleyecektir.
MotionEyeOS örnek kurulumu ve web arabiriminin ekran görüntüsü
MEOS, IP yapılandırmasını varsayılan olarak DHCP üzerinden alır ve ona erişebilmek için IP adresini bilmek gerekir. Eğer Raspberry Pi’a bir monitör bağlıysa, IP adresini aşağıda olduğu gibi monitörünüzde görebilirsiniz. Bir monitör bağlı değilse kitabın ilk bölümünde anlatıldığı gibi bir ağ taraması yaparak tespit edebilirsiniz.


1
2
3
4
5


# Interface etho has IP address 192.168.4.138/21
# Default gateway is 192.168.0.1
# DNS server address is 188.8.131.52
MEOS’un IP adresini bir web tarayıcısına yazarak aşağıdaki gibi izleme ve kontrol paneline erişebilirsiniz.
MotionEyeOS kontrol paneli
MEOS varsayılan olarak admin ve user adlı 2 kullanıcı hesabına sahiptir ve parolaları boştur. admin kullanıcısı MEOS’u yapılandırmak, user ise kameraları izlemek için kullanılır. Yeni kamera eklemek ve yapılandırma ayarlarını gerçekleştirmek için admin kullanıcı adıyla giriş yapalım. Giriş yaptıktan sonra ilk olarak, sol panelde yer alan menü simgesine tıklatın ve “General Settings” kategorisinde yer alan kullanıcıların parolalarını tanımlayın. İlgili servisler etkinleştirildiği takdirde bu parolalar ile FTP, Samba ve SSH üzerinden erişim sağlayabilirsiniz.
MotionEyeOS’u yapılandırmak
Şimdi de panelde bulunan yönetimsel seçenekler ile neler yapılabileceğine bakalım. Giriş yaptıktan sonra sol panelde bulunan “General Settings” altındaki “Advanced Settings” anahtarı etkinleştirildiğinde MEOS’un birçok ayarının özelleştirilebileceği seçenekler açılır.
- Preferences: Burada yer alan seçenekler ile panelin izleme alanında yer alan kamera pencerelerinin yerleşim düzeni ve izleme çözünürlükleri/fps ayarlanır. Çok sayıda kamera görüntünüz varsa ağ trafiğini azaltmak için “Frame Rate Dimmer” ile saniyedeki kare sayısını, “Resolution Dimmer” ile de çözünürlüğü düşürebilirsiniz. Bu ayarlar kontrol panelden izlenen görüntüler için geçerlidir, kayıtları etkilemez.
- General settings: Bu kısımda admin ve user kullanıcılarının parolaları tanımlanabilir ve “Advanced Settings” yani gelişmiş ayarlar etkinleştirilebilir. Gelişmiş ayarlar etkinleştirildiğinde alt kategorilerde, kameralar ve MEOS ile ilgili ayarlanabilecek birçok ek seçenek belirir. Ayrıca MEOS’u kapatıp/yeniden başlatabileceğiniz seçenekler ile mevcut MEOS yapılandırmasını yedekleyip geriye yükleyebileceğiniz düğmeler görüntülenir. Gelişmiş ayarları etkinleştirerek hostname kutusuna MEOS için bir bilgisayar adı yazarak devam edelim. Bilgisayar adı MEOS’un ağda görünen adı olacaktır. MEOS, yeni bilgisayar adının geçerli olması için yeniden başlatma isteyecektir.
- Network: MEOS’un kablolu ve kablosuz ağ yapılandırma seçenekleri ayarlalanır. Varsayılan olarak DHCP etkindir. Dilerseniz, Manual (Static IP) seçeneği ile sabit IP yapılandırması girilebilir. Wireless Network anahtarını etkinleştirerek bir kablosuz ağ adı (SSID) ve parolası girilerek MEOS’un kablosuz ağı etkinleştirilebilir.
- Services: Bu bölümde FTP, SAMBA ve SSH sunucuları etkileştirmek için anahtarlar yer alır. Ayrıca bu servisler üzerinde kimlik doğrulaması ve yazma izni desteğini de etkinleştirecek anahtarlar mevcuttur.
- Expert Settings: Network Link Watch seçeneği ile MEOS’un ağ bağlantısı sorunlarını takip etmesi ve ayarlanan TimeOut süresi sonunda yeniden başlatılması sağlanabilir. Ayrıca Connectivity Watch seçeneği ile internet bağlantısı sorunlarının da takibi sağlanabilir. “Date Method” ayarı ile MEOS’un sistem zamanını internetten güncellemesi sağlanır. Sistem zamanını NTP (Network Time Protocol) ve HTTP protokolleri üzerinden güncellemek için seçenekler bulunur. HTTP Port seçeneği ile kontrol panelin çalıştığı port değiştirilebilir. Motion Keep-alive seçeneği kamera görüntülerindeki değişimi hareketi algılamayı etkinleştirir. Enable Debugging, hata günlüğü tutma (log’lama) özelliklerini etkinleştirir ve bağlanan disklere okuma-yazma izni verir. Günlük kayıtları ve hatalar aynı bölümde yer alan motion.log, motioneye.log, messages.log, boot.log ve dmesg.log bağlantıları ile görüntülenebilir. Fast Network Camera, CSI konnektörü ile bağlanan Raspberry Pi kamerası için yüksek hızlı MJPEG akışını etkinleştirir. Bu özellik etkinleştirildiğinde ilgili kamera üzerinde motion (hareket algılama) özellikleri ile diğer kameralar çalışmaz olur. Bu seçenek daha çok Raspberry Pi Zero ile çalışırken uygundur. Ayrıca kamera için tahsis edilecek GPU belleği miktarını ve varsa kamera LED’ini etkinleştirmek için seçenekler açılır.
MotionEyeOS’a kamera eklemek
MEOS birçok kamera türünü destekler. Yeni kamera eklemek için admin kullanıcısı ile giriş yapın ve panelin sol üstündeki kamera açılır listesinden “add camera…” seçeneğine tıklatın. Çeşitli kamera türlerini eklemek için aşağıdaki gibi bir form açılacaktır.
MEOS kamera ekleme formu
Form üzerinde Camera Type ve Camera açılır listeleri ile eklenebilecek kamera türleri ve kameralar listelenir. Eklenebilecek kamera türleri şunlardır:
- Local V4L2 Camera: V4L2 (Video for Linux v2) API’larını kullanarak USB kameraları, MMAL servisi üzerinden de CSI kamerayı ekleyebilir. Kamerayı eklemek için Camera açılır listesinden ilgili kamerayı seçerek OK düğmesine tıklatın.
- Local MMAL Camera: MMAL (Multimedia Abstraction Layer) API’ı kullanarak CSI kamerayı eklemek için kullanılır. V4L2 API’ı Linux çekirdeği geliştiricileri tarafından geliştirilirken, MMAL ise Broadcam tarafından Videocore IV grafik işlemcileri için C dili kullanılarak geliştirilmiştir. Tam da Raspberry Pi’ın sahip olduğu grafik işlemcisi ve kamerası gibi.
- Network Camera: Bu seçenek ile RTSP, MJPEG veya JPEG URL biçimlerinden biri ile ağ akışıyapan IP kameralar eklenebilir. Böylece uzaktaki kameralar MEOS sisteminin bir parçası haline getirilerek merkezileştirilebilir. Bir ağ akışı kamerasının eklenebilmesi için URL adresi, varsa kullanıcı adı ve parolası da gerekecektir.
- Remote MotionEye Camera: Bir başka MEOS üzerinde bağlı ya da ekli olan kamerayı bu sisteme bağlamak için kullanılır. Birden fazla MEOS yüklü Raspberry Pi’ın olduğu ortamlarda tüm MEOS kameralarını tek bir noktada toplamak için kullanılır. Kamerayı eklemek için kameranın akış adresi ve bağlı olduğu sistemdeki admin kullanıcısının parolası gereklidir.
- Simple MJPEG Camera: MJPEG biçimli ağ akışlarını yüksek çerçeve hızında (fps) izlemek için uygun seçenektir. Yalnız bu seçenek ile eklenen kameralar motion’ı yani harekete duyarlı kayıtları ve disk kaydını desteklemez.
Add camera formundaki yukarıdaki seçenekleri kullanarak bir kamera eklediğinizde kamera ön izlemesi web panelin izleme alanında görüntülenir, kameraya ait değiştirilebilecek ayarlar da sol tarafında görüntülenir (1). Dilediğiniz zaman bu ayarları kamera ön izlemesinin sağ üstünde yer alan “configure this camera“ seçeneği (2) ile de görüntüleyebilirsiniz. Ayrıca yapılandırılacak kamera sol panelin üstünde yer alan açılır listeden de (3) seçilebilir. Değiştirilen ayarları uygulamak için ise “Apply” düğmesi (4) tıklatılır.
Bir kamera seçildiğinde, o kamera için aşağıdaki kategorilerde yer alan ayarlar gerçekleştirilebilir.
Video Device ayarları ekran görüntüsü
Camera Name, kameraya tanıtıcı bir isim vermek için kullanılır. Bu isim görüntü kayıtlarının etiketlenmesinde ve günlükler de kullanılır. Benzer şekilde Camera ID’de görüntü kayıtların dosya isimlerinde kullanılır. Automatic Brightness ile kameranın bulunduğu ortamdaki ışık miktarına göre kendini otomatik ayarlaması sağlanır. Bazı kameralar bu işi çok iyi yerine getirirken, diyafram açıklık değeri büyük olan kameralar iyi sonuç vermeyebilir. Video Resolution ile kameranın desteklediği çözünürlükler listelenir. Bu çözünürlüklerden biri seçilerek görüntü kaydının ve ön izlemesinin hangi çözünürlükte yapılacağı ayarlanabilir. Frame Rate ise kameradan saniyede okunacak kare sayısını belirler. Kare sayısı arttıkça görüntünün kalitesi ve akıcılığı artarken, dosya boyutu ve Raspberry Pi üzerindeki yük de artar. Extra Motion Options ile önceki ana başlıkta anlatılan motion aracı için yapılandırma seçenekleri tanımlanabilir. MotionEyeOS, hareket algılama için motion aracının sağladığı alt yapıyı kullanır.
File Storage ayarları ekran görüntüsü
Store Device açılır listesinde, görüntü kayıtlarının SD karta veya USB sabit diske kaydedilmesi yanında ağ üzerindeki bir samba paylaşımına yapılabilmesi için seçenekler yer alır (varsayılan dizin /home/ftp/sdcard/CameraX’dir). Ayrıca görüntü ve resimlerin FTP, Google Drive ve Dropbox gibi çevrim içi (online) disk hizmetlerine yüklenebilmesi için seçenekler de vardır. Bu seçeneklerin aktif olabilmesi için Upload Media Files anahtarının etkinleştirilmesi gerekir. Web Hook URL seçeneği hareket algılandığında bir URL adresine istek yapılabilmesini sağlar. Böylece hareket gerçekleştiğinde bir web servisi uyarılabilir. Run A Command seçeneği bir kamera görüntüsü disk üzerinde oluşturulduğu anda bir komut çalıştırmak için kullanılır.
Text Overlay ayarları ekran görüntüsü
Text Overlay, Kamera ön izleme görüntüsü ve kayıt dosyasının alt satırına basılacak olan bilgi etiketlerini tanımlar. Açılır listeden satırın sol ve sağ tarafları için birer etiket seçilebilir. Etiket olarak kamera adı (Camera Name), zaman damgası (Timestamp) veya kullanıcı tanımlı metin (Custom Text) seçilebilir. Disabled seçeneği alt satıra bilgi etiketi basılmasını devre dışı bırakır.
Video Streaming ayarları ekran görüntüsü
Video Streaming paneli, seçilen kamera için oluşturulacak ağ akışının özelliklerini yapılandırır. Streaming Frame Rate aktarılacak görüntüyü oluşturan resim karelerinin saniyedeki sayısını (FPS) belirler. Streaming Quality resim karelerinin görüntü kalitesini ayarlar. Streaming Image Resizing, kamera ayarlarından bağımsız olarak ağ akışı olarak sunulacak görüntünün çözünürlüğünü ayarlar. Streaming Port, ağ akışının hangi TCP port’u üzerinden sunulacağını tanımlar. Her kamera için farklı bir akış port’u kullanılmalıdır. Authentication Mode, ağ akışını alacak istemciler için kullanıcı kimlik doğrulamasını etkinleştirir. Motion Optimization anahtarı etkinleştirildiğinde, bir hareket algılandığında akıtılan görüntünün FPS değerini artırır, durağan görüntülerde FPS değerini düşürür. Snapshot URL, kameranın o andaki görüntüsünün elde edilebileceği bir URL verir. Bu URL, HTML etiketlerinden birisi olan <img>’ye src (source) seçeneği olarak verilerek bir web sayfası üzerinden gösterilebilir. Streamin URL, kameranın ağ akış adresini verir. Bu adres izleme/kayıt yapacak cihaza girilir veya doğrudan bir web tarayıcısı üzerinden de izlenebilir. Embed URL, görüntü karesinin bir HTML sayfası içinde gömülü olarak sunan bir URL verir. Bu URL ile yüklenen sayfa MotionEyeOS’un paneli ile ilişkilidir ve gerekli ise kimlik doğrulaması ister.
Still Images ayarları ekran görüntüsü
Still Images paneli, kamera görüntüsünün sürekli olarak resim dosyaları şeklinde kaydedilmesi için ayarlar sağlar. Image File Name oluşturulacak olan resim dosyasının adının nasıl belirleneceğini tanımlar. Y, m, d, H, M ve S sırasıyla resmin çekildiği andaki yıl, ay, gün, saat, dakika ve saniye değerlerine karşılık gelir. Capture Mode, resim karesinin hangi şartlarda yakalanacağını ayarlar. Manual, otomatik kayıt yapılmamasını sadece kullanıcı tarafından kamera ön izleme penceresi kullanılarak fotoğraf çekilmesini sağlar. Motion Triggered, hareket algılandığında hareketin her karesinin ayrı bir fotoğraf olarak kaydedilmesini, Motion Triggered (One Picture), hareket algılandığında sadece bir kare fotoğraf çekilmesini, Intercal Snapshots, belirlenen saniye aralıkları ile sürekli fotoğraf çekilmesini, All Frames, kamera etkin olduğu sürece sürekli fotoğraf çekilmesini sağlar. Preserve Pictures, çekilen resim karelerinin diskte ne kadar süre saklanacağını ayarlar. Gün, hafta, ay ve yıl olarak süre tanımlanabilir. Enable Manual Snapshots ise kamera ön izleme penceresi kullanılarak manual fotoğraf çekimini etkinleştirir.
Movies ayarları ekran görüntüsü
Movies panelindeki Movie Format ve Movie File Name, kaydedilecek kamera görüntüsünün dosya formatını ve adını ayarlar. Movie Quality, görüntü dosyasının kalitesini, Recording Mode ise bir hareket algılandığında mı (Motion Triggered) yoksa sürekli mi (Continious Record) kayıt yapılacağını ayarlar. Maximum Movie Length, bir görüntü dosyasının en fazla kaç saniye uzunlukta olabileceğini sınırlandırır. Preserve Movies, Still Images ayarına benzer olarak kaydedilen görüntülerin diskte ne kadar süre saklanacağını ayarlar.
motion Detection ayarları ekran görüntüsü
Motion Detection ayar panelindeki Frame Change Threshold, hareketin algılanma hassasiyetini ayarlar. Bu ayar resim karesindeki değişikliğin hareket olarak algılanması için gerekli yüzdelik değeri belirler. Auto Noise Detection, görüntüdeki bozuklukların hareket tetiklememesi için otomatik olarak düzeltilmesini sağlar. Light Switch Detection, hareketten farklı olarak kameranın görüntülediği ortamdaki ışık miktarındaki değişime bağlı olarak kayıt başlatmak için kullanılır. Örneğin kameranın görüntülediği odanın ışıkları açıldığında kayıt başlatır. Despeckle Filter, hareket tespitinden önce kameranın yakaladığı görüntü karelerini despeckle filtresinden geçirir. Despeckle filtresi resim karelerindeki bulanıklıkları giderir. Motion Gap, son hareketin görüldüğü kareden sonra kaç saniye kayıt yapılacağını ayarlar. Captured Before, hareketin başladığı andan öncesine ait kaç karenin kayda dâhil edileceğini belirler. Captured After, son hareketli kareden sonra kaç kare daha kayıt yapılacağını tanımlar. Minimum Motion Frames, bir hareketin tetiklenebilmesi için en az kaç hareketli resim karesine ihtiyaç duyulacağını tanımlar. Mask ayarı, resim karesinin nerelerinde hareket algılanacağını tanımlamak için Smart ve Editable seçeneklerini sunar. Editable seçeneği ile web panel üzerindeki kamera ön izlemesi üzerinde fare kullanılarak maske tanımlaması yapılabilir. Kapatılan alanlar için hareket algılaması yapılmaz. Show Frame Changes seçeneği ile algılanan hareketler görüntü üzerinde işaretlenir. Create Debug Media Files, hareket algılama sorunlarını sonradan incelemek için çeşitli hata ayıklama bilgilerinin yer aldığı özel kayıt dosyaları oluşturur.
motion Notifications ayarları ekran görüntüsü
Motion Notifications ayarları panelindeki Send An Email anahtarı, bir hareket algılandığında e-posta gönderilmesi için seçenekler sunar. Attached Pictures Time Span ile tanımlanan süre (sn) boyunca yakalanan resim kareleri e-posta eki olarak gönderilir. Bunun dışında geçerli bir e-posta hesabı için hesap ve sunucu bilgilerinin girilmesi gerekir. Call A Web Hook, hareket algılandığında bir web servisinin bilgilendirilebilmesi için çeşitli HTTP (get, post, json) yöntemleri sunar. Run A Command, hareket algılandığında bir komut çalıştırmak, Run An End Command ise hareket sonlandığında bir komut çalıştırılması için seçenek sunar.
Working Schedule ayarları ekran görüntüsü
Working Schedule ayarları paneli, kameranın haftanın hangi gün ve saatlerinde çalışacağını ayarlar. Haftanın her günü için farklı saat aralığı tanımlanabilir. Detect motion açılır listesindeki During Working Schedule seçilirse tanımlanan gün ve saat aralıklarında harekete duyarlı kayıt yapılırken, Outside Working Schedule seçilirse tanımlanan aralıkların dışında kalan zamanlarda kamera aktif olur.
MotionEyeOS ile kapsamlı bir güvenlik kamera sistemi oluşturma hakkında
MEOS’u tam bir güvenlik kamera sistemine dönüştürebilirsiniz. Aşağıdaki bağlantı topolojisini MEOS ile yapabilecekleriniz hakkında bir fikir vermesi amacıyla hazırladım. Daha fazlası için wiki sayfasına bakabilirsiniz [2]. MEOS’a dâhili (USB ve CSI) kameraların haricinde Raspberry Pi Zero W ile çalıştıracağınız ağ kameralarını ve diğer kamera kayıt cihazlarından alacağınız görüntü akışlarını ekleyerek merkezi bir kamera sistemi oluşturabilirsiniz.
Örnek MotionEyeOs bağlantısı
Raspberry Pi Zero W’lere bağlayabileceğiniz en uygun kamera CSI kameradır. Bu bilgisayarlara da MotionEyeOS kurarak kameranın Video Streaming ayarlarında yer alan Streaming URL ağ akışı olarak kullanılabilir. USB kameraların sayısını artırmak için harici güç beslemesine sahip bir USB Hub’ı kullanılabilir.
MotionEyeOS kayıt dosyalarına erişmek
MEOS varsayılan olarak Samba ve FTP sunucusu ile beraber gelir. Bir samba istemcisi ile veya Windows makinesi ile MEOS’un dosya sistemine aşağıdaki gibi erişebilirsiniz. Bunu gerçekleştirmek için, MEOS kontrol panelinden; “General Settings” altındaki “Advanced Settings” anahtarını etkinleştirin. Ardından “Services” altındaki sunucu hizmetlerini etkinleştirin.
MEOS, sdcard ve storage olmak üzere iki ağ paylaşımına sahiptir. Bu paylaşımlara erişmek için daha önce parolasını tanımladığınız kullanıcı hesaplarını kullanabilirsiniz. Benzer şekilde FileZilla gibi bir FTP istemcisi ile de aynı paylaşımlara erişebilirsiniz.
MotionEyeOS varsayılan samba paylaşımları
[1] MotionEyeOS – https://github.com/ccrisan/motioneyeos/wiki
[2] MotionEyeOS kullanım senaryoları – https://github.com/ccrisan/motioneyeos/wiki/Usage-Scenarios