Daftar Isi:

Pemantauan Rumah Raspberry Pi Dengan Dropbox: 7 Langkah
Pemantauan Rumah Raspberry Pi Dengan Dropbox: 7 Langkah

Video: Pemantauan Rumah Raspberry Pi Dengan Dropbox: 7 Langkah

Video: Pemantauan Rumah Raspberry Pi Dengan Dropbox: 7 Langkah
Video: HOW TO - Create a Raspberry Pi Smart Home Kiosk (Home Assistant) 2024, November
Anonim
Pemantauan Rumah Raspberry Pi Dengan Dropbox
Pemantauan Rumah Raspberry Pi Dengan Dropbox

Tutorial ini akan menunjukkan kepada Anda cara membuat sistem pemantauan rumah yang sederhana dan dapat diperluas menggunakan Raspberry Pi, webcam, beberapa komponen listrik, dan akun Dropbox Anda. Sistem yang telah selesai akan memungkinkan Anda untuk meminta dan melihat gambar dari jarak jauh dari webcam Anda sambil juga menggunakan sensor suhu digital siap pakai untuk memantau suhu rumah Anda melalui internet, semuanya menggunakan Dropbox.

Ini adalah proyek pertama yang saya pikirkan setelah menerima Raspberry Pi 2 model B. Tujuan saya adalah membuat sistem pemantauan berbasis Python yang dapat saya kendalikan dan terima data dari internet. Meskipun ada banyak cara berbeda untuk melakukan ini, saya memutuskan untuk menggunakan Dropbox sebagai antarmuka antara Pi dan internet karena mereka memiliki API Python sederhana yang memungkinkan Anda mengunggah, memodifikasi, dan mencari file di folder tertentu menggunakan beberapa baris kode.

Saya juga ingin solusi saya ringan dan sederhana, dan untuk menghindari mengacaukan Pi saya dengan perpustakaan dan program yang tidak perlu. Komponen perangkat lunak proyek ini terdiri dari satu skrip Python, artinya Anda dapat terus menggunakan Pi Anda seperti biasa, bahkan saat sistem pemantauan sedang berjalan.

Untuk proyek ini Anda akan membutuhkan:

Sebuah Pi Raspberry. Model apa pun harus berfungsi, saya menggunakan starter kit all-in-one, tetapi mungkin Anda hanya memerlukan unit pusat

Kamera web USB. Saya membeli ADVENT AWC72015 yang murah, yang kebetulan berfungsi dengan baik. Ini mungkin ide yang baik untuk berkonsultasi dengan daftar webcam yang dikonfirmasi untuk bekerja dengan Pi. Perhatikan bahwa beberapa memerlukan hub USB bertenaga (milik saya berfungsi dengan baik tanpa)

Sebuah akun Dropbox. Saya menggunakan akun gratis standar saya karena proyek ini tidak memerlukan banyak ruang penyimpanan

Sensor suhu digital DS18B20 dan resistor 4.7k. Anda dapat membeli sensor di sini, dan mungkin ada baiknya mengambil paket berbagai resistor juga

Beberapa aksesori bangunan sirkuit. Saya akan merekomendasikan menggunakan papan tempat memotong roti dan beberapa kabel jumper untuk membuat proses pembuatan sirkuit semudah mungkin

[Jika Anda memutuskan untuk membeli salah satu produk ini, saya akan sangat menghargainya jika Anda mengakses daftar menggunakan tautan di atas - dengan begitu, saya mendapatkan bagian kecil dari keuntungan tanpa biaya tambahan untuk Anda!]

Langkah 1: Siapkan Perangkat Keras

Siapkan Perangkat Keras
Siapkan Perangkat Keras

Langkah pertama adalah memastikan bahwa Pi Anda dan periferal terkait sudah diatur.

Pertama, hubungkan Pi Anda ke internet. Ini diperlukan untuk memastikan bahwa program pemantauan dapat menerima permintaan Anda dan mengunggah data ke Dropbox. Saya menggunakan koneksi ethernet untuk memastikan keandalan, tetapi koneksi Wi-Fi juga harus berfungsi dengan baik, sementara juga memiliki keunggulan portabilitas yang ditingkatkan. Jika Anda memilih Wi-Fi, saya akan merekomendasikan dongle USB ini untuk Pi.

