Daftar Isi:

R-PiAlerts: Membangun Sistem Keamanan Berbasis WiFi Dengan Raspberry Pis: 8 Langkah (dengan Gambar)
R-PiAlerts: Membangun Sistem Keamanan Berbasis WiFi Dengan Raspberry Pis: 8 Langkah (dengan Gambar)

Video: R-PiAlerts: Membangun Sistem Keamanan Berbasis WiFi Dengan Raspberry Pis: 8 Langkah (dengan Gambar)

Video: R-PiAlerts: Membangun Sistem Keamanan Berbasis WiFi Dengan Raspberry Pis: 8 Langkah (dengan Gambar)
Video: FULL !!! Sistem Keamanan Pintu Menggunakan Sensor Reed Switch dengan Notifikasi Telegram 2024, November
Anonim
Image
Image
R-PiAlerts: Bangun Sistem Keamanan Berbasis WiFi Dengan Raspberry Pis
R-PiAlerts: Bangun Sistem Keamanan Berbasis WiFi Dengan Raspberry Pis
R-PiAlerts: Bangun Sistem Keamanan Berbasis WiFi Dengan Raspberry Pis
R-PiAlerts: Bangun Sistem Keamanan Berbasis WiFi Dengan Raspberry Pis

Saat bekerja di meja Anda, tiba-tiba Anda mendengar suara yang jauh. Apakah seseorang baru saja pulang? Mobil saya diparkir di depan rumah saya, apakah seseorang membobol mobil saya? Tidakkah Anda ingin mendapat pemberitahuan di ponsel atau di meja Anda sehingga Anda dapat memutuskan apakah akan menyelidiki atau tidak? Nah pertanyaan lagi! R-PiAlerts ada di sini!

Apa itu R-PiAlerts?R-PiAlerts adalah sistem keamanan berbasis Raspberry Pi3 yang dibangun di sekitar Cloud Firebase. Jika gerakan terdeteksi, sistem akan memberi tahu pengguna tentang potensi pembobolan dengan pesan teks dan tampilan LED yang berkedip (semacam alarm visual senyap). Setelah pengguna menerima pemberitahuan, dia dapat menyelidiki. Semua gerakan yang terdeteksi akan dicatat ke database Firebase. Selain melihat log pergerakan di browser web, pengguna juga dapat mengakses log pergerakan melalui aplikasi iOS. Saya memutuskan untuk membangun ini karena meningkatnya pembobolan kendaraan dan rumah di sekitar daerah saya baru-baru ini.

Mengapa Pi3? Saya membutuhkan sesuatu yang kecil yang dapat mendeteksi gerakan dan kehabisan baterai jika diperlukan. Kemudian, saya dapat menyembunyikan unit di balik pintu atau di dalam mobil. Juga unit harus dapat mengirimi saya pemberitahuan atau peringatan. Pi3 dapat melakukan semua hal ini dengan wifi bawaan dan kemampuannya untuk menjalankan paket baterai USB. Alasan lain mengapa saya memilih Pi3:

  • Pi relatif murah
  • Mudah untuk diterapkan dan ditingkatkan
  • Dapat dikonfigurasi dari sudut pandang perangkat lunak
  • Kemampuan untuk menggunakan tampilan dan sensor. Proyek ini akan menggunakan SenseHat
  • Operasikan Tanpa Kepala (tanpa monitor, keyboard, atau mouse)

Bagaimana cara kerjanya

  • Idealnya pengguna akan membutuhkan 2 Raspberry Pi yang terhubung ke database Firebase, tetapi satu Pi juga akan berfungsi.
  • Memanfaatkan SenseHat, Pi pertama (Pi1) akan mendeteksi pergerakan dengan akselerometer sedangkan Pi kedua (Pi2) akan menampilkan notifikasi pergerakan.
  • Ketika Pi1 mendeteksi gerakan, ia melakukan 3 hal

    • mencatat pergerakan ke database
    • buat entri notifikasi di database untuk ditampilkan Pi2
    • mengirim pesan teks kepada pengguna yang memberi tahu pengguna tentang pergerakan.
  • Ketika Pi2 mendeteksi pemberitahuan untuk ditampilkan dari database, dua hal terjadi

    • Layar LED Pi2 akan menampilkan notifikasi secara terus menerus
    • Pengguna dapat menghapus notifikasi dengan menekan tombol Pi2 SenseHat. Ini juga akan menghapus entri notifikasi pada database.
  • Dengan aplikasi iOS, pengguna dapat

    • mengakses basis data; baca dan hapus log gerakan
    • pengguna dapat mengirim Pi1 untuk menampilkan pesan pada layar LED Pi1.

