Daftar Isi:

Siapa di Pintu, Sistem Kamera yang Digerakkan Alexa: 3 Langkah
Siapa di Pintu, Sistem Kamera yang Digerakkan Alexa: 3 Langkah

Video: Siapa di Pintu, Sistem Kamera yang Digerakkan Alexa: 3 Langkah

Video: Siapa di Pintu, Sistem Kamera yang Digerakkan Alexa: 3 Langkah
Video: Bukti foto2 alien di planet mars ‼️Semuanya tertangkap kamera ⚠️😱 #Shorts #YouTubeShorts 2024, November
Anonim
Siapa di Pintu, Sistem Kamera yang Digerakkan Alexa
Siapa di Pintu, Sistem Kamera yang Digerakkan Alexa
Who's at the Door, Sistem Kamera yang Digerakkan Alexa
Who's at the Door, Sistem Kamera yang Digerakkan Alexa
Siapa di Pintu, Sistem Kamera yang Digerakkan Alexa
Siapa di Pintu, Sistem Kamera yang Digerakkan Alexa

Terkadang saat menonton TV Anda tidak ingin membukakan pintu kecuali itu penting. Proyek ini memungkinkan Anda untuk melihat orang di pintu hanya dengan memberi tahu perangkat Echo Amazon "Alexa, nyalakan monitor pintu". Anda memeriksa siapa yang muncul di layar TV, lalu kembali ke program TV normal "Alexa, nyalakan TV". Sistem ini juga dapat bermanfaat bagi orang dewasa yang lebih tua atau anak-anak yang rentan dimanfaatkan oleh penjual, pencuri, dan sejenisnya. Hal ini memungkinkan TV layar besar dari sistem hiburan Anda menjadi monitor tampilan kamera tidak hanya untuk kamera pintu depan, tetapi juga untuk kamera keamanan lain yang mungkin Anda miliki; bahkan bisa diperluas untuk menampilkan video dari kamera internet, seperti kamera pantai, dll.

Bagian:

Sistem hiburan:

TV dengan beberapa input HDMI (sebagian besar perangkat TV memilikinya)

Kotak kabel atau DVR

Router dan koneksi internet melalui cable box (mungkin tidak diperlukan jika Anda memiliki WiFi)

Amazon Echo ("Alexa")

Pusat Harmoni

Kamera

Kamera IP di pintu depan (Lebih disukai tipe Power Over Ethernet -POE)

Raspberry Pi3 dalam kotak proyek (Pi asli dapat berfungsi) dengan kabel HDMI

Arduino Pro Mini 8 Mhz, 3.3v

Modul IR (tipe paling umum akan berfungsi)

Langkah 1: Setup, Pemrograman Awal (pengujian)

Setup, Pemrograman Awal (pengujian)
Setup, Pemrograman Awal (pengujian)
Setup, Pemrograman Awal (pengujian)
Setup, Pemrograman Awal (pengujian)
Setup, Pemrograman Awal (pengujian)
Setup, Pemrograman Awal (pengujian)

Proyek ini bergantung pada omxplayer Pi3 yang mendekode video dengan akselerasi perangkat keras. Omxplayer dapat diuji coba dari baris perintah di terminal Pi menggunakan format alamat rtsp://user@password@ipad yang sesuai yang dibutuhkan kamera Anda. Pi harus terhubung ke Ethernet (meskipun Pi3 dapat dihubungkan melalui WiFi juga, tetapi tidak diuji) dan secara fisik terletak di pusat hiburan sehingga kabel output HDMI Pi dapat mencapai jack input HDMI TV. Modul Arduino dan IR akan terhubung ke Pi, dan menyampaikan informasi yang diperoleh dari membaca penekanan tombol remote control TV. Pi dapat melakukan decoding ini langsung dari modul IR, tetapi saya lebih baik dalam pemrograman Arduino daripada pemrograman Python dan selain itu menghemat sumber daya prosesor untuk tugas utama Pi dalam mendekode streaming video.

Karena sistem keamanan saya memiliki beberapa kamera, saya menggunakan tampilan pemantauan bertenaga Pi sebagai cara untuk menampilkan 4 kamera sekaligus, ditambah tampilan layar penuh masing-masing kamera. Ikuti instruksi tersebut, namun Anda mungkin akan mengalami banyak masalah dalam menampilkan kamera secara stabil.

Salah satu masalahnya adalah 4 ukuran jendela yang tercantum dalam program mungkin tidak sesuai dengan resolusi TV Anda. Temukan resolusi yang didukung monitor Anda sambil mencatat resolusi kamera yang dimiliki kamera Anda. Sebagian besar kamera IP memiliki aliran resolusi tinggi (1080p) dan resolusi rendah (640x480), jadi jika Anda hanya menginginkan satu video resolusi tinggi dari pintu depan, gunakan format aliran resolusi tinggi rtsp://. Pergi dengan aliran resolusi rendah untuk kamera di 4 kuadran, Anda tidak akan melihat banyak perbedaan dengan ukuran gambar yang lebih kecil. Anda dapat menggunakan ukuran jendela skrip bash (test.sh) saya (dalam mode resolusi 1080p, menampilkan 4 kamera 640x480 berukuran sama yang diskalakan agar sesuai). Jika tidak, gunakan kertas grafik untuk menyusun piksel TV Anda, lalu buat sketsa berapa banyak persegi panjang yang Anda inginkan di area itu. Selanjutnya temukan berapa banyak video 640x480 yang akan muat tanpa terlalu banyak perubahan aspek (peregangan secara horizontal terlihat lebih baik daripada secara vertikal). Saya tidak suka perbatasan, jadi tidak menghitungnya. Beri nomor persegi panjang dari kiri atas ke kanan bawah 1, 2, 3..dst. Kemudian buatlah kolom nomor jendela, untuk setiap baris angka tersebut tuliskan x kiri atas, piksel y dan piksel kanan bawah x, y. Angka-angka itu kemudian diganti ke dalam skrip untuk mendapatkan tampilan khusus, Anda dapat memiliki tampilan 3 x 3 jika diinginkan. Jika Anda hanya menginginkan satu tampilan, cukup komentari 3 kamera lainnya dan buat ukuran jendela menjadi resolusi layar penuh (dan gunakan aliran rtsp resolusi tinggi) dan beri judul skrip "test1.sh". Buat skrip sebanyak yang Anda inginkan, program Python btn.py akan memanggilnya saat pin GPIO diubah oleh Arduino.

Satu masalah dalam mendapatkan tampilan yang stabil (bagian atas gambar halus, tetapi garis vertikal gambar lebih rendah) adalah banyak kamera melakukan streaming jauh lebih baik menggunakan rtsp over tcp (saya menggunakan kamera Hikvision 2 hingga 5 Mp IP). Oleh karena itu, gunakan "--avdict rtsp_transport:tcp" di omxplayer seperti yang ditunjukkan. Perintah omxplayer berguna lainnya adalah volume (--vol -6000 untuk mute) dan buffer (--video queue x) di mana x=1 atau lebih.

Pengaturan kamera IP juga dapat menyebabkan masalah dengan omxplayer. Semua kamera IP harus diatur ke frame per detik yang sama atau gambar akan pecah. Ketika diatur ke kecepatan bingkai yang sangat berbeda, waktu yang ditampilkan pada satu cap waktu kamera benar-benar mundur selama beberapa detik, lalu maju lalu mundur, dll. Pastikan jendela omxplayer Anda tidak tumpang tindih, atau bagian yang tumpang tindih akan berkedip.

Langkah 2: Menyatukannya

Menyatukannya
Menyatukannya

Anda dapat secara manual mengontrol kotak kabel dan TV untuk memungkinkan Pi menunjukkan kamera pintu depan. Namun, itu memerlukan beberapa penekanan tombol, termasuk pengalihan yang tepat dari remote universal dari mode kabel ke mode TV untuk memungkinkan mengubah sumber input HDMI ke dekoder kamera Pi (HDMI 2). Jika Anda ingin kemampuan untuk menampilkan layar kamera tambahan, maka Anda juga harus mengganti remote universal ke AUX untuk mengontrol Arduino dan dengan demikian pemilihan kamera Pi. Untuk menyederhanakan proses ini, gunakan Harmony Hub dan aplikasi smartphone Harmony terkait, ajarkan untuk mengontrol TV dan kotak kabel untuk menonton TV normal dalam satu Aktivitas, lalu buat Aktivitas lain untuk mengontrol monitor video Pi. Aktivitas ini mencakup menyalakan TV, input TV ke HDMI 2, dan mengontrol tombol virtual NECx TV (yaitu, Arduino dan Pi) 0 hingga 5. Ini memungkinkan mengontrol semuanya melalui aplikasi smartphone Harmony. Untuk mempermudah, tautkan aplikasi Amazon Echo Dot (Alexa) dengan aplikasi Harmony untuk mengontrol fungsi TV atau pemantauan pintu dengan suara. Situs web Harmony memberikan detail tentang cara mengaktifkan keterampilan Alexa baru ini. Keterampilan baru. Setelah dikaitkan dengan keterampilan Alexa baru, kata kunci seperti "Nyalakan TV" atau "Nyalakan Monitor Pintu" akan mengaktifkan tindakan yang sesuai tanpa memerlukan IR dari remote universal.