Selanjutnya, sambungkan webcam Anda ke Pi dengan mencolokkannya ke salah satu port USB. Sementara instruksi webcam Advent saya tidak secara eksplisit mengatakan bahwa itu akan bekerja dengan Linux, yang harus saya lakukan adalah mencolokkannya dan mem-boot Pi. Tidak diperlukan instalasi lebih lanjut. Webcam lain mungkin berbeda. Anda dapat memeriksa apakah webcam Anda telah terdeteksi oleh Linux menggunakan perintah berikut:

lsusb

Pada gambar di atas, webcam saya terdaftar sebagai '0c45:6340 Microdia'

Terakhir, Anda dapat menghubungkan sensor suhu DS18B20 Anda ke header GPIO Pi. Saya menggunakan papan tempat memotong roti untuk mempermudah proses pembuatan sirkuit, dan saya sarankan Anda melakukan hal yang sama, terutama karena DS18B20 memerlukan resistor 4.7k untuk ditempatkan di antara dua dari tiga pinnya. Tautan ini menyediakan diagram pengkabelan yang baik yang menunjukkan bagaimana papan tempat memotong roti dapat digunakan untuk terhubung ke sensor suhu ini.

Halaman berikutnya dari tutorial di atas juga mencakup langkah-langkah yang diperlukan untuk membaca data dari DS18B20, dan menunjukkan kepada Anda cara memeriksa apakah itu berfungsi. Penting untuk melakukan langkah-langkah penyiapan ini sebelum Anda dapat menggunakan DS18B20 untuk proyek ini. Kami juga akan mengintegrasikan contoh skrip Python dari tutorial ke dalam program pemantauan kami, jadi Anda mungkin ingin membaca sekilas kode ini.

Harap perhatikan juga nomor unik DS18B20 Anda. Ini adalah angka yang dimulai dengan '28-' yang Anda temui selama tutorial pengaturan. Anda harus memasukkannya ke dalam program Python yang akan datang untuk memungkinkannya membaca dalam suhu.

Langkah 2: Siapkan Dropbox

Siapkan Dropbox
Siapkan Dropbox

Agar Pi Anda dapat berinteraksi dengan Dropbox, Anda perlu menyiapkan aplikasi Dropbox baru. Ini akan memberi Anda detail yang diperlukan untuk Pi Anda untuk melakukan manajemen file online menggunakan Python. Dengan asumsi Anda telah membuat akun Dropbox dan masuk, Anda dapat membuat aplikasi baru menggunakan opsi menu ' Pengembang '. Lihat gambar di atas untuk ringkasan langkah-langkah penting.

Di dalam menu ' Pengembang ', pilih ' Aplikasi saya ', lalu tekan tombol ' Buat aplikasi '. Untuk mengisi formulir yang dihasilkan, pilih ' Dropbox API ' diikuti dengan ' App Folder '. Terakhir, Anda dapat memilih nama unik untuk aplikasi Anda di dalam Dropbox. Klik 'Buat aplikasi'.

Anda kemudian akan dibawa ke halaman pengaturan aplikasi Anda di dalam Dropbox. Hanya ada satu hal lagi yang perlu Anda lakukan di sini - buat sendiri Token Akses. Untuk melakukannya, gulir ke bawah ke bagian ' OAuth 2 ' dan di bawah ' Generated access token ', klik tombol ' Generate '.

Ini akan memberi Anda serangkaian karakter panjang yang diperlukan untuk mengakses akun Dropbox Anda menggunakan Python. Catat Token Akses ini karena Anda perlu menentukannya nanti dalam kode Anda. Jika Anda kehilangan token, Anda dapat menavigasi kembali ke pengaturan aplikasi Anda dengan mengeklik ' Aplikasi saya ' di bagian ' Pengembang ' Dropbox dan membuat token baru.

Anda dapat membiarkan pengaturan lain apa adanya. Untuk mengonfirmasi bahwa aplikasi Anda telah membuat folder yang diperlukan di akun Dropbox Anda, navigasikan ke beranda penyimpanan Anda dan cari folder 'Aplikasi'. Di dalam folder ini harus ada sub-folder dengan nama yang Anda pilih untuk aplikasi baru Anda. Di sinilah semua file untuk sistem pemantauan Anda akan ditempatkan.

Langkah 3: Mempersiapkan Folder Aplikasi Dropbox Anda

Mempersiapkan Folder Aplikasi Dropbox Anda
Mempersiapkan Folder Aplikasi Dropbox Anda

Setelah Anda mengatur aplikasi Dropbox Anda, saatnya untuk memikirkan bagaimana Anda akan menggunakan folder yang dihasilkan di akun Dropbox Anda untuk berinteraksi dengan Pi Anda. Ini dicapai dengan cukup sederhana. Skrip Python yang akan berjalan di Pi akan menggunakan subset perintah dari Dropbox API untuk mencari dan mengubah nama beberapa file kosong tanpa ekstensi di folder aplikasi Anda. Kami akan menyebut file-file ini 'file parameter' karena masing-masing akan memungkinkan Anda untuk mengontrol aspek yang berbeda dari perilaku sistem pemantauan. Gambar di atas menunjukkan empat file parameter yang perlu ada di folder aplikasi Dropbox Anda untuk proyek ini. Membuatnya sederhana:

Dimulai dengan folder aplikasi Anda benar-benar kosong, buka program editor teks di komputer Anda. Meskipun ini dapat dilakukan menggunakan Pi, saya merasa lebih mudah menggunakan laptop Windows saya untuk fase penyiapan ini. Setelah editor teks terbuka (saya menggunakan Notepad di Windows 7), yang perlu Anda lakukan hanyalah menyimpan file teks yang benar-benar kosong di mana saja di komputer Anda. Sebagai contoh pertama kami, kami akan membuat parameter pertama di gambar header. Beri nama file 'delay=10' saat Anda menyimpannya.

Untuk rekap, Anda sekarang harus memiliki file teks kosong yang tersimpan di komputer Anda dengan nama 'delay=10'. File juga akan memiliki ekstensi '.txt' yang mungkin terlihat atau tidak.

Langkah selanjutnya adalah mengunggah file ini ke folder aplikasi Dropbox Anda. Ini sama seperti unggahan Dropbox lainnya. Cukup navigasikan ke folder aplikasi Anda dan klik ' Upload ' dan pilih file 'delay=10' Anda.

Ketika file ini telah diunggah, Anda harus menghapus ekstensi '.txt' yang sekarang akan terlihat di nama file. Untuk melakukan ini, cukup klik kanan file dan pilih 'Ganti nama'. Hapus bagian '.txt' dari nama file. Anda sekarang harus dibiarkan dengan file bernama 'delay=10' tanpa ekstensi file, seperti yang ditunjukkan pada gambar header.

File parameter 'delay' adalah salah satu dari empat yang akan digunakan oleh program pemantauan. Untuk membuat yang lain, Anda cukup menyalin dan mengganti nama file 'tunda' Anda dengan mengklik kanan. Setelah Anda membuat tiga salinan, beri nama seperti yang ditunjukkan pada gambar header sehingga folder aplikasi Anda identik dengan yang ditunjukkan di awal langkah ini.

Langkah 4: Memulai Dengan Kode

Seperti yang telah dibahas, inti dari sistem pemantauan kami akan terdiri dari satu skrip Python yang akan berinteraksi dengan Dropbox. Agar program pemantauan aktif, skrip ini harus berjalan di latar belakang pada Pi Anda. Saya kira itu paling akurat digambarkan sebagai skrip 'daemon', artinya Anda bisa mengaturnya berjalan dan melupakannya. Script dilampirkan pada langkah ini, jadi tidak ada gunanya mengulangi kode di sini. Sekarang mungkin saat yang tepat untuk mengunduhnya dan membiasakan diri dengannya.

Sebelum Anda dapat menjalankan skrip, penting untuk memastikan Anda telah menginstal pustaka Python yang relevan. Yang Anda butuhkan tercantum di bagian atas skrip terlampir. Mereka:

impor dropbox

impor pygame.camera impor os waktu impor

