Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Úvod
V tomto projekte sa naučíte, ako vytvoriť kameru s detekciou pohybu, ktorú budete môcť používať ako pascu na fotoaparát, monitor pre domáce zvieratá/detskú stráž, bezpečnostnú kameru a mnoho ďalších.
Tento projekt je rozdelený do niekoľkých krokov:
- Úvod
- Nastavenie vášho Pi
- SSHing do vášho Pi
- E -mailová adresa IP pri spustení
- Inštalácia a nastavenie Motion
- Odosielanie e -mailov videám z detekcie pohybu
- Riešenie problémov a zdroje
Čo budete potrebovať:
- Model Raspberry Pi 3 za ~ 35 dolárov
- 8 GB micro SD karta ~~ 10 dolárov
- Webová kamera USB ~ 20 dolárov (tento projekt používal webovú kameru Logitech HD Webcam c270)
- mikro USB kábel ~~ 5 dolárov
- buď:
- nabíjateľná 5 -voltová batéria (záložná batéria telefónu), robí váš projekt bezdrôtovým ~~ 20 dolárov
- alebo
- USB nástenný adaptér ~~ 5 dolárov
- WiFi pripojenie
K čomu budete potrebovať prístup pre nastavenie:
- Monitor
- Myš a klávesnica
- Počítač so slotom na kartu SD
- Prevodník kariet Micro SD na SD (mal by byť súčasťou vašej karty micro SD)
Krok 1: Nastavenie vášho Pi
Teraz si nastavme Pi
Na začiatku sa uistite, že máte všetky požadované položky z posledného kroku. Potom postupujte podľa pokynov na inštalácii Raspbian Jessie na kartu Microsd, ktoré nájdete tu, na webovej stránke Raspberry Pi.
Keď máte na svojom Pi nainštalovaný Raspbian, je načase nastaviť niekoľko základných funkcií.
WiFi
Prvým krokom k tomu, aby ste svoj Pi naplno využili, je pripojiť ho k internetu. Tento krok ste už mohli dokončiť buď umiestnením symbolu WiFi v pravom hornom rohu hlavnej obrazovky vášho Pi a prihlásením sa tam, alebo urobíte to isté pred inštaláciou Raspbian v poslednom kroku. Ak sa nemôžete prihlásiť do svojej siete Wi -Fi z rozhrania pracovnej plochy vášho počítača Pi, pomocou WiFi tu môžete nastaviť príkazový riadok.
SSH
Jeden veľmi užitočný nástroj, ktorý máte k dispozícii pri používaní vášho Pi, je možnosť vydávať príkazy vášmu Pi v takzvanom bezhlavom nastavení. Pomocou Secure SHell alebo SSH môžete svoje Pi ovládať na diaľku z počítača. S touto metódou bude všetko, čo budete potrebovať na úpravu svojho Pi, zdrojom energie, aby ho udržal zapnutý, už žiadny monitor a klávesnica!
Krok 2: SSHing do vášho PI
SSHing do vášho Raspberry Pi je jednoduchý a veľmi užitočný, pretože vám tento proces umožňuje vydávať príkazy pre váš Pi z akéhokoľvek počítača iba s pripojením WiFi.
Na prihlásenie SSH do vášho Pi musíte postupovať podľa týchto 3 jednoduchých krokov.
Najprv musíte na svojom Pi povoliť SSH. Ak to chcete urobiť, otvorte na počítači Pi príkazové okno a zadajte:
sudo raspi-config
Tento príkaz vám umožňuje vstúpiť do ponuky konfigurácie. odtiaľ budete chcieť pomocou klávesov so šípkou, kartou a zadaním najskôr prejsť na možnosti rozhrania, potom povoliť SSH, ako aj fotoaparát, potom ukončiť a reštartovať pi.
Ďalej budete musieť nájsť IP adresu vášho Pi. Do príkazového terminálu zadajte:
sudo ifconfig
A vaša IP adresa by mala byť v sekcii wlan0, ktorá sa objaví, priamo pod Link encap: ethernet. Na demo obrázku vyššie je IP adresa 192.168.1.10.
Nakoniec budete musieť buď otvoriť vstavanú terminálovú aplikáciu na počítači Mac, alebo nájsť a postupovať podľa pokynov pre aplikáciu ssh tretej strany pre Windows. V aplikácii Terminál zadajte:
ssh pi@VAŠA IP ADRESA
Ak ste heslo v Raspi-config nezmenili, potom bude vaše heslo, ktoré zadáte po výzve, predvolené heslo: malina.
Odtiaľ by ste mali ísť!
Krok 3: Pošlite svoju IP adresu pri štarte
V tomto kroku sa zameriame na prístup k vášmu Raspberry Pi bez ohľadu na sieť, v ktorej sa nachádzate. V závislosti od siete sa IP adresa Pi zmení. A ak nemáte nastavenie monitora, budete musieť ssh do Pi spustiť protokol detekcie pohybu, zmeniť predvoľby pohybu alebo získať prístup k čomukoľvek inému na zariadení. Aby sme tento problém vyriešili, napíšeme skript pythonu, ktorý nám po štarte pošle e -mail na aktuálnu IP adresu Pi. Skript python je nasledujúci a bol uložený v adresári označenom „na pozadí“.
#začnite v domovskom adresári
CD ~
#vytvorte priečinok na pozadí
pozadie mkdir
#vytvorte pythonový skript
sudo nano emailip.py
#napíšte na emailip.py
dovozná zásuvka
s = socket.socket (socket. AF_INET, socket. SOCK_DGRAM)
s.connect (("8.8.8.8", 80))
print (s.getsockname () [0]) x = s.getsockname () [0] s.close ()
import smtplib
z e -mailu. MIMEMultipart import MIMEMultipart
z e -mailu. MIMEText import MIMEText
fromaddr = "VAŠA ADRESA"
toaddr = "PRÍJEM ADRESY"
msg = MIMEMultipart ()
msg ['Od'] = od addr
msg ['To'] = toaddr
msg ['Subject'] = "Adresa IP"
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 ()
#potom sa to stane pri reštarte
sudo nano /etc/rc.local
#zadajte adresu /etc/rc.local
zatiaľ čo! /sbin/ifconfig wlan0 | grep -q 'inet addr: [0-9]';
spať 3
hotový
_IP = $ (názov hostiteľa -I) || pravda
ak ["$ _IP"]; potom
printf "Moja IP adresa je %s / n" "$ _IP"
python /home/pi/Background/emailip.py &
fi
výjazd 0
#a hotovo
Krok 4: Inštalácia a nastavenie pohybu
#update pi
sudo apt-get aktualizácia
sudo apt-get upgrade
#Stiahnuť ▼
sudo apt-get install motion
#teraz upravte tento súbor pomocou nasledujúcich zmien
sudo nano /etc/motion/motion.conf
#Ak chcete nastaviť štandard tohto tutoriálu, zmeňte ho
#################
démon na
stream_localhost vypnutý
webcontrol_localhost vypnutý
ffmpeg_output_movies na
target_dir/var/lib/motion
##################
#lokálne možnosti streamovania webového prehliadača
##################
stream_maxrate 100 #To umožní streamovanie v reálnom čase, ale vyžaduje väčšiu šírku pásma a zdroje
snímková frekvencia 60 #To umožní zachytiť 60 snímok za sekundu #čím vyššie to bude, tým pomalšie bude spracovanie videa
width 640 #Tým sa zmení šírka zobrazeného obrázku
výška 480 #To zmení výšku zobrazeného obrázku
##################
#e -mailom nastavenia videa v …/motion.conf
##################
#delete ";" pred riadkom, bodkočiarka komentuje riadok
on_event_start python /home/pi/background/motionalert.py %f
on_movie_end python /home/pi/background/motionvid.py %f
##################
#astektika
##################
#hlasy popísané v súbore
output_pictures locate_motion_style
##################
#potom zmena
sudo nano/etc/default/motion
#povedať
start_motion_daemon = áno
#naposledy, spustite B **** hore
spustenie pohybu sudo služby
#príkaz môžete zmeniť na „zastaviť“alebo „reštartovať“
Krok 5: Odoslanie e -mailu s videami na základe detekcie pohybu
E -mail pri detekcii pohybu:
#začnite doma
dircd ~
#create skript pythonu s upozornením na pohyb
sudo nano /home/pi/background/motionalert.py
#napíšte
import smtplib
z datetime import datetime
z e -mailu. MIMEMultipart import MIMEMultipart
z e -mailu. MIMEText import MIMEText
fromaddr = "VAŠA ADRESA"
toaddr = "RECIEVINGADDRESS"
msg = MIMEMultipart ()
msg ['Od'] = od addr
msg ['To'] = toaddr
msg ['Subject'] = "Pohyb detekovaný"
body = 'Bol zistený 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 s videom pohybu, keď je video uložené:
#začnite na homedircd ~
#create motion video python scriptsudo nano /home/pi/background/motionvid.py
import smtplib
z e -mailu. MIMEMultipart import MIMEMultipart
z e -mailu. MIMEText import MIMEText
z e -mailu. MIMEBase import MIMEBase
z kodérov importu e -mailov
fromaddr = "VÁŠ E -MAIL"
toaddr = "E -mailová adresa, na ktorú posielate"
msg = MIMEMultipart ()
msg ['Od'] = od addr
msg ['To'] = toaddr
msg ['Subject'] = "Pohybová kamera aktivovaná"
body = "Video s detekciou pohybu"
msg.attach (MIMEText (body, 'plain'))
import os
rootpath = '/var/lib/motion'
zoznam súborov = [os.path.join (koreňová cesta, f) pre f v os.listdir (koreňová cesta)]
zoznam súborov = [f pre f v zozname súborov, ak os.path.isfile (f)]
newest = max (zoznam súborov, kľúč = lambda x: os.stat (x).st_mtime)
názov súboru = najnovší
import os
rootpath = '/var/lib/motion'
zoznam súborov = [os.path.join (koreňová cesta, f) pre f v os.listdir (koreňová cesta)]
zoznam súborov = [f pre f v zozname súborov, ak os.path.isfile (f)]
newest = max (zoznam súborov, kľúč = lambda x: os.stat (x).st_mtime)
príloha = otvorená (najnovšia, "rb")
časť = MIMEBase ('aplikácia', 'oktetový stream')
part.set_payload ((príloha).read ())
encoders.encode_base64 (časť)
part.add_header ('Content-Disposition', "príloha; názov súboru = % s" % názov súboru)
msg.attach (časť)
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: Riešenie problémov a zdroje
Riešenie problémov:
Pretože tento projekt má niekoľko fáz, existuje niekoľko bodov, v ktorých sa môžu veci pokaziť. Nasleduje niekoľko možných chýb, ktoré sa môžu vyskytnúť, a ako ich opraviť.
- Pri nastavovaní pi na odosielanie e -mailov s aktuálnou adresou IP je dôležité upraviť súbor rc.local, ako je uvedené vyššie, pretože to umožňuje mierne oneskorenie pred aktiváciou programu po reštarte. V opačnom prípade nebude zariadenie pi ešte pripojené k sieti Wi -Fi a e -mail sa neodošle.
- Pri úprave súboru motion.conf nezabudnite odstrániť určité bodkočiarky pred určitými parametrami. Bodkočiarka potláča danú akciu, takže inak sa zmena neuplatní.
- Súbor motion.conf je veľmi dobre organizovaný a podrobný. Nebojte sa zmeniť nastavenia podľa svojich predstáv, ale pochopte, že môžu ovplyvniť úspech systému zachytávania pohybu.
- Po nastavení možností e -mailového upozornenia a e -mailu je dôležité si uvedomiť, že odoslanie e -mailu s videom detekovaným pohybom bude trvať trochu dlhšie, ako bol odoslaný pôvodný e -mail s upozornením. Dôvodom je, že video končí niekoľko sekúnd po tom, ako už nie je detekovaný pohyb, a pretože príloha e -mailu môže byť dostatočne veľká na prijatie niekoľko minút. V niektorých prípadoch môže byť pohyb príliš dlhý na to, aby sa vôbec odoslal, ak je pohyb udržovaný veľmi dlho. Z tohto dôvodu je vždy dobré skontrolovať priamy prenos po prijatí prvého e -mailu s upozornením.
Prečo pohyb ?:
Pri prvom začatí tohto projektu sme zvažovali niekoľko rôznych zdrojov. Najprv sme zvážili použitie PiCam, čo je kamerová jednotka postavená špeciálne pre malinový pi. PiCam je určite schopné zariadenie a má mnoho aplikácií, ale obmedzuje sa na používanie programov, ktoré sú na to špeciálne navrhnuté, a v porovnaní s lacnými viacúčelovými webovými kamerami je relatívne drahý. Aby bol tento projekt prístupný väčšiemu publiku, rozhodli sme sa použiť spoločnú webovú kameru USB. Ďalším problémom bolo, ktorý softvér začleniť. Pôvodne sme zvažovali OpenCV, bezplatný softvér, ktorý umožňuje mnoho rôznych druhov projektov počítačového videnia a zobrazovania. Jedným z problémov je, že OpenCV je rozsiahly súbor, ktorý zaberá veľa pamäte a dlho sa nastavuje. Nastavenie má tiež niekoľko fáz, takže ešte viac priestoru pre chyby. Zistili sme, že pre náš konkrétny projekt bolo nastavenie a spustenie programu Motion jednoduchšie, ale pri vykonávaní oveľa robustnejšie.
Zdroje
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:
Slimák SSH:
Logo pošty:
Webová kamera Logitech:
Okno SSH: