Daftar Isi:
- Langkah 1: Sensor Gerak PIR
- Langkah 2: Pengaturan Sensor Gerak PIR
- Langkah 3: Modul dan Pengaturan Kamera Raspberry Pi
- Langkah 4: Gabungkan Sensor Gerak PIR dan Modul Kamera
- Langkah 5: Setup untuk Flask
- Langkah 6: Hasil
Video: Raspberry Pi Detektor Manusia + Kamera + Labu: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Dalam tutorial ini, saya akan memandu langkah-langkah untuk Proyek IoT Raspberry Pi saya -- Menggunakan Sensor Gerak PIR, modul Kamera Raspberry untuk membangun perangkat IoT keamanan sederhana, dan Mengakses log deteksi dengan Flask.
Langkah 1: Sensor Gerak PIR
PIR singkatan dari "Passive Infrared" dan sensor gerak ini mengambil gerakan dengan melihat tampilan inframerah dan mengambil perubahan inframerah. Oleh karena itu, dengan daun dan manusia melewati sensor, hanya mendeteksi manusia karena kita sebagai manusia menghasilkan panas dan dengan demikian memancarkan sinar inframerah. Oleh karena itu, sensor gerak adalah pilihan yang baik untuk mendeteksi gerakan manusia.
Langkah 2: Pengaturan Sensor Gerak PIR
Ada tiga pin untuk sensor gerak PIR, Power, Output dan Ground. Di bawah pin Anda dapat melihat label, VCC untuk Power, Out untuk Output dan GND untuk ground. Saat sensor mendeteksi gerakan, pin Output akan mengeluarkan sinyal HIGH ke pin Raspberry Pi yang Anda hubungkan dengan sensor. Untuk pin Power, Anda ingin memastikan bahwa itu terhubung ke pin 5V pada Raspberry Pi untuk mendapatkan daya. Untuk proyek saya, saya memilih untuk menghubungkan pin Output dengan Pin11 di Pi.
Setelah menghubungkan semuanya, Anda dapat mengirim pesan teks ke sensor Anda dengan menjalankan skrip seperti di bawah ini:
import RPi. GPIO sebagai GPIOimport time GPIO.cleanup() GPIO.setwarnings(False) GPIO.setmode(GPIO. BOARD) GPIO.setup(11, GPIO. IN) #Baca output dari sensor gerak PIR pada Pin 11 sementara True: i =GPIO.input(11) jika i==0: #Ketika output dari sensor gerak LOW print "Tidak ada deteksi", i time.sleep(0.1) elif i==1: #Ketika output dari sensor gerak adalah HIGH print " Gerakan terdeteksi", i time.sleep(0.1)
Jalankan skrip pada Pi Anda, dan letakkan tangan Anda atau teman Anda di depan sensor untuk memeriksa apakah sensor menangkap gerakan.
Langkah 3: Modul dan Pengaturan Kamera Raspberry Pi
Manusia memancarkan sinar infra merah karena panas, begitu juga benda-benda dengan suhu. Karena itu, binatang atau benda panas juga bisa memicu sensor gerak. Kami membutuhkan cara untuk memeriksa apakah deteksi itu valid. Ada banyak cara untuk diterapkan, tetapi dalam proyek saya, saya memilih untuk menggunakan modul kamera Raspberry Pi untuk mengambil gambar ketika sensor gerak menangkap gerakan.
Untuk menggunakan modul kamera, pertama-tama Anda ingin memastikan pin dicolokkan ke slot kamera di Pi. Jenis
sudo raspi-config
pada Pi Anda untuk membuka antarmuka konfigurasi, dan aktifkan kamera di 'opsi antarmuka'. Setelah reboot, Anda dapat menguji apakah Pi benar-benar terhubung ke kamera dengan mengetik
vcgencmd get_camera
dan itu akan menunjukkan kepada Anda statusnya. Langkah terakhir adalah menginstal modul picamera dengan mengetik
pip menginstal picamera
Setelah semua pengaturan, Anda dapat menguji kamera Anda dengan menjalankan skrip seperti di bawah ini:
dari picamera impor PiCamera
dari waktu impor kamera tidur = PiCamera() camera.start_preview() sleep(2) camera.capture('image.jpg') camera.stop_preview()
Gambar akan disimpan sebagai 'image.jpg' di direktori yang sama dengan salah satu skrip kamera Anda. Perhatikan, Anda ingin memastikan 'sleep(2)' ada di sana dan angkanya lebih besar dari 2 sehingga kamera memiliki cukup waktu untuk menyesuaikan kondisi cahaya.
Langkah 4: Gabungkan Sensor Gerak PIR dan Modul Kamera
Ide proyek saya adalah bahwa sensor gerak dan kamera akan menghadap ke arah yang sama. Setiap kali sensor gerakan menangkap gerakan, kamera akan mengambil gambar sehingga kami dapat memeriksa apa yang menyebabkan gerakan setelahnya.
Naskah:
impor RPi. GPIO sebagai GPIOfrom datetime impor datetime waktu impor dari picamera impor PiCamera
GPIO.pembersihan()
GPIO.setwarnings(False) GPIO.setmode(GPIO. BOARD) GPIO.setup(11, GPIO. IN) #Membaca output dari PIR motion sensor message = 'start' counter = 0 log_f = open('static/log.txt', 'w') log_f.close()
kamera = PiCamera()
pic_name = 0
kamera.start_preview()
waktu.tidur(2)
sementara Benar:
i=GPIO.input(11) if i==0: #Ketika output dari sensor gerak LOW jika counter > 0: end = str(datetime.now()) log_f = open('static/log.txt', ' a') pesan = pesan + '; akhiri di ' + akhir + '\n' print(pesan) log_f.write(pesan) log_f.close() final = 'static/' + str(nama_gambar) + ".jpg" pic_name = nama_gambar + 1 kamera.capture(final) counter = 0 print "No intruders", i time.sleep(0.1) elif i==1: #Ketika output dari sensor gerak TINGGI jika counter == 0: current = str(datetime.now()) message = 'Manusia terdeteksi:' + 'mulai dari ' + penghitung saat ini = penghitung + 1 cetak "Penyusup terdeteksi", i time.sleep(0.1) camera.stop_preview()
Direktori untuk 'log.txt' dan gambar adalah 'statis', yang diperlukan agar Flask dapat bekerja.
Langkah 5: Setup untuk Flask
Flask adalah kerangka kerja web mikro yang ditulis dengan Python dan berdasarkan toolkit Werkzeug dan mesin template Jinja2. Sangat mudah untuk menerapkan dan memelihara. Untuk tutorial Flask yang lebih baik, saya merekomendasikan tautan ini: Tutorial Flask Mega
Skrip utama, 'routes.py', dari proyek saya:
dari appfolder import appFlaskfrom flask import render_template, redirect import os
APP_ROOT = os.path.dirname(os.path.abspath(_file_)) # merujuk ke application_top
APP_STATIC = os.path.join(APP_ROOT, 'statis')
@appFlask.route('/', metode=['GET', 'POST'])
def view(): log_f = open(os.path.join(APP_STATIC, 'log.txt'), 'r') logs = log_f.readlines() final_logs = untuk log masuk: final_logs.append(log. strip()) name = str(len(final_logs)-1)+'.jpg' return render_template('view.html', logs=final_logs, filename=name)
File HTML 'view.html' ada di bilah atas (karena ketika saya menyalin kode HTML di sini, itu sebenarnya berubah menjadi FORMAT HTML…)
Dan struktur proyek akan terlihat seperti di bawah ini (tetapi tentu saja ada lebih banyak file daripada ini):
iotproject\ appfolder\ route.py templates\ view.html static\ log.txt 0-j.webp
Langkah 6: Hasil
Untuk implementasi ini, setelah semuanya diatur dengan benar, Anda harus dapat mengakses Raspberry Pi Anda dengan mengetikkan alamat IP-nya di browser, dan hasilnya akan terlihat seperti gambar di bilah atas pada langkah ini.