Sisukord:

Vaarika Pi inimdetektor + kaamera + kolb: 6 sammu
Vaarika Pi inimdetektor + kaamera + kolb: 6 sammu

Video: Vaarika Pi inimdetektor + kaamera + kolb: 6 sammu

Video: Vaarika Pi inimdetektor + kaamera + kolb: 6 sammu
Video: SCP-261 Пан-мерное Торговый и эксперимент Войти 261 объявление Де + полный + 2024, November
Anonim
Vaarika Pi inimdetektor + kaamera + kolb
Vaarika Pi inimdetektor + kaamera + kolb

Selles õpetuses tutvun oma Raspberry Pi IoT projektiga - PIR -liikumisanduri, Raspberry Camera mooduli kasutamine lihtsa IoT -turvaseadme ehitamiseks ja tuvastuslogi avamine kolvi abil.

Samm: PIR -liikumisandur

PIR -liikumisandur
PIR -liikumisandur

PIR tähistab "passiivset infrapunaühendust" ja see liikumisandur võtab liikumisi vastu, vaadates infrapunavaadet ja infrapunamuutusi. Seega, kui leht ja inimene andurist mööduvad, tuvastab see ainult inimese, kuna me inimestena genereerime soojust ja kiirgame seega infrapunakiirgust. Seega on liikumisandur hea valik inimeste liikumise tuvastamiseks.

2. samm: PIR -liikumisanduri seadistamine

PIR -liikumisanduri seadistamine
PIR -liikumisanduri seadistamine

PIR -liikumisanduri jaoks on kolm tihvti, toide, väljund ja maandus. Tihvtide all näete silte, VCC toite jaoks, väljund väljundiks ja GND maa jaoks. Kui andur tuvastab liigutusi, väljastab väljundnõel HIGH signaali Raspberry Pi tihvtile, millega anduri ühendate. Toitenupu puhul soovite veenduda, et see ühendatakse toite saamiseks Raspberry Pi 5V pistikuga. Oma projekti jaoks otsustan ühendada väljundpinni Pin11 -ga Pi -l.

Pärast kõike ühendamist saate andurile tekstisõnumi saata, käivitades allpool toodud skripte.

importige RPi. GPIO GPIO -ks impordi aeg GPIO.cleanup () GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #Lugege väljund PIR -liikumisandurilt nööpnõelal 11, samas True: i = GPIO.input (11), kui i == 0: #Kui liikumisanduri väljund on LOW print "Pole tuvastatud", siis i time.sleep (0,1) elif i == 1: #Kui liikumisanduri väljund on HIGH print " Tuvastati liikumine ", i time.sleep (0,1)

Käivitage oma Pi skript ja pange käed või sõber anduri ette, et kontrollida, kas andur võtab liikumise üles.

3. samm: Raspberry Pi kaamera moodul ja seadistamine

Raspberry Pi kaamera moodul ja seadistamine
Raspberry Pi kaamera moodul ja seadistamine

Inimene kiirgab kuumuse mõjul infrapunakiirgust, samuti temperatuuriga objektid. Seetõttu võivad loomad või kuumad esemed käivitada ka liikumisanduri. Vajame viisi, kuidas kontrollida, kas tuvastus on kehtiv. Rakendamiseks on palju viise, kuid oma projektis valin pildistamiseks Raspberry Pi kaameramooduli, kui liikumisandur liigutusi võtab.

Kaameramooduli kasutamiseks peate esmalt veenduma, et tihvtid on ühendatud Pii kaamerakaardipessa. Tüüp

sudo raspi-config

konfiguratsiooniliidese avamiseks ja kaamera lubamiseks liidese suvandites. Pärast taaskäivitamist saate tippides testida, kas Pi on kaameraga tegelikult ühendatud

vcgencmd get_camera

ja see näitab teile olekut. Viimane samm on picamera mooduli installimine tippides

pip installige picamera

Pärast kõiki seadistusi saate oma kaamerat testida, käivitades järgmised skriptid:

alates picamera import PiCamera

ajast importimise unerežiimi kaamera = PiCamera () camera.start_preview () uni (2) camera.capture ('image.jpg') camera.stop_preview ()

Pilt salvestatakse kataloogi nimega „image.jpg” sama, mis teie kaamera skript. Pange tähele, et soovite veenduda, et unerežiim (2) on olemas ja number on suurem kui 2, nii et kaameral on piisavalt aega valguse reguleerimiseks.

Samm: ühendage PIR -liikumisandur ja kaameramoodul

Minu projekti idee on see, et liikumisandur ja kaamera on suunatud samas suunas. Kui liikumisandur liigutusi võtab, teeb kaamera pildi, et saaksime pärast seda kontrollida, mis liigutusi põhjustab.

Skript:

RPi. GPIO importimine GPIO -ks

GPIO.cleanup ()

GPIO.setwarnings (vale) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #PIR -liikumisanduri sõnumi loe väljund = 'start' counter = 0 log_f = open ('static/log.txt', 'w') log_f.close ()

kaamera = PiCamera ()

pic_name = 0

camera.start_preview ()

aeg. uni (2)

kuigi tõsi:

i = GPIO.input (11), kui i == 0: #Kui liikumisanduri väljund on LOW, kui loendur> 0: lõpp = str (datetime.now ()) log_f = open ('static/log.txt', ' a ') sõnum = sõnum +'; lõpp at ' + lõpp +' / n 'print (sõnum) log_f.write (sõnum) log_f.close () final =' static/' + str (pic_name) + ".jpg" pic_name = pic_name + 1 camera.capture (lõplik) loendur = 0 print "Sissetungijaid pole", i time.sleep (0,1) elif i == 1: #Kui liikumisanduri väljund on HIGH kui loendur == 0: current = str (datetime.now ()) sõnum = 'Tuvastatud inimene:' + 'algus' + vooluloendur = loendur + 1 trükk "Sissetungija tuvastatud", i time.sleep (0,1) camera.stop_preview ()

Faili „log.txt” ja piltide kataloogid on „staatilised”, mis on vajalik Flaski tööks.

Samm: kolvi seadistamine

Kolvi seadistamine
Kolvi seadistamine

Flask on Pythonis kirjutatud mikroveebiraamistik, mis põhineb Werkzeugi tööriistakomplektil ja Jinja2 mallimootoril. Seda on lihtne rakendada ja hooldada. Flaski parema õpetuse saamiseks soovitan seda linki: Flask Mega Tutorial

Minu projekti peamine skript „route.py”:

rakenduste kaustast import appFlaskfrom kolb import render_template, redirect import os

APP_ROOT = os.path.dirname (os.path.abspath (_ file_)) # viitab application_top

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

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

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

HTML -fail „view.html” asub ülemisel ribal (sest kui ma siia HTML -koode kopeerin, muutub see tegelikult HTML -vorminguks …)

Ja projekti ülesehitus peaks välja nägema midagi allpool (kuid loomulikult on neid faile rohkem):

iotproject / appfolder / route.py templates / view.html staatiline / log.txt 0-j.webp

6. samm: tulemus

Tulemus
Tulemus

Selle rakenduse jaoks peaks pärast kõike õigesti seadistamist saama oma Raspberry Pi -le juurde pääseda, sisestades selle brauserisse selle IP -aadressi ja tulemus peaks selles etapis välja nägema nagu ülemisel ribal olev pilt.