Obsah:

Detektor človeka Raspberry Pi + kamera + banka: 6 krokov
Detektor človeka Raspberry Pi + kamera + banka: 6 krokov

Video: Detektor človeka Raspberry Pi + kamera + banka: 6 krokov

Video: Detektor človeka Raspberry Pi + kamera + banka: 6 krokov
Video: Монитор качества воздуха Xiaomi Cleargrass CGS1 - обзор, возможности, подключение в Home Assistant 2024, Júl
Anonim
Detektor človeka Raspberry Pi + kamera + banka
Detektor človeka Raspberry Pi + kamera + banka

V tomto návode vás prevediem krokmi k môjmu projektu Raspberry Pi IoT - Použitie pohybového senzora PIR, modulu Raspberry Camera na vytvorenie jednoduchého bezpečnostného zariadenia IoT a prístup k denníku detekcie pomocou banky.

Krok 1: PIR snímač pohybu

PIR snímač pohybu
PIR snímač pohybu

PIR znamená „pasívne infračervené“a tento snímač pohybu zachytáva pohyby sledovaním infračerveného zobrazenia a snímaním infračervených zmien. Preto keď list a človek prejde senzorom, detekuje iba človeka, pretože my ako ľudia generujeme teplo a vyžarujeme tak infračervený lúč. Pohybový senzor je preto dobrou voľbou na detekciu pohybov ľudí.

Krok 2: Nastavenie snímača pohybu PIR

Nastavenie snímača pohybu PIR
Nastavenie snímača pohybu PIR

K dispozícii sú tri kolíky pre snímač pohybu PIR, výkon, výstup a uzemnenie. Pod kolíkmi môžete vidieť štítky VCC pre napájanie, výstup pre výstup a GND pre zem. Keď snímač detekuje pohyby, výstupný kolík bude vydávať HIGH signál na pin Raspberry Pi, pomocou ktorého senzor pripojíte. V prípade napájacieho kolíka sa chcete uistiť, že sa napája na 5V pin na Raspberry Pi. Pre svoj projekt som sa rozhodol prepojiť výstupný pin s Pin11 na Pi.

Po pripojení všetkého môžete svojmu senzoru odoslať textovú správu spustením skriptov, ako je uvedené nižšie:

importovať RPi. GPIO ako GPIOimportový čas GPIO.cleanup () GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) #Read výstup zo snímača pohybu PIR na Pin 11 pri True: i = GPIO.vstup (11) ak i == 0: #Keď je výstup zo snímača pohybu NÍZKY, vytlačte „Bez detekcie“, i time.sleep (0,1) elif i == 1: #Keď je výstup zo snímača pohybu VYSOKÝ, vytlačte „ Zistený pohyb “, i čas.spánok (0,1)

Spustite skript na svojom Pi a dajte ruky alebo priateľa pred senzor, aby ste zistili, či senzor zachytáva pohyb.

Krok 3: Modul a nastavenie kamery Raspberry Pi

Modul a nastavenie kamery Raspberry Pi
Modul a nastavenie kamery Raspberry Pi

Človek v dôsledku tepla vyžaruje infračervený lúč, a teda aj objekty s teplotami. Pohybový senzor preto môžu spustiť aj zvieratá alebo horúce predmety. Potrebujeme spôsob, ako skontrolovať, či je detekcia platná. Existuje mnoho spôsobov implementácie, ale v mojom projekte som sa rozhodol použiť modul kamery Raspberry Pi na fotografovanie, keď snímač pohybu zachytí pohyby.

Ak chcete použiť modul kamery, najskôr sa musíte uistiť, že sú kolíky zapojené do otvoru pre fotoaparát na Pi. Napíšte

sudo raspi-config

na vašom Pi otvorte konfiguračné rozhranie a povoľte kameru v „možnostiach rozhrania“. Po reštarte môžete vyskúšať, či je Pi skutočne pripojené k fotoaparátu zadaním

vcgencmd get_camera

a ukáže vám stav. Posledným krokom je inštalácia modulu picamera zadaním

pip install picamera

Po všetkých nastaveniach môžete svoju kameru otestovať spustením skriptov, ako je uvedené nižšie:

z importu picamery PiCamera

od času importovať spánkovú kameru = PiCamera () camera.start_preview () spánok (2) camera.capture ('image.jpg') camera.stop_preview ()

Obrázok bude uložený ako 'image.jpg' v adresári rovnako ako ten, ktorý je súčasťou vášho skriptu fotoaparátu. Všimnite si toho, že sa chcete uistiť, že je tam „spánok (2)“a že číslo je väčšie ako 2, aby mal fotoaparát dostatok času na úpravu svetelných podmienok.

Krok 4: Skombinujte snímač pohybu PIR a modul kamery

Idea môjho projektu je, že snímač pohybu a kamera budú smerovať rovnakým smerom. Kedykoľvek snímač pohybu zachytí pohyby, fotoaparát nasníma fotografiu, aby sme potom mohli skontrolovať, čo pohyby spôsobuje.

Scenár:

importovať RPi. GPIO ako GPIOod datetime import datetime importovať čas z 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)

kým je pravda:

i = GPIO.vstup (11) ak i == 0: #Keď je výstup zo snímača pohybu NÍZKY, ak je počítadlo> 0: koniec = str (datetime.now ()) log_f = otvorený ('static/log.txt', ' a ') správa = správa +'; koniec na ' + end +' / n 'print (message) log_f.write (message) log_f.close () final =' static/' + str (pic_name) + ".jpg" pic_name = pic_name + 1 camera.capture ((konečné) počítadlo = 0 vytlačiť „Žiadni narušitelia“, i čas.spánok (0,1) elif i == 1: #Keď je výstup zo snímača pohybu VYSOKÝ, ak je počítadlo == 0: prúd = str (datetime.now ()) správa = 'Detekovaný človekom:' + 'štart na' + aktuálny čítač = počítadlo + 1 výtlačok "Zistený narušiteľ", i time.sleep (0,1) camera.stop_preview ()

Adresáre pre „log.txt“a obrázky sú „statické“, čo je nevyhnutné pre správnu funkciu banky.

Krok 5: Nastavenie pre banku

Nastavenie pre banku
Nastavenie pre banku

Flask je mikrowebový framework napísaný v Pythone a založený na súbore nástrojov Werkzeug a šablóne Jinja2. Je ľahké ho implementovať a udržiavať. Pre lepší návod pre Flask odporúčam tento odkaz: Flask Mega Tutorial

Hlavný skript „trasy.py“môjho projektu:

z aplikácie appfolder import appFlask z banky import render_template, presmerovanie import os

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

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

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

def view (): log_f = open (os.path.join (APP_STATIC, 'log.txt'), 'r') logs = log_f.readlines () final_logs = pre prihlásenie logs: final_logs.append (log. strip ()) name = str (len (final_logs) -1)+'. jpg' return render_template ('view.html', logs = final_logs, filename = name)

Súbor HTML „view.html“je v hornej lište (pretože keď sem skopírujem kódy HTML, v skutočnosti sa zmení na FORMÁT HTML …)

Štruktúra projektu by mala vyzerať nasledovne (ale samozrejme existuje viac súborov ako tieto):

iotproject / appfolder / trasy.py šablóny / view.html static / log.txt 0-j.webp

Krok 6: Výsledok

Výsledok
Výsledok

Po tejto inštalácii by ste po správnom nastavení mali mať prístup k svojmu Raspberry Pi zadaním jeho IP adresy v prehliadači a výsledok by v tomto kroku mal vyzerať ako obrázok v hornom paneli.