Sadržaj:

Ljudski detektor Raspberry Pi + kamera + bočica: 6 koraka
Ljudski detektor Raspberry Pi + kamera + bočica: 6 koraka

Video: Ljudski detektor Raspberry Pi + kamera + bočica: 6 koraka

Video: Ljudski detektor Raspberry Pi + kamera + bočica: 6 koraka
Video: ВСЯ НОЧЬ С ПОЛТЕРГЕЙСТОМ В ЖИЛОМ ДОМЕ, я заснял жуткую активность. 2024, Juli
Anonim
Ljudski detektor Raspberry Pi + kamera + boca
Ljudski detektor Raspberry Pi + kamera + boca

U ovom vodiču ću proći kroz korake za svoj Raspberry Pi IoT projekat - Korišćenjem PIR senzora pokreta, modula Raspberry Camera za izgradnju jednostavnog sigurnosnog IoT uređaja i pristupom evidenciji otkrivanja pomoću Flaska.

Korak 1: PIR senzor pokreta

PIR senzor pokreta
PIR senzor pokreta

PIR označava "pasivno infracrveno" i ovaj senzor pokreta hvata pokrete gledajući infracrveni prikaz i uzimajući infracrvene promjene. Stoga, s listom i čovjekom koji prolazi pored senzora, detektira samo čovjeka jer mi kao ljudi stvaramo toplinu i tako emitiramo infracrveni zrak. Stoga je senzor pokreta dobar izbor za otkrivanje ljudskih pokreta.

Korak 2: Postavljanje PIR senzora pokreta

Podešavanje PIR senzora pokreta
Podešavanje PIR senzora pokreta

Postoje tri pina za PIR senzor pokreta, napajanje, izlaz i uzemljenje. Ispod pinova možete vidjeti oznake, VCC za napajanje, Out za izlaz i GND za uzemljenje. Kada senzor detektira pokrete, izlazni pin će emitirati VISOKI signal na pin Raspberry Pi s kojim povezujete senzor. Za Power pin, želite biti sigurni da je spojen na 5V pin na Raspberry Pi radi napajanja. Za svoj projekt, odlučio sam spojiti izlazni pin sa Pin11 na Pi.

Nakon što sve povežete, možete poslati tekstualnu poruku svom senzoru pokretanjem skripti poput ove u nastavku:

uvesti RPi. GPIO kao GPIOimport vrijeme GPIO.cleanup () GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #Pročitajte izlaz sa PIR senzora pokreta na Pin 11 dok je True: i = GPIO.input (11) if i == 0: #Kad je izlaz sa senzora pokreta LOW ispis "Nema detekcije", i time.sleep (0.1) elif i == 1: #Kada je izlaz sa senzora pokreta HIGH print " Pokret je otkriven ", i time.sleep (0,1)

Pokrenite skriptu na svom Pi i stavite ruke ili prijatelja ispred senzora da provjerite da li senzor hvata pokrete.

Korak 3: Modul i podešavanje kamere Raspberry Pi

Modul i podešavanje kamere Raspberry Pi
Modul i podešavanje kamere Raspberry Pi

Zbog toplote ljudi emituju infracrvene zrake, pa tako i objekti sa temperaturama. Stoga i životinje ili vrući predmeti mogu aktivirati senzor pokreta. Potreban nam je način da provjerimo je li otkrivanje valjano. Postoji mnogo načina za implementaciju, ali u svom projektu odlučujem se koristiti modul kamere Raspberry Pi za snimanje slika kada senzor pokreta uhvati pokrete.

Da biste koristili modul kamere, najprije se uvjerite da su pinovi priključeni u utor za kameru na Pi. Tip

sudo raspi-config

na vašem Pi da biste otvorili konfiguracijsko sučelje i omogućili kameru u 'opcijama sučelja'. Nakon ponovnog pokretanja, možete provjeriti je li Pi zaista povezan s kamerom upisivanjem

vcgencmd get_camera

i pokazat će vam status. Zadnji korak je instaliranje modula pikamera upisivanjem

pip install pikamera

Nakon svih postavki, kameru možete testirati pokretanjem skripti poput ove u nastavku:

iz pikamera iz uvoza PiCamera

from time import sleep camera = PiCamera () camera.start_preview () sleep (2) camera.capture ('image.jpg') camera.stop_preview ()

Slika će biti pohranjena kao 'image.jpg' u direktoriju isto kao i ona iz vaše skripte kamere. Primijetite, želite biti sigurni da postoji 'sleep (2)' i da je broj veći od 2 kako bi kamera imala dovoljno vremena za prilagođavanje svjetlosnog stanja.

Korak 4: Kombinirajte PIR senzor pokreta i modul kamere

Ideja mog projekta je da će senzor pokreta i kamera biti okrenuti u istom smjeru. Kad god senzor pokreta uhvati pokrete, kamera će snimiti sliku kako bismo mogli provjeriti šta uzrokuje pokrete nakon toga.

Skripta:

uvoz RPi. GPIO kao GPIOiz datuma uvoza uvoz datuma i vremena uvoz sa pikamere uvoz PiCamera

GPIO.cleanup ()

GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #Pročitajte izlaz sa poruke PIR senzora pokreta = 'start' counter = 0 log_f = open ('static/log.txt', 'w') log_f.close ()

kamera = PiCamera ()

pic_name = 0

camera.start_preview ()

time.sleep (2)

dok je True:

i = GPIO.input (11) if i == 0: #Kad je izlaz sa senzora pokreta LOW ako je brojač> 0: end = str (datetime.now ()) log_f = open ('static/log.txt', ' a ') poruka = poruka +'; kraj na ' + end +' / n 'ispis (poruka) log_f.write (poruka) log_f.close () final =' static/' + str (pic_name) + ".jpg" pic_name = pic_name + 1 camera.capture (final) counter = 0 ispis "Nema uljeza", i time.sleep (0.1) elif i == 1: #Kada je izlaz sa senzora pokreta HIGH ako je counter == 0: current = str (datetime.now ()) message = 'Otkriven čovjek:' + 'početak na' + trenutni brojač = brojač + 1 ispis "Otkriven uljez", i time.sleep (0.1) camera.stop_preview ()

Direktoriji za 'log.txt' i slike su 'statični', što je potrebno za rad Flaska.

Korak 5: Postavljanje za Flask

Podešavanje za Flask
Podešavanje za Flask

Flask je mikro web okvir napisan na Pythonu i zasnovan na Werkzeug alatu i Jinja2 predlošku. Lako se implementira i održava. Za bolji vodič za Flask preporučujem ovu vezu: Flask Mega Tutorial

Glavna skripta, 'routes.py', mog projekta:

iz foldera za uvoz appFlaskiz boce za uvoz render_template, preusmjeri uvoz os

APP_ROOT = os.path.dirname (os.path.abspath (_ file_)) # se odnosi na application_top

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

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

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

HTML datoteka 'view.html' nalazi se na gornjoj traci (jer kada ovdje kopiram HTML kodove, ona se zapravo pretvara u HTML FORMAT …)

I struktura projekta trebala bi izgledati nešto dolje (ali naravno ima više datoteka od ovih):

iotproject / appfolder / routes.py templates / view.html static / log.txt 0-j.webp

Korak 6: Rezultat

Rezultat
Rezultat

Za ovu implementaciju, nakon što se sve ispravno postavi, trebali biste moći pristupiti svom Raspberry Pi upisivanjem njegove IP adrese u preglednik, a rezultat bi u ovom koraku trebao izgledati kao slika na gornjoj traci.