Pi terhubung melalui Ethernet ke LAN Anda, dan melalui kabel HDMI ke TV. Saya memasang Pro Mini 3,3 volt melalui kabel ke Pi sebagai opsi untuk menambahkan peralihan kamera tambahan. Pro Mini dapat ditenagai dari pin 3,3 volt dari Pi. Modul IR terhubung ke pin 2 Arduino, dan sketsa terlampir mendekode tombol tekan 0 hingga 5 (sebenarnya 0 hingga 9, tetapi beberapa pin Arduino belum terhubung). Output Arduino terhubung ke pin GPIO input digital dari Pi, di mana interupsi skrip bash menentukan "tombol" mana yang ditekan, kemudian menghentikan satu opsi tampilan tampilan dan memulai yang lain.

Kotak kabel saya berasal dari Spectrum (sebelumnya Time Warner Cable), yang merupakan model Motorola DVR DCX3510. Ini menggunakan protokol Kabel GI untuk IR. Sony TV menggunakan protokol Sony 2. Saya pikir satu atau yang lain dari kode-kode itu akan baik-baik saja untuk mengontrol penerima Pi IR dan keduanya berhasil, meskipun ternyata tidak praktis. Remote control akan mengharapkan perintah tambahan, atau secara otomatis mengubah sumber input juga ketika tombol 0 hingga 9 ditekan. Oleh karena itu, saya harus menggunakan kode lain yang tidak akan berinteraksi dengan tuner kabel atau TV. Saya menemukan remote universal saya memiliki kode yang diprogram sebelumnya untuk perangkat AUX (tidak tahu apa yang dikendalikannya) dan memutuskan untuk menggunakannya. Kode yang dihasilkan mengatakan menggunakan NECx, kode 32 bit, jadi saya memasukkan kode tombol itu ke sketsa Arduino IR_Rev_Codes_Pi_Monitor. Ubah program jika Anda memiliki model yang berbeda dengan menggunakan program penerima di IRLib2 dan perhatikan pembuat, protokol, dan nilai hex untuk tombol yang ditekan.

Langkah 3: Kesimpulan

Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan

Monitor pintu adalah proyek otomatisasi rumah yang praktis. Itu adalah pengalaman pertama saya memprogram Pi dengan Python. Python memungkinkan pemrograman interupsi, fitur yang saya pikir disediakan untuk mikrokontroler. Interupsi memungkinkan program berjalan normal, menjalankan omxplayer, tanpa terus-menerus memeriksa apakah tindakan lain diperlukan seperti mengubah tampilan ke umpan kamera baru. Namun, jika interupsi terjadi, program kemudian menentukan umpan video baru mana yang harus ditampilkan. Arduino diatur untuk menyediakan pulsa untuk memicu interupsi Python. Jika interupsi terjadi, maka program mencari output Arduino tertentu (sesuai dengan tombol remote IR yang ditekan) yang diaktifkan. Terakhir, program mematikan tampilan omxplayer saat ini dan memulai tampilan omxplayer baru.

Saya mengetahui bahwa Pi tidak mengatur pin GPIO-nya ke input seperti yang dilakukan Arduino secara default - bukan kesalahan Pi, tetapi ini adalah cara Broadcom BCM2837 dari pabrik. Saya menyukai 4 inti, prosesor 1,2 Ghz, komputer berdaya rendah, biaya rendah yang dapat menampilkan video HD yang luar biasa. Tombol IR 1 menampilkan layar quad, dan tombol 2 hingga 5 masing-masing menampilkan satu layar besar kamera dalam Definisi Tinggi.

Menekan tombol remote IR 0 akan membatalkan tampilan video dan menampilkan baris perintah Pi. Jika Anda ingin menonton video Youtube atau sejenisnya, gunakan keyboard Bluetooth, ketik "startx" dan gunakan browser Pi untuk menavigasi ke video Youtube dan memutarnya dalam layar penuh dalam Definisi Tinggi.

Direkomendasikan: