Jadikan Pi Moonlight Anda Sebagai Kamera Keamanan

Satu dekade yang lalu, saya belajar Linux melalui proyek pembangunan untuk kebutuhan saya sendiri. Salah satu proyeknya adalah sistem CCTV DIY berdasarkan kotak Linux – khususnya, paket all-in-one yang mudah digunakan untuk seseorang yang bersedia membayarnya. Saya menemukan Zoneminder, dan mereka yang tahu, sudah dapat mengetahui apa yang terjadi – saya akan begini, saya menghabiskan waktu berhari-hari untuk membuatnya bekerja, dan keterampilan Linux saya pada saat itu hampir tidak cukup. Perangkat lunak keren seperti Motion tersedia saat itu, tetapi saya tidak siap untuk menjalankan seluruh sistem di sekitarnya. Yang mengatakan, itu tidak mungkin, sekarang, kan?

Lima tahun kemudian, saya bergabung dengan hackerspace, dan akhirnya menemukan bahwa kamera CCTV-nya, meskipun cukup menonjol secara visual, sudah lama berhenti berfungsi. Pada saat itu, saya berada dalam posisi untuk melakukan sesuatu tentang hal itu, dan saya membangun seluruh jaringan CCTV di sekitar paket perangkat lunak yang disebut MotionEye. Ada banyak nilai dalam memiliki kamera CCTV yang berfungsi di ruang peretas – tidak hanya sistem yang berfungsi memecahkan masalah “siapa yang membuat kekacauan yang tidak diakui oleh siapa pun”, selama bertahun-tahun itu juga membantu kami dengan hal-hal seperti menemukan kunci interlock pengaman ke lasercutter yang telah dihapus selama reorganisasi, dengan lokasi sementara mereka segera dilupakan.

Mampu menggunakan MotionEye untuk membuat kamera keamanan dengan cepat menjadi sangat berguna segera – ketika saya membutuhkannya, saya dapat membuat kamera sederhana untuk memantau sepeda saya, memverifikasi bahwa tetangga saya tidak lupa memberi makan hewan peliharaan saya seperti yang dijanjikan saat saya pergi , dan dalam situasi tertentu, saya bahkan dapat memastikan keamanan fisik saya dan orang lain dengan bantuannya. Bagaimana Anda membangun jaringan kamera yang selalu berguna untuk merekam di rumah, ruang peretas, atau properti lainnya? Berikut adalah paket perangkat lunak sederhana dan kuat yang ingin saya tunjukkan kepada Anda hari ini, dan itu disebut MotionEye.

Bantuan => Tentang

Motion adalah daemon yang kuat untuk menyerahkan aliran video di Linux dengan cara seperti kamera keamanan – ia melakukan hal-hal seperti mendeteksi gerakan dan merekam klip video saat itu terjadi. Namun, ini adalah daemon baris perintah, dan tidak memiliki antarmuka grafis yang cukup nyaman untuk pekerjaan gambar kamera yang mudah digunakan. MotionEye adalah paket Python yang membungkus Motion, menyediakan antarmuka web bagi Anda untuk mengelola kamera Anda, tetapi yang lebih penting, harta karun berupa fitur kualitas hidup.

MotionEye cukup mudah untuk diinstal – hanya membutuhkan beberapa paket pada OS Anda dan beberapa dependensi Python, dan Anda dapat mengaturnya untuk memulai otomatis menggunakan hal-hal seperti systemd. Kemudian, arahkan browser Anda ke antarmuka webnya, dan Anda akan disajikan semua yang ditawarkan MotionEye, dapat diakses menggunakan OS desktop dan ponsel Anda. Ada juga gambar Docker jika Anda suka perangkat lunak Anda! Dari sana, Anda dapat mulai menjelajahi fitur-fiturnya.

Misalnya, deteksi gerakan dapat mengganggu pengaturan saat berhadapan dengan alat tanpa GUI – terkadang ada area di gambar Anda yang berubah setiap saat, tetapi Anda tidak menganggap area ini bermakna untuk tujuan deteksi gerakan. MotionEye memungkinkan Anda dengan cepat mengatur masker gerakan melalui antarmuka web, yang kemudian digunakan daemon Motion untuk memfilter kejadian gerakan pada sumbernya, dengan overhead sesedikit mungkin. Ini juga memberi Anda opsi seperti pengkodean perangkat keras, sesuatu yang bisa Anda lewatkan di antara manual.

Bagi kita yang tidak ingin menyiapkan semacam penyimpanan lokal, atau hanya ingin pemberitahuan gerakan didorong ke ponsel mereka, MotionEye dapat menggunakan berbagai cara mengunggah gambar dan video yang bergantung pada layanan online – email, Google Drive , Dropbox, dan sebagainya. Ini juga memungkinkan Anda mengatur kait baris perintah pada awal dan akhir acara gerak, yang kemudian dapat Anda gunakan untuk berbagai tugas otomatisasi – Saya pribadi telah menggunakan kait ini untuk membuat grafik peristiwa gerak menggunakan matplotlib, sebagai sarana untuk memvisualisasikan data kehadiran ruang peretas untuk tujuan otomatisasi .

Ada batasan, tentu saja. Misalnya, seperti Motion yang menjadi dasarnya, MotionEye tidak memiliki dukungan audio – meskipun Anda dapat menggunakan kait MotionEye dengan skrip perekaman audio eksternal untuk menyambungkan suara ke dalam klip yang direkam. Jika Anda memiliki kamera dengan rasio aspek yang berbeda, MotionEye tidak akan selalu menampilkannya dalam kisi yang rapi, meskipun saya telah memecahkannya melalui peretasan CSS di masa lalu. Namun, itu masih merupakan paket yang sangat kuat dalam hal apa yang dapat Anda lakukan.

MotionEyeOS – Pengalaman Luar Biasa

Anda juga tidak harus memiliki distro yang sudah diinstal sebelumnya. MotionEyeOS adalah gambar kartu SD kecil dengan MotionEye dan semua yang Anda butuhkan untuk membuatnya berfungsi, dibuat dengan bantuan Buildroot. Cukup flash gambar ke kartu MicroSD, berikan kredensial nirkabel atau colokkan kabel Ethernet. Setelah mengatur MotionEyeOS, itu akan secara otomatis mengambil semua kamera yang ditemukannya, termasuk Kamera Raspberry Pi yang terhubung dengan CSI jika ada. Ini tidak terbatas pada Raspberry Pi, untuk lebih jelasnya – ada rilis untuk papan Odroid, NanoPi, BananaPi, OrangePi dan Pine46 juga.

MotionEyeOS menggunakan penyimpanan hanya-baca untuk sistem secara default, dan menurut saya itu sangat tahan terhadap pemadaman listrik, tentu saja, jika Anda tidak mengaktifkan perekaman lokal, itu tidak akan pernah menulis apa pun kecuali pengaturan berubah ke kartu SD. Karena gambarnya sangat kecil, saya telah menggunakan beberapa kartu 512MB yang tersisa untuk papan yang saya siapkan. Ini sangat berguna untuk kamera tujuan tunggal, mungkin satu-satunya masalah adalah belum diperbarui untuk papan seperti Zero W 2, tetapi ada pembuatan khusus oleh anggota komunitas MotionEye!

Dalam konfigurasi default, MotionEye akan merekam ke perangkat penyimpanan utama Anda yang tersedia – menggunakan sistem file root Anda dalam kasus instalasi MotionEye mandiri, dan dalam kasus MotionEyeOS, itu akan menjadi partisi yang dibuat secara otomatis yang mengambil semua ruang yang tidak ditempati oleh inti MotionEyeOS . Mengingat Anda mungkin akan menjalankannya dari kartu SD yang dicolokkan ke Raspberry Pi Anda, akan lebih masuk akal jika Anda menghubungkan HDD USB atau SSD sebagai gantinya, dan jika Anda mengatur beberapa kamera, perangkat penyimpanan yang terhubung ke jaringan akan menjadi bahkan lebih baik. Yang membawa saya ke poin berikutnya!

Siap DVR, Juga

