Cuprins:
- Pasul 1: Configurarea Pi
- Pasul 2: SSHing în PI
- Pasul 3: Trimiteți prin e-mail adresa IP la pornire
- Pasul 4: Instalarea și configurarea mișcării
- Pasul 5: Trimiterea prin e-mail a videoclipurilor din mișcare la detectare
- Pasul 6: Depanare și surse
Video: Cameră de detectare a mișcării Raspberry Pi 3 cu flux live: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Introducere
În acest proiect, veți învăța cum să construiți o cameră de detectare a mișcării pe care o veți putea folosi ca o capcană pentru cameră, un monitor pentru animale de companie / bebeluș, o cameră de securitate și multe altele.
Acest proiect este organizat în mai mulți pași:
- Introducere
- Configurarea dispozitivului Pi
- SSHing în Pi
- Trimiterea prin e-mail a adresei IP la pornire
- Instalarea și configurarea Motion
- Trimiterea prin e-mail a videoclipurilor din Motion on detectare
- Depanare și surse
De ce veți avea nevoie:
- Un model Raspberry Pi 3 b ~~ 35 $
- Card Micro SD de 8 GB ~ ~ 10 USD
- Cameră web USB ~~ 20 $ (acest proiect a folosit o cameră Web Logitech HD c270)
- cablu micro usb ~~ 5 $
- fie:
- acumulator reîncărcabil de 5 volți (baterie de rezervă pentru telefon), acest lucru face ca proiectul dvs. să fie fără fir ~~ 20 $
- sau
- adaptor de perete usb ~~ 5 $
- O conexiune WiFi
La ce veți avea nevoie de acces pentru configurare:
- Un monitor
- Un mouse și o tastatură
- Un computer cu un slot pentru card SD
- Un convertor Micro SD în card SD (ar trebui să vină cu cardul dvs. micro SD)
Pasul 1: Configurarea Pi
Acum să configurăm Pi-ul
Pentru început, asigurați-vă că aveți toate elementele necesare din ultimul pas. Apoi, urmați pașii de pe site-ul web Raspberry Pi pentru instalarea Raspbian Jessie pe cardul dvs. Microsd, găsit aici.
Odată ce ați instalat Raspbian pe Pi, este timpul să configurați câteva funcții de bază.
Wifi
Primul pas pentru a profita la maximum de Pi este să îl conectați la internet. Este posibil să fi finalizat deja acest pas fie localizând simbolul WiFi în colțul din dreapta sus al ecranului principal al Pi-ului și conectându-vă acolo, fie făcând același lucru înainte de a instala Raspbian în ultimul pas. Dacă nu vă puteți conecta la rețeaua WiFi din interfața desktop Pi, puteți urma instrucțiunile de aici pentru a configura WiFi prin linia de comandă.
SSH
Un instrument foarte la îndemână disponibil pentru dvs. atunci când utilizați Pi-ul este opțiunea de a emite comenzi către Pi-ul dvs. în ceea ce este cunoscut sub numele de configurare fără cap. Utilizând un Secure SHell sau SSH, puteți controla Pi-ul de la distanță de pe un computer. Cu această metodă, tot ce veți avea nevoie pentru a vă edita Pi este o sursă de alimentare pentru ao menține aprinsă, nu mai aveți monitor și tastatură!
Pasul 2: SSHing în PI
SSHing în Raspberry Pi este ușor și foarte util, deoarece procesul vă permite să emiteți comenzi către Pi de pe orice computer cu nimic mai mult decât o conexiune WiFi.
Pentru a SSH în Pi, trebuie să urmați acești 3 pași simpli.
Mai întâi, trebuie să activați SSH pe Pi. Pentru a face acest lucru, deschideți o fereastră de comandă în Pi și introduceți:
sudo raspi-config
Această comandă vă permite să accesați un meniu de configurare. de acolo veți dori să utilizați tastele săgeată, filă și introducere pentru a intra mai întâi în opțiunile de interfață, apoi pentru a activa SSH, precum și camera, apoi ieșiți și reporniți pi.
Apoi, va trebui să găsiți adresa IP a Pi. Într-un terminal de comandă, tastați:
sudo ifconfig
Și adresa dvs. IP ar trebui să fie în secțiunea wlan0 care apare, chiar sub Link encap: Ethernet. În imaginea demonstrativă de mai sus, adresa IP este 192.168.1.10.
În cele din urmă, va trebui fie să deschideți aplicația terminal încorporată pe un Mac, fie să găsiți și să urmați instrucțiunile pentru o aplicație ssh terță parte pentru Windows. În aplicația Terminal, tastați:
ssh pi @ ADRESA DVS. IP
Dacă nu ați schimbat parola în timp ce utilizați Raspi-config, atunci parola pentru a introduce când vi se solicită va fi parola implicită: zmeură.
De acolo, ar trebui să fii bun să pleci!
Pasul 3: Trimiteți prin e-mail adresa IP la pornire
În acest pas ne vom concentra asupra modului de accesare a Raspberry Pi, indiferent de rețeaua în care vă aflați. În funcție de rețea, adresa IP a Pi se schimbă. Și dacă nu aveți o configurare a monitorului, ar trebui să intrați în Pi pentru a declanșa protocolul de detectare a mișcării, pentru a modifica preferințele de mișcare sau pentru a accesa orice altceva de pe dispozitiv. Pentru a rezolva această problemă, vom scrie un script python care ne trimite prin e-mail adresa IP curentă a PI la pornire. Scriptul python este după cum urmează și a fost stocat într-un director marcat „fundal”.
#start în directorul de start
cd ~
#create folder de fundal
fundal mkdir
#create script python
sudo nano emailip.py
#write în emailip.py
soclu de import
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
din e-mail. MIMEMultipart import MIMEMultipart
din e-mail. MIMEText import MIMEText
fromaddr = "ADRESA DUMNEAVOASTRĂ"
toaddr = "ADRESĂ DE PRIMARE"
msg = MIMEMultipart ()
msg ['From'] = fromaddr
msg ['To'] = toaddr
msg ['Subject'] = "Adresă IP"
body = xmsg.attach (MIMEText (corp, „simplu”))
server = smtplib. SMTP („smtp.gmail.com”, 587)
server.starttls ()
server.login (fromaddr, "PAROLA DUMNEAVOASTRĂ")
text = msg.as_string ()
server.sendmail (fromaddr, toaddr, text)
server.quit ()
#atunci acest lucru o face la repornire
sudo nano /etc/rc.local
#enter în /etc/rc.local
in timp ce ! / sbin / ifconfig wlan0 | grep -q 'inet addr: [0-9]';
dormi 3
Terminat
_IP = $ (hostname -I) || Adevărat
dacă ["$ _IP"]; atunci
printf "Adresa mea IP este% s / n" "$ _IP"
python /home/pi/Background/emailip.py &
fi
ieșire 0
#și ai terminat
Pasul 4: Instalarea și configurarea mișcării
#update pi
sudo apt-get update
sudo apt-get upgrade
#Descarca
sudo apt-get install motion
# acum editați acest fișier cu următoarele modificări
sudo nano /etc/motion/motion.conf
#pentru a stabili un standard pentru acest tutorial, schimbați
#################
daemon on
stream_localhost oprit
webcontrol_localhost dezactivat
ffmpeg_output_movies activat
target_dir / var / lib / motion
##################
#local opțiuni de streaming ale browserului web
##################
stream_maxrate 100 # Acest lucru va permite streaming în timp real, dar necesită mai multă lățime de bandă și resurse
framerate 60 # Acest lucru va permite capturarea a 60 de cadre pe secundă # cu cât crește acest lucru, cu atât procesarea video este mai lentă
lățimea 640 # Aceasta modifică lățimea imaginii afișate
înălțime 480 # Aceasta modifică înălțimea imaginii afișate
##################
#emailing video settings in … / motion.conf
##################
# ștergeți „;” în fața liniei, punctul și virgula comentează linia
on_event_start python /home/pi/background/motionalert.py% f
on_movie_end python /home/pi/background/motionvid.py% f
##################
#astectica
##################
#choices descrise în fișier
imagini_output localizare_stil_motivitate
##################
#atunci schimbare
sudo nano / etc / default / motion
#a zice
start_motion_daemon = da
#ultime, porniți B **** sus
sudo service motion start
# puteți schimba comanda pentru a „opri” sau „reporniți”
Pasul 5: Trimiterea prin e-mail a videoclipurilor din mișcare la detectare
Trimiteți un e-mail la detectarea mișcării:
#începeți acasă
dircd ~
#create script python de alertă de mișcare
sudo nano /home/pi/background/motionalert.py
#scrie
import smtplib
din datetime import datetime
din e-mail. MIMEMultipart import MIMEMultipart
din e-mail. MIMEText import MIMEText
fromaddr = "ADRESA TA"
toaddr = "RECIEVINGADDRESS"
msg = MIMEMultipart ()
msg ['From'] = fromaddr
msg ['To'] = toaddr
msg ['Subject'] = "Mișcare detectată"
body = 'A fost detectată o mișcare. / nTimp:% s'% str (datetime.now ())
msg.attach (MIMEText (corp, „simplu”))
server = smtplib. SMTP („smtp.gmail.com”, 587)
server.starttls ()
server.login (fromaddr, "YOURPASSWORD")
text = msg.as_string ()
server.sendmail (fromaddr, toaddr, text)
server.quit ()
E-mail Video de mișcare atunci când videoclipul este salvat:
#start at homedircd ~
#create motion video python scriptsudo nano /home/pi/background/motionvid.py
import smtplib
din e-mail. MIMEMultipart import MIMEMultipart
din e-mail. MIMEText import MIMEText
din e-mail. MIMEBase import MIMEBase
de la codificatoare de import de e-mail
fromaddr = "E-MAILUL DUMNEAVOASTRĂ"
toaddr = "ADRESA E-MAIL LA CARE TRIMITEȚI"
msg = MIMEMultipart ()
msg ['From'] = fromaddr
msg ['To'] = toaddr
msg ['Subject'] = "Motion Cam activat"
body = "Video cu mișcare detectată"
msg.attach (MIMEText (corp, „simplu”))
import os
rootpath = '/ var / lib / motion'
filelist = [os.path.join (rootpath, f) pentru f în os.listdir (rootpath)]
filelist = [f for f in filelist if os.path.isfile (f)]
newest = max (filelist, key = lambda x: os.stat (x).st_mtime)
filename = cel mai nou
import os
rootpath = '/ var / lib / motion'
filelist = [os.path.join (rootpath, f) pentru f în os.listdir (rootpath)]
filelist = [f for f in filelist if os.path.isfile (f)]
newest = max (filelist, key = lambda x: os.stat (x).st_mtime)
atașament = deschis (cel mai nou, "rb")
parte = MIMEBase („aplicație”, „octet-stream”)
part.set_payload ((atașament).read ())
encoders.encode_base64 (parte)
part.add_header ('Content-Disposition', "atașament; nume de fișier =% s"% nume de fișier)
msg.attach (parte)
server = smtplib. SMTP („smtp.gmail.com”, 587)
server.starttls ()
server.login (fromaddr, „PAROLA DUMNEAVOASTRĂ”)
text = msg.as_string ()
server.sendmail (fromaddr, toaddr, text)
server.quit ()
Pasul 6: Depanare și surse
Depanare:
Deoarece acest proiect are mai multe etape, există mai multe puncte în care lucrurile pot merge prost. Mai jos sunt câteva dintre posibilele erori care ar putea apărea și cum să le remediați.
- Când vă configurați pi-ul pentru a vă trimite adresa IP curentă, este crucial să editați fișierul rc.local așa cum se arată mai devreme, deoarece acest lucru permite o ușoară întârziere înainte ca programul să se activeze după repornire. În caz contrar, pi nu va fi încă conectat la wifi, iar e-mailul nu va fi trimis.
- Când editați fișierul motion.conf, asigurați-vă că ștergeți punctele și virgulele în fața anumitor parametri. Punctul și virgula suprimă o acțiune dată, astfel încât altfel schimbarea nu va intra în vigoare.
- Fișierul motion.conf este foarte bine organizat și detaliat. Simțiți-vă liber să modificați setările după dorința dvs., dar înțelegeți că acestea pot afecta succesul sistemului de captare a mișcării.
- După configurarea opțiunilor de alertă prin e-mail și video prin e-mail, este important să rețineți că e-mailul videoclipului detectat de mișcare va dura puțin mai mult decât pentru a trimite decât e-mailul de alertă inițial. Acest lucru se datorează faptului că videoclipul se încheie la câteva secunde după ce mișcarea nu mai este detectată și deoarece atașamentul de e-mail ar putea fi suficient de mare încât să necesite câteva minute pentru a primi. În unele cazuri, dacă mișcarea este susținută pentru o perioadă foarte lungă de timp, poate fi prea mare pentru a fi trimisă deloc. Din acest motiv, este întotdeauna o idee bună să verificați fluxul live după ce ați primit e-mailul de alertă inițial.
De ce mișcare ?:
Când ne-am angajat pentru prima dată în acest proiect, am luat în considerare mai multe resurse diferite. Mai întâi ne-am gândit să folosim PiCam, care este o unitate de cameră construită special pentru zmeura pi. PiCam este cu siguranță un dispozitiv capabil și are multe aplicații, dar este limitat la utilizarea de programe special concepute pentru acesta și este relativ scump în comparație cu camerele web polivalente ieftine. Deci, pentru a face acest proiect accesibil pentru un public mai mare, am decis să folosim o cameră web USB comună. Următorul număr a fost ce software să încorporeze. Am considerat inițial OpenCV, un software gratuit care permite multe tipuri diferite de proiecte de viziune computerizată și imagistică. Una dintre problemele de aici este că OpenCV este un fișier masiv care ocupă multă memorie și este configurat mult timp. Configurarea are, de asemenea, mai multe etape, lăsând și mai mult spațiu pentru erori. Am constatat că, pentru proiectul nostru specific, Motion a fost mai simplu de configurat și a funcționa, dar mult mai robust în execuția sa.
Surse
Surse de cod:
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
Credite foto:
SSH Snail:
Logo poștal:
Cameră web Logitech:
Fereastra SSH:
Recomandat:
Pingo: un lansator de mingi Ping Pong de detectare a mișcării și de înaltă precizie: 8 pași
Pingo: un lansator de mingi Ping Pong cu detecție de mișcare și precizie: Kevin Nitiema, Esteban Poveda, Anthony Mattacchione, Raphael Kay
Lumină de noapte cu LED pentru pat cu detectare automată a mișcării: 6 pași (cu imagini)
Lumină de noapte cu LED pentru patul de detectare automată a mișcării: Bună ziua, băieți, ați venit la un alt instructabil care vă va ajuta întotdeauna în viața de zi cu zi și va adăuga un confort pentru a vă face viața mai ușoară. Acesta ar putea fi uneori un salvator al vieții în cazul persoanelor în vârstă care trebuie să se lupte să se ridice în pat
Laser Arduino cu detectare a mișcării: 5 pași
Laser de detectare a mișcării Arduino: NOTĂ: Acest proiect a fost conceput astfel încât toate piesele să poată fi refolosite în proiecte viitoare. Ca rezultat, produsul final este mai puțin stabil decât ar fi în cazul în care utilizați materiale mai permanente, cum ar fi lipici, lipire, etc … Atenție: Nu
Cum să construiți un sistem de detectare a mișcării cu Arduino: 7 pași
Cum să construiești un sistem de detectare a mișcării cu Arduino: Construiește un contor de producție de mișcare și prezență utilizând un Feather HUZZAH programat cu Arduino și alimentat de Ubidots. Detectarea efectivă a mișcării și prezenței fizice în casele inteligente și în fabricarea inteligentă poate fi foarte utilă în aplicații variind
Sistem de alarmă de detectare a mișcării: 11 pași (cu imagini)
Sistem de alarmă pentru detectarea mișcării: Notă! Reactive Blocks nu mai este disponibil pentru descărcare. O cameră USB de bază poate fi utilizată pentru a detecta mișcarea într-o cameră. În pașii următori vă vom arăta cum puteți utiliza Reactive Blocks pentru a programa o aplicație Java gata de rulat care trimite SMS