Sadržaj:

Ljudski detektor Raspberry Pi + kamera + tikvica: 6 koraka
Ljudski detektor Raspberry Pi + kamera + tikvica: 6 koraka

Video: Ljudski detektor Raspberry Pi + kamera + tikvica: 6 koraka

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

U ovom vodiču proći ću korake za svoj Raspberry Pi IoT projekt - Korištenje PIR senzora pokreta, modula Raspberry Camera za izgradnju jednostavnog sigurnosnog IoT uređaja i pristupanje zapisniku otkrivanja s Flaskom.

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, kad list i čovjek prođu senzor, detektira samo čovjeka budući da mi kao ljudi stvaramo toplinu i tako emitiramo infracrvenu zraku. Stoga je senzor pokreta dobar izbor za otkrivanje ljudskih pokreta.

Korak 2: Postavljanje PIR senzora pokreta

Postavljanje PIR senzora pokreta
Postavljanje 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. Kad senzor detektira pomake, 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 s 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 s 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: #Kad je izlaz s 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 prihvaća li senzor pokret.

Korak 3: Modul i postavljanje kamere Raspberry Pi

Modul i postavljanje kamere Raspberry Pi
Modul i postavljanje kamere Raspberry Pi

Čovjek emitira infracrvenu zraku zbog topline, pa tako i objekti s temperaturama. Stoga i životinje ili vrući predmeti mogu pokrenuti senzor pokreta. Trebamo 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 morate pobrinuti da su igle priključene 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 stvarno povezan s kamerom upisivanjem

vcgencmd get_camera

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

pip instalirajte pikameru

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

iz picamera uvoz 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 kao i ona iz vaše skripte kamere. Uočite da želite provjeriti postoji li 'sleep (2)' i je li broj veći od 2 kako bi fotoaparat imao dovoljno vremena za podeš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 nakon toga mogli provjeriti što uzrokuje pokrete.

Skripta:

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

GPIO.cleanup ()

GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #Pročitajte izlaz iz 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 ()

vrijeme.spavanje (2)

dok je istina:

i = GPIO.input (11) if i == 0: #Kad je izlaz sa senzora pokreta LOW ako je counter> 0: end = str (datetime.now ()) log_f = open ('static/log.txt', ' a ') poruka = poruka +'; kraj na ' + kraj +' / n 'ispis (poruka) log_f.write (poruka) log_f.close () final =' static/' + str (ime_ pic) + ".jpg" pic_name = pic_name + 1 kamera.capture (final) counter = 0 ispis "Nema uljeza", i time.sleep (0.1) elif i == 1: #Kada je izlaz s senzora pokreta HIGH ako je brojač == 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

Postavljanje za Flask
Postavljanje za Flask

Flask je mikro web okvir napisan na Pythonu i temeljen 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 mape aplikacija uvoz appFlaskiz bočice uvoz render_template, preusmjeri uvoz os

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

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 prijave: 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 kad 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 predlošci / view.html static / log.txt 0-j.webp

Korak 6: Rezultat

Proizlaziti
Proizlaziti

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.