Indholdsfortegnelse:
- Trin 1: PIR -bevægelsessensor
- Trin 2: Opsætning af PIR -bevægelsessensor
- Trin 3: Raspberry Pi kameramodul og opsætning
- Trin 4: Kombiner PIR -bevægelsessensor og kameramodul
- Trin 5: Opsætning til kolbe
- Trin 6: Resultat
Video: Raspberry Pi menneskelig detektor + kamera + kolbe: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
I denne vejledning går jeg gennem trinene for mit Raspberry Pi IoT -projekt - Brug af PIR -bevægelsessensor, Raspberry Camera -modul til at opbygge en simpel IoT -sikkerhedsenhed og få adgang til registreringsloggen med Flask.
Trin 1: PIR -bevægelsessensor
PIR står for "Passiv infrarød", og denne bevægelsessensor opfanger bevægelser ved at se den infrarøde udsigt og opfange de infrarøde ændringer. Derfor, med et blad og et menneske, der passerer sensoren, registrerer det kun mennesker, da vi som mennesker genererer varme og dermed udsender infrarød stråle. Derfor er bevægelsessensoren et godt valg til at detektere menneskelige bevægelser.
Trin 2: Opsætning af PIR -bevægelsessensor
Der er tre ben til PIR -bevægelsessensor, strøm, output og jord. Under benene kan du se etiketterne, VCC for Power, Out for Output og GND for ground. Når sensoren registrerer bevægelser, udsender Output -pin et HIGH -signal til Raspberry Pi -stiften, som du forbinder sensoren med. For Power pin, vil du sikre dig, at den forbinder til 5V pin på Raspberry Pi for strøm. Til mit projekt vælger jeg at forbinde Output pin med Pin11 på Pi.
Efter at have tilsluttet alt, kan du sende en tekst til din sensor ved at køre scripts som det nedenfor:
importer RPi. GPIO som GPIOimporttid GPIO.cleanup () GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #Read output fra PIR -bevægelsessensor på Pin 11, mens True: i = GPIO.input (11) hvis i == 0: #Når output fra bevægelsessensor er lavt udskrives "Ingen registrering", i time.sleep (0,1) elif i == 1: #Når output fra bevægelsessensor er HIGH print " Bevægelse registreret ", i time.sleep (0,1)
Kør scriptet på din Pi, og læg dine hænder eller din ven foran sensoren for at kontrollere, om sensoren opfanger bevægelsen.
Trin 3: Raspberry Pi kameramodul og opsætning
Mennesket udsender infrarød stråle på grund af varmen, og det samme gør genstande med temperaturer. Derfor kan dyr eller varme genstande også udløse bevægelsessensoren. Vi har brug for en måde at kontrollere, om detektionen er gyldig. Der er mange måder at implementere på, men i mit projekt vælger jeg at bruge Raspberry Pi kameramodulet til at tage billeder, når bevægelsessensoren opfanger bevægelser.
Hvis du vil bruge kameramodulet, skal du først sikre dig, at benene er sat i kamerasporet på Pi. Type
sudo raspi-config
på din Pi for at åbne konfigurationsgrænsefladen, og aktivere kameraet i 'grænseflademuligheder'. Efter genstart kan du teste, om Pi faktisk er forbundet til kameraet ved at skrive
vcgencmd get_camera
og det viser dig status. Det sidste trin er at installere picamera -modulet ved at skrive
pip installer picamera
Efter alle opsætninger kan du teste dit kamera ved at køre scripts som det nedenfor:
fra picamera import PiCamera
fra tid importer søvn kamera = PiCamera () kamera.start_preview () søvn (2) kamera.capture ('image.jpg') kamera.stop_preview ()
Billedet gemmes som 'image.jpg' i biblioteket som det samme som i dit kamerascript. Bemærk, du vil sikre dig, at 'søvn (2)' er der, og tallet er større end 2, så kameraet har tid nok til at justere lysets tilstand.
Trin 4: Kombiner PIR -bevægelsessensor og kameramodul
Ideen med mit projekt er, at bevægelsessensoren og kameraet vender i samme retning. Hver gang bevægelsessensoren opfanger bevægelser, tager kameraet et billede, så vi kan kontrollere, hvad der forårsager bevægelserne bagefter.
Manuskriptet:
import RPi. GPIO som GPIO fra datetime import datetime import tid fra picamera import PiCamera
GPIO.cleanup ()
GPIO.setwarnings (False) 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 ()
time.sleep (2)
mens det er sandt:
i = GPIO.input (11) hvis i == 0: #Når output fra bevægelsessensor er LAVT, hvis tæller> 0: end = str (datetime.now ()) log_f = open ('static/log.txt', ' a ') besked = besked +'; slut ved ' + ende +' / n 'print (meddelelse) log_f.write (meddelelse) log_f.close () final =' static/' + str (pic_name) + ".jpg" pic_name = pic_name + 1 camera.capture (endelig) tæller = 0 print "Ingen ubudne gæster", i time.sleep (0.1) elif i == 1: #Når output fra bevægelsessensor er HØJ, hvis tæller == 0: current = str (datetime.now ()) besked = 'Menneske opdaget:' + 'start ved' + nuværende tæller = tæller + 1 udskrift "Indbrud fundet", i time.sleep (0,1) camera.stop_preview ()
Bibliotekerne for 'log.txt' og billeder er 'statiske', hvilket er nødvendigt for at Flask skal fungere.
Trin 5: Opsætning til kolbe
Flask er en mikrowebramme skrevet i Python og baseret på Werkzeug -værktøjskassen og Jinja2 -skabelonmotoren. Det er let at implementere og vedligeholde. For en bedre tutorial til Flask anbefaler jeg dette link: Flask Mega Tutorial
Hovedmanuskriptet, 'routes.py', i mit projekt:
fra appmappe import appFlask fra kolbe import render_template, omdiriger import os
APP_ROOT = os.path.dirname (os.path.abspath (_ fil_)) # henviser til application_top
APP_STATIC = os.path.join (APP_ROOT, 'statisk')
@appFlask.route ('/', metoder = ['GET', 'POST'])
def view (): log_f = open (os.path.join (APP_STATIC, 'log.txt'), 'r') logs = log_f.readlines () final_logs = for log in logs: final_logs.append (log. strip ()) name = str (len (final_logs) -1)+'. jpg' return render_template ('view.html', logs = final_logs, filnavn = navn)
HTML -filen 'view.html' er øverst på linjen (for når jeg kopierer HTML -koderne her, bliver den faktisk til HTML FORMAT …)
Og projektets struktur skal ligne noget herunder (men der er selvfølgelig flere filer end disse):
iotproject / appfolder / routes.py skabeloner / view.html statisk / log.txt 0-j.webp
Trin 6: Resultat
Efter denne implementering, efter at alt er konfigureret korrekt, skal du have adgang til din Raspberry Pi ved at indtaste dens IP -adresse i browseren, og resultatet skal ligne et billede øverst på dette trin.