Instalasi Python di Pi saya sudah termasuk pygame, os dan waktu jadi satu-satunya yang harus saya instal adalah Dropbox. Saya melakukan ini menggunakan instruksi instalasi yang sangat sederhana dengan pip.

Setelah perpustakaan Anda diatur, Anda perlu mengedit dua baris teratas dari skrip terlampir agar sesuai dengan Dropbox Access Token Anda dan pengenal unik sensor suhu DS18B20 Anda. Ini adalah dua baris yang perlu diedit:

APP_ACCESS_TOKEN = '**********'

THERMOMETER_FILE = '/sys/bus/w1/devices/28-**********/w1_slave'

Ganti saja ****s dengan nilai yang benar. Pada titik ini, Anda sebenarnya siap untuk mulai menggunakan program pemantauan! Alih-alih hanya melompat, saya sarankan Anda melanjutkan ke langkah berikutnya untuk gambaran umum kode.

PENTING: Saat Anda menjalankan skrip ini, Anda ingin skrip ini berjalan di latar belakang sehingga a) Anda dapat terus menggunakan Pi, dan b) saat Anda menutup sesi SSH Anda, skrip akan terus berjalan. Ini adalah perintah yang saya gunakan ketika saya menjalankan skrip:

nohup python DropCamTherm.py &

Ini menyelesaikan tiga hal: Ini akan menjalankan skrip ('python DropCamTherm.py'), itu akan mengembalikan kontrol ke baris perintah segera sehingga Anda dapat terus menggunakan Pi ('&'), dan itu akan mengirimkan output Python yang akan biasanya akan ditampilkan pada baris perintah ke dalam file bernama 'nohup.out'. Ini dapat dibaca menggunakan editor teks Linux (favorit saya adalah nano), dan akan dibuat secara otomatis di direktori tempat skrip dijalankan.

Langkah 5: Menggali Lebih Dalam Kode

Saat Anda membuka skrip, Anda akan melihat bahwa skrip tersebut terdiri dari tiga fungsi bersama dengan blok kode yang mengimplementasikan fungsi-fungsi ini saat skrip dijalankan. Fungsi tersebut menggunakan API Dropbox dan dan mengakses file log suhu DS18B20 untuk mendengarkan perintah dari Dropbox dan mengunggah pembacaan suhu terbaru. Di bawah ini adalah ikhtisar tentang fungsi yang dilakukan, dan bagaimana fungsi tersebut digunakan untuk membuat sistem pemantauan bekerja:

- poll_parameter():

Fungsi ini menunjukkan tujuan file parameter Dropbox yang kita buat di langkah 3. Fungsi ini mencari file yang berisi teks 'param=' di folder aplikasi Dropbox. Itu kemudian mengekstrak teks setelah '=' dan mencoba mengubahnya menjadi bilangan bulat. Anda dapat melihat bahwa ini memungkinkan kita untuk mengontrol program dengan menambahkan nomor yang relevan ke akhir file parameter secara manual. Langkah selanjutnya akan berisi instruksi manual singkat yang menunjukkan kepada Anda bagaimana menggunakan masing-masing file parameter untuk mengontrol aspek program.

- set_parameter():

Fungsi ini memungkinkan program untuk mengganti nama file parameter dari dalam Python. Ini dilakukan pada beberapa kesempatan, terutama untuk mengurangi kebutuhan akan penggantian nama file secara manual.

- set_latest_temp():

Fungsi ini menggunakan set_parameter() untuk mengunggah suhu terbaru ke folder aplikasi Dropbox dengan menambahkannya ke file parameter 'suhu'. Fungsi membaca suhu terbaru dari file log DS18B20 (yang tersedia di Linux di jalur yang ditunjukkan oleh variabel THERMOMETER_FILE).

Bagian akhir dari program berisi kode yang akan dieksekusi ketika skrip dijalankan. Setelah beberapa langkah penyiapan yang diperlukan untuk sensor DS18B20, itu membuka sesi Dropbox menggunakan Token Akses Anda dan menggunakan pygame untuk mencari webcam Anda. Jika webcam ditemukan, ia akan memasuki loop di mana ia menggunakan poll_parameter() untuk mengekstrak informasi dari Dropbox dan menindaklanjutinya.

PENTING: Anda akan melihat baris kode berikut:

