Daftar Isi:

Raspberry Pi Detektor Manusia + Kamera + Labu: 6 Langkah
Raspberry Pi Detektor Manusia + Kamera + Labu: 6 Langkah

Video: Raspberry Pi Detektor Manusia + Kamera + Labu: 6 Langkah

Video: Raspberry Pi Detektor Manusia + Kamera + Labu: 6 Langkah
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Juli
Anonim
Raspberry Pi Detektor Manusia + Kamera + Labu
Raspberry Pi Detektor Manusia + Kamera + Labu

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

Sensor Gerak PIR
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

Pengaturan Sensor Gerak PIR
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

Modul dan Pengaturan Kamera Raspberry Pi
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

Pengaturan untuk Flask
Pengaturan 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

Hasil
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.