MotionEye tidak hanya untuk perangkat yang dilengkapi kamera – Anda dapat membuat DVR dengannya. Untuk itu, instal MotionEye pada komputer yang cukup kuat dengan beberapa hard drive besar yang murah dan kemudian ambil video dari kamera jaringan, baik yang berbasis MotionEye atau kamera IP Cina yang terhubung ke subnet tanpa Internet. Dengan pengaturan seperti itu, Anda tidak perlu melakukan deteksi gerakan atau penyimpanan pada kamera itu sendiri – yang memungkinkan Anda menggunakan papan Raspberry Pi yang murah, bahkan seperti Model B asli, dan kartu SD kecil tanpa takut akan kerusakan file video jika daya dipotong di tengah tulisan.

Di ruang peretas yang disebutkan di atas, saya memiliki banyak kamera yang terhubung dengan Raspberry Pi di berbagai sudut, beberapa ditenagai oleh MotionEyeOS dan beberapa dengan MotionEye ditambahkan di samping perangkat lunak yang sudah berjalan di dalamnya untuk mengaktifkan berbagai fitur ruang peretas. Platform DVR kami adalah mainboard DN2800MT industri dengan di atasnya dan dua HDD SATA dalam perangkat lunak RAID1 – Saya tidak memiliki penyandian perangkat keras, karena driver iGPU N2800 di bawah standar di Linux, tetapi CPU cukup baik untuk bekerja dengan 8 kamera dengan berbagai resolusi pada suatu waktu.

Anda juga tidak perlu menggunakan DVR terpisah. Anda dapat memiliki kamera MotionEye, lalu mengatur MotionEye sebagai penampil kamera non-rekaman di beberapa komputer, mungkin, bahkan laptop pribadi Anda – memungkinkan Anda melihat dan mengonfigurasi semua kamera dari satu tempat. Dengan cara ini, Anda mendapatkan dasbor dengan semua kamera dan tidak memerlukan perangkat keras tambahan. Anda akan menemukan bahwa MotionEye fleksibel di luar skenario yang saya ceritakan, tetapi ini adalah ikhtisar yang layak tentang apa yang dapat Anda lakukan.

Bantu, Tetap Aman, Tetap Dilengkapi

Sekarang, MotionEye adalah salah satu proyek yang disukai banyak orang, tetapi itu tidak mendapatkan perhatian pengembang yang cukup saat ini, karena pengembang utama telah mengundurkan diri dua tahun lalu. Karena nilai yang diberikannya, komunitas tetap hidup dan bermanfaat, tetapi basis kode dapat menggunakan beberapa orang yang mau mempelajarinya. Kode ini cukup dapat dipelihara, tetapi ada banyak TODO yang harus diperhatikan – hanya beberapa yang saya perhatikan bekerja melalui kekusutan port Python 3, mengintegrasikan firmware Raspberry Pi baru ke dalam build, mengerjakan ulang integrasi Buildroot, memperbaiki integrasi Google Drive, dan menyelesaikan semua masalah kecil yang menumpuk.

Anda mungkin sudah memikirkan usecase, tetapi jangan lupa untuk memeriksa undang-undang setempat! Anda mungkin tidak diizinkan untuk menjalankan kamera mau tidak mau, atau dengan hal-hal tertentu di bidang pandangnya. Namun, stiker dengan “perekaman video sedang dilakukan” mungkin cukup untuk tempat Anda berada. Orang juga dapat berargumen bahwa, jika kamera ada di properti Anda, ia berhak berada di sana dan melakukan semua fitur yang dilakukan kamera. Di sisi lain, tidak salah jika seorang tamu diintimidasi oleh kamera di ruang tamu Anda – jadi sesuaikan saja.

Anda mungkin memiliki satu atau dua Kamera Raspberry Pi cadangan, dan sekarang Anda tahu apa yang dapat Anda lakukan dengan satu atau dua Kamera Raspberry Pi. Siapa yang tahu apa yang bisa Anda buat – lagi pula, kami bahkan telah melihat dekorasi Halloween yang didukung oleh MotionEye! Lain kali, saya ingin memberi tahu Anda lebih banyak tentang mengamankan jaringan kamera yang diberdayakan Linux, khususnya, menggunakan terowongan Wireguard point-to-point di LAN Anda – memastikan bahwa bahkan kamera Anda yang terhubung dengan WiFi tidak dapat diintip. .