Aplikasi praktis

  1. Jika Anda memarkir mobil Anda di jalan dalam jangkauan wifi. Pasang baterai ke Pi1 (lihat gambar). Sembunyikan Pi1 di mobil Anda. Tempatkan Pi2 di suatu tempat yang mudah dilihat seperti di sebelah meja Anda (lihat gambar).
  2. Aplikasi lain adalah menempatkan Pi1 di rumah Anda di sisi pintu. Pi sangat kecil sehingga kebanyakan orang tidak akan menyadarinya terutama jika berada di belakang sisi engsel (lihat gambar). Kemudian letakkan Pi2 Anda di meja kerja Anda.
  3. Anjing masuk ke tempat di rumah itu tidak seharusnya? Tempatkan Pi1 di area itu. Pastikan Anda memasukkan Pi ke dalam kotak yang kokoh agar anjing Anda tidak mengunyahnya.

Selama Pis Anda berada dalam jangkauan wifi, mereka dapat mengingatkan atau memberi tahu Anda tentang pergerakan. Jika Anda tidak memiliki Pi kedua, Anda cukup menggunakan Pi1 untuk mendeteksi gerakan dan menerima notifikasi SMS melalui ponsel Anda.

Bill of material

  • Dua (2) Raspberry Pi 3s yang menjalankan Raspbian (Raspberry Pi 2 juga akan berfungsi dengan dongle wifi)
  • Dua (2) SenseHats
  • Perangkat Mac dan iOS

Perangkat Lunak yang Dibutuhkan

  • Pustaka Pyrebase (menghubungkan ke Firebase)
  • Pustaka SenseHat (untuk mengakses akselerometer dan tampilan LED)
  • Pustaka Twilio (untuk mengirim SMS)
  • Python 3, dibangun dengan Raspbian terbaru
  • Raspbian dengan IDLE
  • Xcode8 dan Cocoapods di Mac Anda
  • Kemauan untuk belajar dan bereksplorasi

Catatan SampingIni bukan satu-satunya solusi keamanan berbasis Pi. Jika Anda memiliki ide, saran, atau hanya ingin memperbaiki kode saya, silakan tinggalkan komentar di bawah! =)

Langkah 1: Siapkan Akun Firebase dan Twilio

Siapkan Akun Firebase dan Twilio
Siapkan Akun Firebase dan Twilio
Siapkan Akun Firebase dan Twilio
Siapkan Akun Firebase dan Twilio

Pertama, sebelum kita mulai mengutak-atik Pis kita, kita perlu mengatur Firebase dan Twilio. Firebase adalah backend Google sebagai layanan. Firebase menyertakan fitur seperti database, cloud messaging, autentikasi, penyimpanan, dll. Untuk proyek ini, kita hanya perlu menggunakan database dan autentikasi realtime Firebase. Otentikasi akan diperlukan untuk membaca dan menulis ke database Firebase Anda. Untuk menyiapkan Firebase:

  1. Daftar untuk mendapatkan akun Firebase gratis
  2. Pergi ke konsol. Buat proyek baru dan beri nama.
  3. Di bawah menu sebelah kiri, klik "Ikhtisar"
  4. Klik "Tambahkan Firebase ke aplikasi web Anda", salin APIKey dan projectid Anda (bukan url). ID Proyek terletak di URL yang berbeda seperti database:
  5. Di bawah menu sebelah kiri, klik "Otentikasi". Buka "Metode Masuk" dan aktifkan "Email/Kata Sandi"
  6. Di bawah "Pengguna" buat akun pengguna baru dengan email/kata sandi pilihan Anda. Anda akan menggunakan kredensial ini untuk masuk ke database.
  7. Di bawah menu sebelah kiri, buka "Database"
  8. Ini adalah Basis Data Anda. Itu kosong sekarang. Ketika diisi, itu akan dalam format JSON. URL harus sama dengan yang Anda lihat sebelumnya.

Twilio memungkinkan pengembang untuk mengirim pesan ke pelanggan mereka. Kami akan menggunakannya untuk mengirim SMS ke ponsel Anda saat Pi mendeteksi gerakan. Twilio akan memberi Anda nomor telepon untuk mengirim SMS. Untuk mengatur Twilio:

  1. Daftar untuk mendapatkan akun gratis di situs Twilio
  2. Salin akunSID dan authToken Anda
  3. Klik "Pembatasan Percobaan" dan pilih "dapatkan nomor telepon Twilio pertama Anda"
  4. Salin nomor telepon baru Anda

Langkah 2: Siapkan Pis Anda

