Satura rādītājs:
- 1. darbība: PIR kustības sensors
- 2. darbība: PIR kustības sensora iestatīšana
- 3. darbība: Raspberry Pi kameras modulis un iestatīšana
- 4. solis: apvienojiet PIR kustības sensoru un kameras moduli
- 5. darbība: kolbas iestatīšana
- 6. darbība: rezultāts
Video: Raspberry Pi cilvēka detektors + kamera + kolba: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Š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 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 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
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
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
Š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ā.