Talaan ng mga Nilalaman:

Human Detector ng Raspberry Pi + Camera + Flask: 6 na Hakbang
Human Detector ng Raspberry Pi + Camera + Flask: 6 na Hakbang

Video: Human Detector ng Raspberry Pi + Camera + Flask: 6 na Hakbang

Video: Human Detector ng Raspberry Pi + Camera + Flask: 6 na Hakbang
Video: Bury Your Backup Servers Underground ⚰️ 2024, Hulyo
Anonim
Raspberry Pi Human Detector + Camera + Flask
Raspberry Pi Human Detector + Camera + Flask

Sa tutorial na ito, lalakad ako sa mga hakbang para sa aking Proyekto ng Raspberry Pi IoT - Paggamit ng PIR Motion Sensor, module ng Raspberry Camera upang bumuo ng isang simpleng aparatong IoT sa seguridad, at Pag-access sa log ng pagtuklas sa Flask.

Hakbang 1: Sensor ng PIR Motion

PIR Motion Sensor
PIR Motion Sensor

Ang PIR ay nangangahulugang "Passive Infrared" at ang sensor ng paggalaw na ito ay nakakakuha ng mga paggalaw sa pamamagitan ng panonood ng infrared view at pagkuha ng mga infrared na pagbabago. Samakatuwid, sa isang dahon at isang tao na dumadaan sa sensor, nakikita lamang nito ang tao dahil tayo bilang mga tao ay lumilikha ng init at sa gayon ay naglalabas ng infrared ray. Samakatuwid, ang sensor ng paggalaw ay isang mahusay na pagpipilian para sa pagtuklas ng paggalaw ng tao.

Hakbang 2: Pag-set up ng PIR Motion Sensor

Pag-set up ng PIR Motion Sensor
Pag-set up ng PIR Motion Sensor

Mayroong tatlong mga pin para sa PIR motion sensor, Power, Output at Ground. Sa ilalim ng mga pin maaari mong makita ang mga label, VCC para sa Power, Out for Output at GND para sa ground. Kapag nakita ng sensor ang mga paggalaw, ang Output pin ay maglalabas ng isang TAAS na signal sa Raspberry Pi pin na ikinonekta mo ang sensor. Para sa Power pin, nais mong tiyakin na kumokonekta ito sa 5V pin sa Raspberry Pi para sa lakas. Para sa aking proyekto, pipiliin kong ikonekta ang Output pin sa Pin11 sa Pi.

Matapos ikonekta ang lahat, maaari mong i-text ang iyong sensor sa pamamagitan ng pagpapatakbo ng mga script tulad ng isa sa ibaba:

i-import ang RPi. GPIO bilang GPIOimport oras GPIO.cleanup () GPIO.setwarnings (Maling) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #Basahin ang output mula sa PIR motion sensor sa Pin 11 habang Totoo: i = GPIO.input (11) kung i == 0: #Kapag ang output mula sa sensor ng paggalaw ay LOW print na "Walang pagtuklas", i time.s Sleep (0.1) elif i == 1: #Kapag ang output mula sa sensor ng paggalaw ay HINDI naka-print " Nakita ang paggalaw ", oras ko. Matulog (0.1)

Patakbuhin ang script sa iyong Pi, at ilagay ang iyong mga kamay o ang iyong kaibigan sa harap ng sensor upang suriin kung pipiliin ng sensor ang paggalaw.

Hakbang 3: Module at Pag-setup ng Raspberry Pi Camera

Raspberry Pi Camera Module at Pag-setup
Raspberry Pi Camera Module at Pag-setup

Ang tao ay naglalabas ng infrared ray dahil sa init, at gayun din ang mga bagay na may temperatura. Samakatuwid, ang mga hayop o maiinit na bagay ay maaaring mag-trigger din ng sensor ng paggalaw. Kailangan namin ng isang paraan upang suriin kung wasto ang pagtuklas. Maraming mga paraan upang ipatupad, ngunit sa aking proyekto, pinili kong gamitin ang module ng camera ng Raspberry Pi upang kumuha ng mga larawan kapag ang paggalaw ng sensor ay nakakakuha ng mga paggalaw.

Upang magamit ang module ng camera, unang nais mong tiyakin na ang mga pin ay naka-plug sa puwang ng camera sa Pi. Uri

sudo raspi-config

sa iyong Pi upang buksan ang interface ng pagsasaayos, at paganahin ang camera sa 'mga pagpipilian sa interfacing'. Pagkatapos ng pag-reboot, maaari mong subukan kung ang Pi ay talagang nakakonekta sa camera sa pamamagitan ng pagta-type

vcgencmd makakuha_camera

at ipapakita nito sa iyo ang katayuan. Ang huling hakbang ay i-install ang module ng picamera sa pamamagitan ng pagta-type

pip install picamera

Matapos ang lahat ng mga pag-setup, maaari mong subukan ang iyong camera sa pamamagitan ng pagpapatakbo ng mga script tulad ng isa sa ibaba:

mula sa picamera import PiCamera

mula sa oras na pag-import ng sleep camera = PiCamera () camera.start_preview () pagtulog (2) camera.capture ('image.jpg') camera.stop_preview ()

Itatago ang larawan bilang 'image.jpg' sa direktoryo na pareho sa isa sa iyong script ng camera. Pansinin, nais mong tiyakin na ang 'pagtulog (2)' ay naroroon at ang bilang ay mas malaki pagkatapos ng 2 kaya't ang camera ay may sapat na oras upang ayusin ang light kondisyon.

Hakbang 4: Pagsamahin ang PIR Motion Sensor at Module ng Camera

Ang ideya ng aking proyekto ay ang sensor ng paggalaw at kamera ay magkakaharap sa parehong direksyon. Tuwing nakakakuha ng paggalaw ang sensor ng paggalaw, kukuha ng larawan ang camera upang masuri namin kung ano ang sanhi ng paggalaw pagkatapos.

Ang script:

i-import ang RPi. GPIO bilang GPIOmula sa datime na mag-import ng oras sa pag-import ng dating mula sa picamera na i-import ang PiCamera

GPIO.cleanup ()

GPIO.setwarnings (Mali) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #Basahin ang output mula sa PIR motion sensor message = 'start' counter = 0 log_f = open ('static / log.txt', 'w') log_f.close ()

camera = PiCamera ()

pic_name = 0

camera.start_preview ()

oras. tulog (2)

habang Totoo:

i = GPIO.input (11) kung i == 0: #Kapag ang output mula sa sensor ng paggalaw ay mababa kung counter> 0: end = str (datime.now ()) log_f = buksan ('static / log.txt', ' isang ') mensahe = mensahe +'; magtapos sa '+ end +' / n 'print (message) log_f.write (message) log_f.close () final =' static / '+ str (pic_name) + ".jpg" pic_name = pic_name + 1 camera.capture (pangwakas) counter = 0 print na "Walang mga nanghihimasok", i time.s Sleep (0.1) elif i == 1: #Kapag ang output mula sa sensor ng paggalaw ay TAAS kung counter == 0: kasalukuyang = str (datetime.now ()) mensahe = 'Nakita ang tao:' + 'magsimula sa' + kasalukuyang counter = counter + 1 print na "Intruder nakita", i time.s Sleep (0.1) camera.stop_preview ()

Ang mga direktoryo para sa 'log.txt' at mga imahe ay 'static', na kinakailangan para gumana ang Flask.

Hakbang 5: Pag-set up para sa Flask

Pag-set up para sa Flask
Pag-set up para sa Flask

Ang Flask ay isang micro web framework na nakasulat sa Python at batay sa Werkzeug toolkit at Jinja2 template engine. Madaling ipatupad at mapanatili. Para sa isang mas mahusay na tutorial para sa Flask, inirerekumenda ko ang link na ito: Flask Mega Tutorial

Ang pangunahing script, 'ruta.py', ng aking proyekto:

mula sa appfolder import appFlaskfrom flask import render_template, redirect import os

Ang APP_ROOT = os.path.dirname (os.path.abspath (_ file_)) # ay tumutukoy sa application_top

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

@ appFlask.route ('/', mga pamamaraan = ['GET', 'POST'])

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

Ang HTML file na 'view.html' ay nasa tuktok na bar (dahil kapag kinopya ko ang mga HTML code dito, talagang lumiliko ito sa HTML FORMAT…)

At ang istraktura ng proyekto ay dapat magmukhang isang bagay sa ibaba (ngunit syempre mas maraming mga file kaysa sa mga ito):

iotproject / appfolder / ruta.py template / view.html static / log.txt 0.-j.webp

Hakbang 6: Resulta

Resulta
Resulta

Para sa pagpapatupad na ito, pagkatapos ng lahat ng pag-set up nang tama, dapat mong ma-access ang iyong Raspberry Pi sa pamamagitan ng pag-type ng IP address nito sa browser, at ang resulta ay dapat magmukhang larawan sa tuktok na bar sa hakbang na ito.