cam = pygame.camera. Camera(cam_list[0], (864, 480))

…ini mencoba membuat antarmuka kamera yang dapat digunakan dari webcam pertama yang dideteksi pygame. Resolusi mungkin perlu diubah agar sesuai dengan webcam Anda. Bereksperimenlah dengan sejumlah nilai untuk menemukan yang terbaik.

Langkah 6: Menggunakan File Parameter Dropbox

Jadi sekarang Anda harus memiliki skrip kerja yang, ketika dijalankan menggunakan instruksi dari langkah 4, akan memungkinkan Pi Anda untuk mulai memantau folder aplikasi untuk input Anda. Saat pertama kali dijalankan, folder aplikasi harus berisi file parameter berikut:

tunda = 10

exitprogram=0 permintaan gambar=0 suhu=0

Interaksi dengan program dicapai dengan mengganti nama file parameter secara manual melalui Dropbox. Untuk melakukan ini, cukup klik kanan salah satu file dan pilih 'rename'. Setiap file parameter memiliki fungsi yang berbeda:

- menunda:

File ini memberi tahu program pemantauan berapa detik untuk menunggu antara setiap iterasi dari loop pemantauan. Ketika saya tahu bahwa saya tidak akan banyak berinteraksi dengan program, saya mengaturnya ke 60 atau 120. Ketika saya tahu bahwa saya ingin sering meminta data dari Pi, saya mengaturnya ke 10.

- program keluar:

Ini harus diatur ke 1 atau 0. Jika program mendeteksi bahwa itu disetel ke 1, skrip akan berakhir. Jika Anda menyetelnya ke 1 dan skrip keluar, Anda harus masuk ke Pi lagi untuk memulainya kembali. Parameter ini ada sehingga Anda dapat dengan anggun mengakhiri program pemantauan saat Anda tidak lagi membutuhkannya untuk dijalankan (misalnya, jika Anda telah kembali ke rumah dan tidak ingin lagi memantau webcam dari jarak jauh).

- permintaan gambar:

Ini mungkin parameter yang paling penting. Ini harus disetel ke 1 atau 0. Jika program mendeteksi bahwa ini disetel ke 1, program akan meminta gambar dari webcam dan mengunggahnya ke folder aplikasi (dengan judul 'image.jpg'). Jika ada 'image.jpg' lain, itu akan menimpanya.

- suhu:

Ini adalah pembacaan suhu DS18B20 yang disetel oleh fungsi set_latest_temp(). Anda tidak perlu mengedit file parameter ini - secara otomatis diatur oleh program.

Perhatikan bahwa jika Anda menyetel 'exitprogram' atau 'imagerequest' ke 1, program akan secara otomatis mengembalikannya ke 0 sebelum mengeksekusi kode yang relevan. Ini untuk kenyamanan. Anda mungkin juga memperhatikan bahwa kode tersebut berisi banyak blok 'coba' dan 'kecuali' yang mengelilingi banyak fungsi penting. Ini untuk memastikan bahwa skrip tidak akan mengeluarkan pengecualian (dan karenanya berhenti berjalan) jika terjadi kesalahan (seperti masalah konektivitas internet yang mencegah akses Dropbox).

Langkah 7: Kesimpulan

Proyek ini telah menyajikan cara untuk mengontrol Raspberry Pi menggunakan Python dan Dropbox. Meskipun perangkat keras yang digunakan dalam proyek ini adalah sensor suhu dan webcam USB, ada banyak aplikasi lain untuk metode pengontrolan Pi ini. Faktanya, setiap komponen perangkat keras yang dapat diakses melalui GPIO dapat dikontrol menggunakan struktur program yang serupa, sehingga membuat sistem sangat mudah untuk dikembangkan.

Sebagai langkah selanjutnya, Anda juga dapat menggunakan pustaka GUI seperti Tkinter bersama dengan Dropbox API untuk membuat program klien yang memungkinkan Anda memodifikasi file parameter tanpa perlu masuk ke Dropbox.

Saya harap tutorial ini jelas, dan jika Anda memiliki pertanyaan atau ingin saya mengklarifikasi sesuatu, silakan kirim komentar!

Direkomendasikan: