Obsah:

Kamera pro detekci pohybu Raspberry Pi 3 s živým posuvem: 6 kroků
Kamera pro detekci pohybu Raspberry Pi 3 s živým posuvem: 6 kroků

Video: Kamera pro detekci pohybu Raspberry Pi 3 s živým posuvem: 6 kroků

Video: Kamera pro detekci pohybu Raspberry Pi 3 s živým posuvem: 6 kroků
Video: Eufy Spaceview Disconnecting 2024, Prosinec
Anonim
Kamera pro detekci pohybu Raspberry Pi 3 s živým posuvem
Kamera pro detekci pohybu Raspberry Pi 3 s živým posuvem

Úvod

V tomto projektu se naučíte, jak vytvořit kameru pro detekci pohybu, kterou budete moci používat jako past na kameru, monitor domácího mazlíčka/dětské chůvičky, bezpečnostní kameru a mnoho dalšího.

Tento projekt je organizován do několika kroků:

  • Úvod
  • Nastavení vašeho Pi
  • SSHing do vašeho Pi
  • E -mailová adresa IP při spuštění
  • Instalace a nastavení Motion
  • E -mailování videí z detekce pohybu při pohybu
  • Řešení potíží a zdroje

Co budete potřebovat:

  • Model Raspberry Pi 3 za ~ 35 $
  • 8 GB Micro SD karta ~~ 10 $
  • Webová kamera USB ~ 20 $ (tento projekt používal webovou kameru Logitech HD Webcam c270)
  • mikro usb kabel ~~ $ 5
  • buď:
  • dobíjecí 5voltová baterie (záložní baterie telefonu), díky čemuž bude váš projekt bezdrátový ~ 20 $
  • nebo
  • USB nástěnný adaptér ~~ $ 5
  • WiFi připojení

K čemu budete potřebovat přístup k nastavení:

  • Monitor
  • Myš a klávesnice
  • Počítač se slotem pro kartu SD
  • Převaděč karet Micro SD na SD (měl by být dodáván s vaší kartou micro SD)

Krok 1: Nastavení vašeho Pi

Nastavení vašeho Pi
Nastavení vašeho Pi

Nyní nastavíme váš Pi

Nejprve se ujistěte, že máte všechny požadované položky z posledního kroku. Poté postupujte podle pokynů na webu Raspberry Pi a nainstalujte Raspbian Jessie na kartu Microsd, kterou najdete zde.

Jakmile máte na svém Pi nainstalován Raspbian, je na čase nastavit některé základní funkce.

WiFi

Prvním krokem k maximálnímu využití Pi je připojení k internetu. Tento krok jste možná již dokončili buď vyhledáním symbolu WiFi v pravém horním rohu hlavní obrazovky vašeho Pi a přihlášením tam, nebo provedením stejného postupu před instalací Raspbian v posledním kroku. Pokud se nemůžete přihlásit do své WiFi sítě z desktopového rozhraní vašeho Pi, můžete WiFi nastavit pomocí příkazového řádku podle zde uvedených pokynů.

SSH

Jeden velmi šikovný nástroj, který máte při používání Pi k dispozici, je možnost vydávat příkazy vašemu Pi v takzvaném bezhlavém nastavení. Pomocí Secure SHell nebo SSH můžete svůj Pi ovládat vzdáleně z počítače. Díky této metodě bude vše, co potřebujete k úpravě Pi, zdrojem napájení, aby už nebyl zapnutý, už žádný monitor a klávesnice!

Krok 2: SSHing do vašeho PI

SSHing do vašeho PI
SSHing do vašeho PI
SSHing do vašeho PI
SSHing do vašeho PI

SSHing do vašeho Raspberry Pi je snadný a velmi užitečný, protože tento proces vám umožňuje vydávat příkazy vašemu Pi z jakéhokoli počítače, pouze s připojením WiFi.

Chcete -li SSH do vašeho Pi, musíte postupovat podle těchto 3 jednoduchých kroků.

Nejprve musíte na svém Pi povolit SSH. Chcete -li to provést, otevřete ve svém Pi příkazové okno a zadejte:

sudo raspi-config

Tento příkaz vám umožňuje vstoupit do konfigurační nabídky. odtud budete chtít pomocí šipek, karet a kláves vstoupit nejprve do možností rozhraní, poté povolit SSH, stejně jako kameru, poté ukončit a restartovat pi.

Dále budete muset zjistit IP adresu vašeho Pi. Do příkazového terminálu zadejte:

sudo ifconfig

A vaše IP adresa by měla být v sekci wlan0, která se objeví, přímo pod Link encap: ethernet. Na ukázkovém obrázku výše je IP adresa 192.168.1.10.

Nakonec budete muset buď otevřít vestavěnou terminálovou aplikaci na počítači Mac, nebo najít a postupovat podle pokynů pro aplikaci ssh třetí strany pro Windows. V aplikaci Terminál zadejte:

ssh pi@VAŠE IP ADRESA

Pokud jste heslo v Raspi-config nezměnili, bude vaše heslo, které budete po výzvě zadávat, výchozí heslo: malina.

Odtamtud byste měli jít!

Krok 3: E -mailová adresa IP při spuštění

E -mailová adresa IP při spuštění
E -mailová adresa IP při spuštění

V tomto kroku se zaměříme na přístup k vašemu Raspberry Pi bez ohledu na síť, ve které se nacházíte. V závislosti na síti se IP adresa Pi změní. A pokud nemáte nastavení monitoru, budete muset ssh do Pi spustit protokol detekce pohybu, změnit předvolby pohybu nebo přistupovat k čemukoli jinému na zařízení. Abychom tento problém vyřešili, napíšeme skript pythonu, který nám při spuštění zašle e -mailem aktuální IP adresu Pi. Skript python je následující a byl uložen v adresáři označeném „pozadí“.

#start v domovském adresáři

cd ~

#vytvořte složku na pozadí

mkdir pozadí

#vytvořte skript pythonu

sudo nano emailip.py

#napište na emailip.py

dovozní zásuvka

s = socket.socket (socket. AF_INET, socket. SOCK_DGRAM)

s.connect (("8.8.8.8", 80))

tisk (s.getsockname () [0]) x = s.getsockname () [0] s.close ()

importovat smtplib

z e -mailu. MIMEMultipart import MIMEMultipart

z e -mailu. MIMEText import MIMEText

fromaddr = "VAŠE ADRESA"

toaddr = "PŘIJÍMÁNÍ ADRESY"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "IP adresa"

body = xmsg.attach (MIMEText (body, 'plain'))

server = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "VAŠE HESLO")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

#pak se to dělá při restartu

sudo nano /etc/rc.local

#zadejte do /etc/rc.local

zatímco ! /sbin/ifconfig wlan0 | grep -q 'inet addr: [0-9]';

spát 3

Hotovo

_IP = $ (hostname -I) || skutečný

if ["$ _IP"]; pak

printf "Moje IP adresa je %s / n" "$ _IP"

python /home/pi/Background/emailip.py &

fi

výstup 0

#a máte hotovo

Krok 4: Instalace a nastavení pohybu

Instalace a nastavení pohybu
Instalace a nastavení pohybu

#aktualizace pí

sudo apt-get update

sudo apt-get upgrade

#stažení

sudo apt-get install motion

#nyní upravte tento soubor pomocí následujících změn

sudo nano /etc/motion/motion.conf

#Chcete -li nastavit standard pro tento výukový program, změňte jej

#################

zapnutý démon

stream_localhost vypnut

webcontrol_localhost vypnut

ffmpeg_output_movies na

cílový_adresář/var/lib/pohyb

##################

#místní možnosti streamování webového prohlížeče

##################

stream_maxrate 100 #To umožní streamování v reálném čase, ale vyžaduje větší šířku pásma a zdroje

framerate 60 #To umožní zachytit 60 snímků za sekundu #čím vyšší to bude, tím pomalejší bude zpracování videa

width 640 #Tím se změní šířka zobrazeného obrázku

výška 480 #Tím se změní výška zobrazeného obrázku

##################

#e -mailové nastavení videa v …/motion.conf

##################

#delete ";" před řádkem středník komentuje řádek ven

on_event_start python /home/pi/background/motionalert.py %f

on_movie_end python /home/pi/background/motionvid.py %f

##################

#astektika

##################

#hlasy popsané v souboru

output_pictures locate_motion_style

##################

#pak změna

sudo nano/etc/default/motion

#říct

start_motion_daemon = ano

#poslední, spusťte B **** nahoru

spuštění pohybu sudo služby

#příkaz můžete změnit na „stop“nebo „restart“

Krok 5: Odeslání videa e -mailem z detekce pohybu

Posílání videí e -mailem z detekce pohybu
Posílání videí e -mailem z detekce pohybu

E -mail při detekci pohybu:

#začněte doma

dircd ~

#create skript Pythonu s upozorněním na pohyb

sudo nano /home/pi/background/motionalert.py

#napsat

importovat smtplib

z datetime import datetime

z e -mailu. MIMEMultipart import MIMEMultipart

z e -mailu. MIMEText import MIMEText

fromaddr = "VAŠE ADRESA"

toaddr = "RECIEVINGADDRESS"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Detekován pohyb"

body = 'Byl detekován pohyb. / nČas: % s' % str (datetime.now ())

msg.attach (MIMEText (body, 'plain'))

server = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "VAŠE HESLO")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

E -mail Video o pohybu při uložení videa:

#začněte na homedircd ~

#create motion video python scriptsudo nano /home/pi/background/motionvid.py

importovat smtplib

z e -mailu. MIMEMultipart import MIMEMultipart

z e -mailu. MIMEText import MIMEText

z e -mailu. MIMEBase import MIMEBase

z kodérů pro import e -mailů

fromaddr = "VÁŠ EMAIL"

toaddr = "E -mailová adresa, na kterou posíláte"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] = toaddr

msg ['Subject'] = "Pohybová kamera aktivována"

body = "Video pohybu detekováno"

msg.attach (MIMEText (body, 'plain'))

import os

rootpath = '/var/lib/motion'

filelist = [os.path.join (rootpath, f) for f in os.listdir (rootpath)]

seznam souborů = [f pro f v seznamu souborů, pokud os.path.isfile (f)]

nejnovější = max (seznam souborů, klíč = lambda x: os.stat (x).st_mtime)

název souboru = nejnovější

import os

rootpath = '/var/lib/motion'

filelist = [os.path.join (rootpath, f) for f in os.listdir (rootpath)]

seznam souborů = [f pro f v seznamu souborů, pokud os.path.isfile (f)]

nejnovější = max (seznam souborů, klíč = lambda x: os.stat (x).st_mtime)

příloha = otevřená (nejnovější, "rb")

part = MIMEBase ('aplikace', 'octet-stream')

part.set_payload ((příloha).read ())

encoders.encode_base64 (část)

part.add_header ('Content-Disposition', "příloha; název souboru = % s" % název souboru)

msg.attach (část)

server = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "VAŠE HESLO")

text = msg.as_string ()

server.sendmail (fromaddr, toaddr, text)

server.quit ()

Krok 6: Řešení potíží a zdroje

Řešení potíží a zdroje
Řešení potíží a zdroje

Odstraňování problémů:

Protože tento projekt má více fází, existuje několik bodů, ve kterých se může něco pokazit. Níže jsou uvedeny některé z možných chyb, které by mohly nastat, a jak je opravit.

  • Při nastavování pi pro zasílání e -mailů s aktuální adresou IP je důležité upravit soubor rc.local, jak je uvedeno výše, protože to umožňuje malé zpoždění před aktivací programu po restartu. V opačném případě nebude pi ještě připojeno k wifi a e -mail nebude odeslán.
  • Při úpravách souboru motion.conf nezapomeňte před určitými parametry odstranit středníky. Středník potlačuje danou akci, takže jinak se změna neprojeví.
  • Soubor motion.conf je velmi dobře organizovaný a podrobný. Nebojte se změnit nastavení podle svých představ, ale uvědomte si, že mohou ovlivnit úspěch systému snímání pohybu.
  • Po nastavení možností e -mailové výstrahy a e -mailu s videem je důležité si uvědomit, že odeslání e -mailu s videem detekovaným pohybem bude trvat o něco déle než odeslání původního e -mailu s upozorněním. Důvodem je, že video končí několik sekund poté, co již není detekován pohyb, a protože příloha e -mailu může být dostatečně velká, aby přijetí trvalo několik minut. V některých případech, pokud je pohyb udržován po velmi dlouhou dobu, může být příliš velký na odeslání vůbec. Z tohoto důvodu je vždy dobré zkontrolovat živý přenos po obdržení úvodního výstražného e -mailu.

Proč Motion ?:

Při prvním zahájení tohoto projektu jsme zvažovali několik různých zdrojů. Nejprve jsme zvažovali použití PiCam, což je kamerová jednotka vytvořená speciálně pro malinový pi. PiCam je určitě schopné zařízení a má mnoho aplikací, ale omezuje se na používání programů, které jsou pro něj speciálně navrženy, a je relativně drahý ve srovnání s levnými víceúčelovými webovými kamerami. Aby byl tento projekt přístupný širšímu publiku, rozhodli jsme se použít společnou webovou kameru USB. Dalším problémem bylo, který software začlenit. Původně jsme zvažovali OpenCV, což je bezplatný software, který umožňuje mnoho různých druhů projektů počítačového vidění a zobrazování. Jedním z problémů je, že OpenCV je obrovský soubor, který zabírá spoustu paměti a dlouho nastavuje. Nastavení má také několik fází, takže ještě více prostoru pro chyby. Zjistili jsme, že pro náš konkrétní projekt bylo Motion jednodušší nastavit a začít pracovat, ale mnohem robustnější při jeho provádění.

Prameny

Zdroje kódu:

www.techradar.com/how-to/computing/how-to-b…

pimylifeup.com/raspberry-pi-webcam-server/

www.pyimagesearch.com/2015/06/01/home-surve…

naelshiab.com/tutorial-send-email-python/

www.raspberrypi.org/documentation/linux/us…

learn.adafruit.com/adafruits-raspberry-pi-…

learn.adafruit.com/adafruits-raspberry-pi-…

pinout.xyz/pinout/i2c

Fotografické kredity:

Šnek SSH:

Logo pošty:

Webová kamera Logitech:

Okno SSH:

Doporučuje: