Mündəricat:

Raspberry Pi İnsan Detektoru + Kamera + Şüşə: 6 addım
Raspberry Pi İnsan Detektoru + Kamera + Şüşə: 6 addım

Video: Raspberry Pi İnsan Detektoru + Kamera + Şüşə: 6 addım

Video: Raspberry Pi İnsan Detektoru + Kamera + Şüşə: 6 addım
Video: Дебильный лабиринт и холодный Гилман ► 10 Прохождение The Beast Inside 2024, Noyabr
Anonim
Raspberry Pi İnsan Detektoru + Kamera + Şüşə
Raspberry Pi İnsan Detektoru + Kamera + Şüşə

Bu təlimatda, Raspberry Pi IoT Layihəmin addımlarını keçəcəyəm - sadə bir təhlükəsizlik IoT cihazı qurmaq üçün PIR Motion Sensor, Raspberry Camera modulundan istifadə və Flask ilə aşkarlama jurnalına daxil olmaq.

Addım 1: PIR Hərəkət Sensoru

PIR Hərəkət Sensoru
PIR Hərəkət Sensoru

PIR "Passiv İnfraqırmızı" mənasını verir və bu hərəkət sensoru infraqırmızı görünüşü izləyərək və infraqırmızı dəyişiklikləri götürərək hərəkətləri qəbul edir. Buna görə də, sensordan keçən bir yarpaq və bir insanla yalnız insanı aşkarlayır, çünki biz insanlar istilik yaradırıq və infraqırmızı şüa yayırıq. Beləliklə, hərəkət sensoru insan hərəkətlərini aşkar etmək üçün yaxşı bir seçimdir.

Addım 2: PIR Motion Sensor Quraşdırması

PIR Hərəkət Sensorunun Quraşdırılması
PIR Hərəkət Sensorunun Quraşdırılması

PIR hərəkət sensoru üçün üç pin var: Güc, Çıxış və Torpaq. Sancaqlar altında etiketləri, güc üçün VCC, çıxış üçün çıxış və torpaq üçün GND -ni görə bilərsiniz. Sensor hərəkətləri algıladığında, Çıxış pimi, sensoru bağladığınız Raspberry Pi pininə YÜKSƏK siqnal verir. Power pin üçün, güc üçün Raspberry Pi üzərindəki 5V pininə qoşulduğundan əmin olmaq istəyirsiniz. Layihəm üçün Çıxış pinini Pin on Pin11 ilə birləşdirməyi seçirəm.

Hər şeyi bağladıqdan sonra aşağıdakı kimi skriptlər işlədərək sensorunuza mesaj göndərə bilərsiniz:

RPi. GPIO -nu GPIOimport zamanı GPIO.cleanup () GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #Pin 11 -də PIR hərəkət sensöründən çıxışı oxuyun: True: i = GPIO.input (11) əgər i == 0: #Hərəkət sensöründən çıxma LOW çap "Algılama yoxdur" olduqda, i time.sleep (0.1) elif i == 1: #Hərəkət sensöründən çıxış YÜKSƏK çap edildikdə " Hərəkət aşkarlandı ", i time.sleep (0.1)

Ssenarini Pi -də işlədin və sensorun hərəkəti tutub -tutmadığını yoxlamaq üçün əllərinizi və ya dostunuzu sensorun qarşısına qoyun.

Addım 3: Raspberry Pi Kamera Modulu və Quraşdırması

Raspberry Pi Kamera Modulu və Quraşdırılması
Raspberry Pi Kamera Modulu və Quraşdırılması

İstilik səbəbiylə insan infraqırmızı şüa yayır və temperaturu olan obyektlər də. Buna görə də heyvanlar və ya isti əşyalar hərəkət sensorunu işə sala bilər. Aşkarlamanın etibarlı olub olmadığını yoxlamaq üçün bir yola ehtiyacımız var. Həyata keçirməyin bir çox yolu var, amma layihəmdə, hərəkət sensoru hərəkətləri götürəndə şəkil çəkmək üçün Raspberry Pi kamera modulundan istifadə etməyi seçirəm.

Kamera modulundan istifadə etmək üçün əvvəlcə sancaqların Pi üzərindəki kamera yuvasına qoşulduğundan əmin olmaq lazımdır. Yazın

sudo raspi-config

Pi -də konfiqurasiya interfeysini açın və kameranı 'interfeys seçimlərində' aktiv edin. Yenidən başladıqdan sonra Pi yazaraq kameraya həqiqətən bağlı olub olmadığını yoxlaya bilərsiniz

vcgencmd get_camera

və vəziyyəti sizə göstərəcək. Son addım yazaraq picamera modulunu quraşdırmaqdır

pip picamera quraşdırın

Bütün quruluşlardan sonra, aşağıdakı kimi skriptlər işlədərək kameranızı sınaya bilərsiniz:

picamera idxalından PiCamera

vaxtdan idxal yuxu kamerası = PiCamera () camera.start_preview () yuxu (2) camera.capture ('image.jpg') camera.stop_preview ()

Şəkil, kamera skriptinizlə eyni qovluqda 'image.jpg' olaraq saxlanılacaq. Diqqət yetirin ki, 'yuxu (2)' nin olduğundan və sayının 2 -dən çox olduğundan əmin olmaq istəyirsiniz, buna görə kameranın işıq vəziyyətini tənzimləmək üçün kifayət qədər vaxtı var.

Addım 4: PIR Motion Sensor və Kamera Modulunu birləşdirin

Layihəmin ideyası, hərəkət sensoru və kameranın eyni istiqamətə baxmasıdır. Hərəkət sensoru nə vaxt hərəkətə keçsə, kamera bir şəkil çəkəcək ki, sonradan hərəkətlərə səbəb olanı yoxlaya bilək.

Ssenari:

RPi. GPIO -nu GPIO olaraq, datetime -dan datetime -ni, picamera -dan PiCamera'dan idxal edin.

GPIO.cleanup ()

GPIO.setwarnings (Yanlış) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #PIR hərəkət sensoru mesajından oxu çıxışı = 'start' counter = 0 log_f = open ('static/log.txt'), 'w') log_f.close ()

kamera = PiCamera ()

pic_name = 0

camera.start_preview ()

vaxt.yuxu (2)

Doğru halda:

i = GPIO.input (11) if i == 0: #Əgər counter> 0: end = str (datetime.now ()) log_f = open ('static/log.txt', ') hərəkət sensöründən çıxış LOW olduqda a ') mesaj = mesaj +'; sonu ' + son +' / n 'çap (mesaj) log_f.write (mesaj) log_f.close () final =' statik/' + str (pic_adı) + ".jpg" pic_adı = pic_adı + 1 kamera.capture (final) counter = 0 print "Intruders yoxdur", i time.sleep (0.1) elif i == 1: #Counter == 0 olarsa, hərəkət sensöründən çıxış YÜKSƏK olduqda = cari = str (datetime.now ()) mesaj = 'İnsan aşkarlandı:' + 'başlanğıcı' + cari sayğac = sayğac + 1 çap "Daxilçi aşkarlandı", i time.sleep (0.1) camera.stop_preview ()

'Log.txt' və şəkillər üçün kataloqlar Flaskın işləməsi üçün lazım olan 'statik' dir.

Addım 5: Flask üçün quraşdırma

Flask üçün quraşdırma
Flask üçün quraşdırma

Flask, Python dilində yazılmış və Werkzeug alət dəsti və Jinja2 şablon mühərrikinə əsaslanan mikro veb çərçivəsidir. Tətbiq etmək və saxlamaq asandır. Flask üçün daha yaxşı bir dərs üçün bu linki tövsiyə edirəm: Flask Mega Tutorial

Layihəmin əsas 'script.py' ssenarisi:

appfolder idxal appFlaskdan qabdan idxal render_template, idxal əməliyyat sistemini yönləndirin

APP_ROOT = os.path.dirname (os.path.abspath (_ file_)) # application_top -a aiddir

APP_STATIC = os.path.join (APP_ROOT, 'statik')

@appFlask.route ('/', üsullar = ['GET', 'POST'])

def view (): log_f = open (os.path.join (APP_STATIC, 'log.txt'), 'r') logs = log_f.readlines () final_logs = log logs: final_logs.append (log. strip ()) name = str (len (final_logs) -1)+'. jpg' return render_template ('view.html', logs = final_logs, fayl adı = ad)

HTML faylı 'view.html' üst çubuğundadır (çünki burada HTML kodlarını kopyaladığımda əslində HTML FORMATına çevrilir …)

Və layihənin quruluşu aşağıda bir şeyə bənzəməlidir (amma təbii ki, bunlardan daha çox fayl var):

iotproject / appfolder / route.py şablonları / view.html statik / log.txt 0-j.webp

Addım 6: Nəticə

Nəticə
Nəticə

Bu tətbiq üçün, hər şey düzgün qurulduqdan sonra, brauzerdə IP ünvanını yazaraq Raspberry Pi -yə daxil ola bilməliyik və nəticə bu addımda üst çubuğdakı şəkilə bənzəməlidir.

Tövsiyə: