Indholdsfortegnelse:

Raspberry Pi menneskelig detektor + kamera + kolbe: 6 trin
Raspberry Pi menneskelig detektor + kamera + kolbe: 6 trin

Video: Raspberry Pi menneskelig detektor + kamera + kolbe: 6 trin

Video: Raspberry Pi menneskelig detektor + kamera + kolbe: 6 trin
Video: Insane Robot AI Web Camera! 🤯✅ #artificialintelligence 2024, November
Anonim
Raspberry Pi menneskelig detektor + kamera + kolbe
Raspberry Pi menneskelig detektor + kamera + kolbe

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 bevægelsessensor
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

Opsætning af PIR -bevægelsessensor
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

Raspberry Pi kameramodul og opsætning
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

Opsætning til kolbe
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

Resultat
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.