Siapkan Pis Anda
Siapkan Pis Anda
Siapkan Pis Anda
Siapkan Pis Anda

Sebelum kita dapat mulai memprogram Pis, kita perlu melakukan beberapa pengaturan. Pastikan Anda memiliki login kata sandi untuk Pis Anda. Pertama kita akan menghubungkan papan SenseHat secara fisik ke Pis. Selanjutnya, kita akan menginstal perpustakaan SenseHat, Twilio dan Pyrebase yang diperlukan. Basis data waktu nyata Firebase dirancang untuk perangkat seluler atau situs web. Namun, kita dapat membaca dan menulis database cloud melalui Rest API dengan library pembantu seperti Pyrebase.

Hubungkan SenseHatPastikan SenseHat terhubung ke Pis Anda. Jika Anda memiliki kasus yang tidak biasa, Anda mungkin perlu menghapus Pi sebelum menghubungkan SenseHat.

Menginstal PerpustakaanSemua instalasi perpustakaan akan dilakukan di Terminal

  • Boot Pis Anda jika Anda belum melakukannya.
  • Saat boot, Anda mendapatkan pelangi LED warna-warni ini di SenseHat Anda! (lihat gambar)
  • Buka terminal dan perbarui/dist-upgrade, ketik:

    • sudo apt-get update
    • sudo apt-get dist-upgrade
  • Setelah pemutakhiran selesai, ketik berikut ini untuk menginstal perpustakaan SenseHat:

    sudo apt-get install sense-hat

  • Untuk menginstal Pyrebase, ketik:

    sudo pip install pyrebase

  • Terakhir, instal Twilio

    sudo pip install twilio

Langkah 3: Skrip Python untuk Pi1

Seperti yang kami sebutkan sebelumnya, Pi1 akan menjadi Pi yang akan digunakan untuk mendeteksi pergerakan. Nilai akselerometer SenseHat akan digunakan untuk menentukan pergerakan. Dengan demikian, kode untuk Pi1 akan digunakan untuk mengakses nilai g force accelerometer dan mencatat gerakan yang terdeteksi ke Firebase Database. Berikut adalah gambaran alur proses:

  • Jika Pi1 mendeteksi gerakan, itu akan menambahkan entri ke anak "peringatan" di Firebase DB.
  • Pi1 juga akan memperbarui anak "notifypi2" dengan pesan pemberitahuan mengenai gerakan tersebut.
  • Pi2, kemudian membaca "notifypi2" dan menampilkan notifikasi pada tampilan matriks LED-nya.

Saya telah menyertakan skrip Pi1 Python untuk Anda ikuti. Komentar dalam skrip menjelaskan apa yang dilakukan kode tersebut.

Catatan dan wawasan tambahan untuk skrip Pi1

  • Untuk penyiapan Firebase dan Twilio. Isi kunci API, ID, kata sandi, dll yang sesuai yang Anda salin dari langkah sebelumnya.
  • Mengenai autentikasi Firebase, untuk keamanan ekstra, Anda dapat meminta masukan pengguna alih-alih mengkodekan kredensial ini secara keras. Setiap kali kita menulis atau membaca dari database, kita perlu menyertakan

    pengguna['idtoken'] dengan ini

    dapatkan(), tekan(), set() metode.

  • Suhu CPU diperlukan agar kami dapat melakukan intervensi jika Pi terlalu panas di dalam mobil atau lingkungan tertutup.
  • Kami juga mengambil nilai absolut dari gaya G karena kami tidak perlu mengetahui nilai negatif. Kita hanya perlu tahu apakah ada gaya G.
  • Jika pernyataan akan memeriksa nilai akselerometer. Jika gaya G lebih besar dari 1 ke segala arah, Pi1 akan mencatat waktu gerakan dan menampilkan tanda seru pada tampilan LED-nya sendiri. Ini juga akan memperbarui anak "notifypi2". Ketika "notifypi2" diperbarui, Pi2 akan membacanya dan menampilkan "!!!" pada layar LED-nya untuk memberi tahu pengguna tentang kemungkinan pergerakan/pembobolan. Pi1 juga akan mengirimi pengguna notifikasi SMS tentang pergerakan.
  • Saat menggunakan metode push(), Firebase akan membuat turunan secara otomatis dengan entri baru. Hal ini diperlukan agar data pergerakan yang dicatat menjadi unik. metode set() di sisi lain akan menimpa data sebelumnya.
  • Loop 10 detik untuk memeriksa database diperlukan agar Pi Anda tidak berulang kali meminta data dari Firebase. Jika Anda terus-menerus mengirim spam ke Firebase, Google akan mengeluarkan Anda dalam waktu sekitar 10 menit.
  • Firebase juga akan mengeluarkan pengguna setiap 60 menit jika token tidak disegarkan. Saya mengatur penyegaran ke 1800 detik (30 menit).

Langkah 4: Skrip Python untuk Pi2

Skrip Python untuk Pi2
Skrip Python untuk Pi2

Jika Anda melihat fotonya, itu adalah Pi2 yang menampilkan pemberitahuan kemungkinan pergerakan.

Skrip Pi2 hampir sama persis dengan Pi1 kecuali skrip tidak mendeteksi gerakan. Pi2 hanya menampilkan atau mengatur ulang pesan notifikasi dari anak "notifypi2". Karena itu satu-satunya perbedaan, saya akan menjelaskannya di bawah ini.

  • Setiap 10 detik, Pi2 akan mencentang "notifypi2" untuk ditampilkan. Jika ada pesan notifikasi untuk ditampilkan, maka Pi2 akan menampilkannya terus menerus sehingga pengguna melihatnya.
  • Hanya campur tangan pengguna dengan menekan tombol joystick, pesan akan dihapus dan disetel ulang di sisi basis data.

Langkah 5: Uji Pis

Image
Image
Uji Pis
Uji Pis

Saatnya menguji Pis.

  • Jalankan skrip untuk masing-masing Pis.
  • Masuk ke Firebase dan buka bagian database proyek Anda.
  • Kocok Pi1 Anda, Anda akan melihat tanda seru merah pada layar LED Pi1. Anda juga harus mendapatkan pesan SMS.
  • Periksa database, entri peringatan akan mulai muncul. "notifypi2" juga harus diperbarui.
  • Lihatlah Pi2. Anda juga harus menggulir "!!!" Untuk menghapus pesan notifikasi ini, cukup tekan joystick. "notifypi2" harus diatur ulang. Periksa Firebase Anda untuk mengonfirmasi.
  • Jika Anda menemukan Pi1 terlalu sensitif terhadap gerakan, tingkatkan ambang batas menjadi lebih besar dari 1G dalam skrip Pi1.

Jika semuanya berjalan dengan baik, skrip Anda tidak akan macet. Sekarang, Anda memiliki sistem notifikasi yang berfungsi. Setelah Pi1 mendeteksi gerakan atau getaran, Anda akan mendapatkan notifikasi pesan SMS dan notifikasi LED visual pada Pi2.

Langkah 6: Membangun Aplikasi IOS R-PiAlerts

Membangun Aplikasi IOS R-PiAlerts
Membangun Aplikasi IOS R-PiAlerts

Saatnya membangun aplikasi iOS! Aplikasi akan cukup sederhana. Ini akan memiliki LoginViewController dan ItemsTableViewController. ItemsTableViewController akan menampilkan pemberitahuan peringatan dari anak "peringatan". Seseorang juga dapat menghapus entri basis data dari aplikasi. Untuk menghemat sakit kepala Anda, jika Anda berencana untuk melihat tutorial online untuk Firebase, pastikan Anda mencari tutorial tertanggal setelah Maret 2016 karena ada perubahan besar tahun lalu sekitar waktu itu. Apa pun sebelum Maret 2016 akan menjadi warisan. Saya sudah tertarik dengan file Swift, silakan tinjau komentar dalam kode. Jika Anda menginginkan tutorial detail tentang cara membuat aplikasi Firebase yang membaca database, lihat tutorial Ray Wunderlich.

Siapkan Ikhtisar Proyek iOS Anda

  • Buat proyek iOS tampilan tunggal di Xcode.
  • Salin pengidentifikasi bundel
  • Buka proyek Firebase Anda di situs web dan buat file info.plist dengan pengidentifikasi bundel.
  • Tambahkan file GoogleService-info.plist ke proyek Anda. Info.plist ini hanya berfungsi dengan Proyek Firebase tertentu yang Anda buat.
  • Tutup Xcode dan instal Firebase melalui Cocoapods. Pastikan untuk menginstal Auth dan Database.
  • Mulai ulang Xcode, lalu konfigurasikan AppDelegate.swift Anda untuk Firebase. Hanya membutuhkan 2 baris kode.

    Impor Firebase NS

    FIRApp.configure(). Secara opsional, Firebase memiliki fitur persistensi yang hanya membutuhkan 1 baris kode

    FIRDatabase.database().persistenceEnabled = true

  • Langkah-langkah pemasangan detail dapat ditemukan di Situs Web Firebase

Bagaimana Aplikasi Berinteraksi dengan Firebase Database:

  • Aplikasi perlu mengautentikasi pengguna.
  • Setelah diautentikasi, aplikasi mengambil snapshot dari database Firebase dan menyimpannya sebagai objek "Item".
  • Objek tersebut akan mengisi array. Array tersebut akan digunakan untuk mengisi tampilan tabel.
  • Pengamat akan mengawasi perubahan pada database Firebase dan membuat snapshot.
  • Setelah perubahan terdeteksi, array akan ditambahkan dari snapshot baru.
  • Tampilan tabel kemudian akan dimuat ulang untuk menampilkan perubahan.

Garis Besar Umum tentang Cara Membangun Aplikasi

  • Lihatlah gambar tentang bagaimana aplikasi diletakkan di pembuat antarmuka Xcode.
  • Buat ViewController di pembuat antarmuka dan arahkan kelas khusus ke LoginViewController.swift.
  • Tambahkan bidang teks untuk email dan kata sandi. Jangan lupa untuk mengaktifkan "Entri Teks Aman" untuk bidang kata sandi. Tambahkan tombol masuk.
  • Tautkan bidang teks dan tombol ke LoginViewController.swift. LoginViewController.swift akan menangani otentikasi.
  • Tambahkan Pengontrol Navigasi di pembuat antarmuka. Buat segue dari LoginViewController ke Navigation Controller. Pastikan untuk memberikan pengidentifikasi pada segue.
  • Setel kelas kustom tampilan tabel baru yang disertakan dengan pengontrol navigasi untuk mengarahkan ItemsTableViewController.swift. Saya juga memiliki 2 tombol pada ItemsTableViewController: Logout dan tombol Add. Tautkan tombol ke ItemsTableViewController.swift.
  • Mengenai kode LoginViewController.swift. Pengguna akan memasukkan kredensial login dan Firebase akan mengembalikan pengguna. Jika pengguna hadir, itu akan melakukan segue dengan pengidentifikasi. (lihat kode terlampir)
  • Tambahkan kelas Item.swift (lihat kode terlampir)
  • Mengenai kode ItemsTableViewController, ini adalah kode tampilan tabel yang cukup standar. Akan ada pengamat untuk memantau perubahan pada database Anda yang disimpan sebagai snapshot sebagai objek Item. Kemudian objek Item akan menambahkan array untuk mengisi tampilan tabel. Tombol Tambah menyetel entri dalam database Firebase untuk dibaca dan ditampilkan Pi1. Untuk cekikikan, saya juga menambahkan kode (lihat kode terlampir)

Langkah 7: Uji Aplikasi

Uji Aplikasi
Uji Aplikasi
Uji Aplikasi
Uji Aplikasi
Uji Aplikasi
Uji Aplikasi

Jalankan aplikasi Anda

  • Masuk dan kocok Pi1 Anda. Anda akan mulai melihat pemberitahuan peringatan baru muncul.
  • Ketuk tombol tambah dan lihat Pi1 Anda menampilkan pesan Anda.
  • Geser ke kiri, lihat entri "Peringatan" dihapus.
  • Menerima terlalu banyak notifikasi secara berurutan? sesuaikan ambang akselerometer atau tambah waktu tidur di skrip Pi1.

Langkah 8: Kesimpulan

Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan

Luar biasa! Sekarang kami memiliki Pis yang dapat mendeteksi gerakan dan mengirimkan pemberitahuan gerakan kepada Anda. Selain itu, Anda dapat mengelola log pesan peringatan dengan perangkat iOS Anda! Saatnya untuk menyebarkan Pis. Letakkan Pi1 di sebelah pintu Anda dan Pi2 di sekitar area kerja Anda. Lain kali seseorang masuk, Anda dapat memeriksa situasinya! Atau lebih baik lagi, cobalah bersembunyi di Pi di mobil Anda dengan baterai. Membanting pintu beberapa kali, lihat apa yang terjadi!

Ini hanyalah awal dari kemungkinan apa yang dapat Anda lakukan dengan Raspberry Pi dan Firebase. SenseHat juga mencakup sensor lingkungan, gyros, dan kompas. Anda dapat mengatur Pis Anda untuk mencatat perubahan tertentu ke lingkungan. Ingin meningkatkan permainan Anda? Saat Pi Anda mendeteksi gerakan, gunakan kamera untuk mengambil gambar dan minta Pi mengirimi Anda foto. Coba juga gunakan algoritma computer vision untuk mengenali wajah. jika itu wajah seseorang yang Anda kenal, Anda bisa diberi tahu! Selamat bersenang-senang!

Direkomendasikan: