Satura rādītājs:

Raspberry Pi cilvēka detektors + kamera + kolba: 6 soļi
Raspberry Pi cilvēka detektors + kamera + kolba: 6 soļi

Video: Raspberry Pi cilvēka detektors + kamera + kolba: 6 soļi

Video: Raspberry Pi cilvēka detektors + kamera + kolba: 6 soļi
Video: Dark souls от Nikelodeon ► 4 Прохождение Kena: Bridge of Spirits 2024, Novembris
Anonim
Raspberry Pi cilvēka detektors + kamera + kolba
Raspberry Pi cilvēka detektors + kamera + kolba

Šajā apmācībā es apskatīšu sava Raspberry Pi IoT projekta darbības - izmantojot PIR kustības sensoru, Raspberry Camera moduli, lai izveidotu vienkāršu drošības IoT ierīci un piekļūtu noteikšanas žurnālam ar kolbu.

1. darbība: PIR kustības sensors

PIR kustības sensors
PIR kustības sensors

PIR apzīmē "pasīvo infrasarkano staru", un šis kustības sensors uztver kustības, skatoties infrasarkano staru skatu un uztverot infrasarkanās izmaiņas. Tāpēc, kad lapa un cilvēks iet garām sensoram, tas atklāj tikai cilvēku, jo mēs kā cilvēki ģenerējam siltumu un tādējādi izstarojam infrasarkano staru. Tādējādi kustības sensors ir laba izvēle cilvēku kustību noteikšanai.

2. darbība: PIR kustības sensora iestatīšana

PIR kustības sensora iestatīšana
PIR kustības sensora iestatīšana

PIR kustības sensoram ir trīs tapas, jauda, izeja un zemējums. Zem tapām var redzēt uzlīmes, VCC jaudai, izeja izejai un GND zemei. Kad sensors nosaka kustības, izejas tapa izvadīs HIGH signālu Raspberry Pi tapai, ar kuru jūs savienojat sensoru. Power pin gadījumā vēlaties pārliecināties, ka tas savienojas ar Raspberry Pi 5V tapu, lai iegūtu jaudu. Savam projektam es izvēlos savienot izvades tapu ar Pin11 uz Pi.

Kad viss ir pievienots, varat nosūtīt īsziņu sensoram, palaižot šādus skriptus:

importēt RPi. GPIO kā GPIO importēt laiku GPIO.cleanup () GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #Lasīt izeju no PIR kustības sensora uz 11.tausta, bet True: i = GPIO.input (11), ja i == 0: #Ja izvads no kustības sensora ir LOW print "Nav noteikšanas", i time.sleep (0,1) elif i == 1: #Ja izvade no kustības sensora ir HIGH print " Atrasta kustība ", i time.sleep (0,1)

Palaidiet skriptu savā Pi un nolieciet rokas vai draugu sensora priekšā, lai pārbaudītu, vai sensors uztver kustību.

3. darbība: Raspberry Pi kameras modulis un iestatīšana

Raspberry Pi kameras modulis un iestatīšana
Raspberry Pi kameras modulis un iestatīšana

Cilvēks siltuma ietekmē izstaro infrasarkano staru, tāpat kā objekti ar temperatūru. Tāpēc dzīvnieki vai karsti priekšmeti var iedarbināt arī kustības sensoru. Mums ir nepieciešams veids, kā pārbaudīt, vai noteikšana ir derīga. Ir daudz veidu, kā to īstenot, taču savā projektā es izvēlos izmantot Raspberry Pi kameras moduli, lai fotografētu, kad kustības sensors uztver kustības.

Lai izmantotu kameras moduli, vispirms vēlaties pārliecināties, vai tapas ir pievienotas Pi kameras slotā. Tips

sudo raspi-config

savā Pi, lai atvērtu konfigurācijas saskarni, un iespējojiet kameru “saskarnes opcijās”. Pēc pārstartēšanas varat pārbaudīt, vai Pi tiešām ir pievienots kamerai, ierakstot

vcgencmd get_camera

un tas parādīs statusu. Pēdējais solis ir instalēt picamera moduli, ierakstot

pip instalēt picamera

Pēc visu iestatījumu veikšanas varat pārbaudīt savu kameru, palaižot šādus skriptus:

no picamera importa PiCamera

no laika importēšanas miega kamera = PiCamera () camera.start_preview () miega (2) camera.capture ('image.jpg') camera.stop_preview ()

Attēls tiks saglabāts direktorijā kā “image.jpg” tādā pašā veidā kā jūsu kameras skripts. Ņemiet vērā, ka vēlaties pārliecināties, ka ir ieslēgts miega režīms (2), un skaitlis ir lielāks par 2, lai kamerai būtu pietiekami daudz laika, lai pielāgotu apgaismojumu.

4. solis: apvienojiet PIR kustības sensoru un kameras moduli

Mana projekta ideja ir tāda, ka kustības sensors un kamera būs vērsti vienā virzienā. Ikreiz, kad kustības sensors uztver kustības, kamera uzņems attēlu, lai mēs pēc tam varētu pārbaudīt, kas izraisa kustības.

Scenārijs:

importēt RPi. GPIO kā GPIO no datuma laika importēt datuma importēšanas laiku no picamera importa PiCamera

GPIO.cleanup ()

GPIO.setwarnings (nepatiess) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #Read output from PIR motion sensor message = 'start' counter = 0 log_f = open ('static/log.txt', "w") log_f.close ()

kamera = PiCamera ()

pic_name = 0

camera.start_preview ()

laiks. miegs (2)

kamēr taisnība:

i = GPIO.input (11), ja i == 0: #Ja izeja no kustības sensora ir LOW, ja skaitītājs> 0: end = str (datetime.now ()) log_f = open ('static/log.txt', ' a ') ziņojums = ziņojums +'; end at ' + end +' / n 'print (message) log_f.write (ziņojums) log_f.close () final =' static/' + str (pic_name) + ".jpg" pic_name = pic_name + 1 camera.capture (galīgais) skaitītājs = 0 drukāt "Nav iebrucēju", i time.sleep (0.1) elif i == 1: #Kad kustības sensors ir HIGH, ja skaitītājs == 0: current = str (datetime.now ()) ziņojums = 'Atklāts cilvēks:' + 'sākums pie' + pašreizējais skaitītājs = skaitītājs + 1 izdruka "Ielauzējs konstatēts", i time.sleep (0,1) camera.stop_preview ()

“Log.txt” un attēlu katalogi ir “statiski”, kas ir nepieciešami, lai kolba darbotos.

5. darbība: kolbas iestatīšana

Iestatīšana kolbai
Iestatīšana kolbai

Kolba ir mikro tīmekļa sistēma, kas rakstīta Python un kuras pamatā ir Werkzeug rīkkopa un Jinja2 veidņu dzinējs. To ir viegli ieviest un uzturēt. Lai iegūtu labāku apmācību kolbai, es iesaku šo saiti: Kolbas mega apmācība

Mana projekta galvenais skripts "route.py":

no appfolder importēt appFlaskfrom kolbas importa render_template, redirect import os

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

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

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

def skats (): log_f = open (os.path.join (APP_STATIC, 'log.txt'), 'r') logs = log_f.readlines () final_logs = žurnāla žurnāliem: final_logs.append (log. sloksne ()) name = str (len (final_logs) -1)+'. jpg' return render_template ('view.html', logs = final_logs, filename = name)

HTML fails “view.html” atrodas augšējā joslā (jo, kopējot šeit HTML kodus, tas faktiski pārvēršas par HTML FORMAT…)

Un projekta struktūrai vajadzētu izskatīties zemāk (bet, protams, ir vairāk failu nekā šie):

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

6. darbība: rezultāts

Rezultāts
Rezultāts

Šai ieviešanai pēc tam, kad viss ir pareizi iestatīts, jums vajadzētu būt iespējai piekļūt savam Raspberry Pi, pārlūkprogrammā ierakstot tā IP adresi, un šajā solī rezultātam vajadzētu izskatīties kā attēlam augšējā joslā.