Turinys:
- 1 žingsnis: nustatykite „Pi“
- 2 žingsnis: SSHing į savo PI
- 3 veiksmas: el. Paštu išsiųskite savo IP adresą įkrovos metu
- 4 žingsnis: judesio diegimas ir nustatymas
- 5 veiksmas: vaizdo įrašų siuntimas el. Paštu nuo judesio aptikimo metu
- 6 veiksmas: trikčių šalinimas ir šaltiniai
Video: „Raspberry Pi 3“judesio aptikimo kamera su tiesioginiu srautu: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Įvadas
Šiame projekte jūs išmoksite sukurti judesio aptikimo kamerą, kurią galėsite naudoti kaip fotoaparato spąstus, naminių gyvūnėlių/kūdikių monitorių, apsaugos kamerą ir daug daugiau.
Šis projektas yra suskirstytas į kelis etapus:
- Įvadas
- „Pi“nustatymas
- SSHing į jūsų Pi
- Pašto adresu paleidžiant jūsų IP adresą
- „Motion“diegimas ir nustatymas
- Vaizdo įrašų siuntimas el. Paštu iš judesio aptikimo metu
- Trikčių šalinimas ir šaltiniai
Ko jums reikės:
- „Raspberry Pi 3“modelis kainuoja ~ 35 USD
- 8 GB „Micro SD“kortelė ~ 10 USD
- USB internetinė kamera ~ ~ 20 USD (šiame projekte buvo naudojama „Logitech HD Webcam c270“)
- mikro usb kabelis ~ ~ 5 USD
- arba:
- įkraunama 5 voltų baterija (telefono atsarginė baterija), todėl jūsų projektas tampa belaidis ~ ~ 20 USD
- arba
- USB sieninis adapteris ~ ~ 5 USD
- „WiFi“ryšys
Prie sąrankos jums reikės prieigos:
- Monitorius
- Pelė ir klaviatūra
- Kompiuteris su SD kortelės lizdu
- „Micro SD“į SD kortelės keitiklis (turėtų būti su „micro SD“kortele)
1 žingsnis: nustatykite „Pi“
Dabar nustatykime „Pi“
Norėdami pradėti, įsitikinkite, kad turite visus būtinus elementus iš paskutinio veiksmo. Tada atlikite „Raspberry Pi“svetainės veiksmus, kaip įdiegti „Raspbian Jessie“į „Microsd“kortelę, kurią rasite čia.
Įdiegę „Raspbian“savo „Pi“, atėjo laikas nustatyti kai kurias pagrindines funkcijas.
Bevielis internetas
Pirmasis žingsnis norint gauti maksimalią naudą iš „Pi“yra prijungti jį prie interneto. Galbūt jūs jau atlikote šį veiksmą, suradę „WiFi“simbolį viršutiniame dešiniajame „Pi“pagrindinio ekrano kampe ir prisijungę ten, arba atlikę tą patį prieš diegdami „Raspbian“paskutiniame veiksme. Jei negalite prisijungti prie „WiFi“tinklo naudodami „Pi“darbalaukio sąsają, vadovaukitės čia pateiktomis instrukcijomis ir nustatykite „WiFi“naudodami komandų eilutę.
SSH
Vienas labai patogus įrankis, prieinamas jums naudojant „Pi“, yra galimybė duoti komandas savo „Pi“, vadinamoje sąrankoje be galvos. Naudodami „Secure SHell“arba SSH, galite valdyti „Pi“nuotoliniu būdu iš kompiuterio. Taikant šį metodą, norint redaguoti „Pi“, jums tereikia maitinimo šaltinio, nebereikia monitoriaus ir klaviatūros!
2 žingsnis: SSHing į savo PI
SSHing į „Raspberry Pi“yra lengva ir labai naudinga, nes šis procesas leidžia jums duoti komandas „Pi“iš bet kurio kompiuterio, turinčio tik „WiFi“ryšį.
Norėdami įjungti SSH į „Pi“, turite atlikti šiuos 3 paprastus veiksmus.
Pirmiausia turite įjungti SSH savo „Pi“. Norėdami tai padaryti, atidarykite „Pi“komandų langą ir įveskite:
sudo raspi-config
Ši komanda leidžia patekti į konfigūracijos meniu. iš ten norėsite naudoti rodyklę, skirtuką ir įvesti klavišus, kad pirmiausia pereitumėte prie sąsajos parinkčių, tada įjungtumėte SSH, taip pat fotoaparatą, tada išeikite ir iš naujo paleiskite pi.
Tada turėsite rasti savo „Pi“IP adresą. Komandų terminale įveskite:
sudo ifconfig
Ir jūsų IP adresas turėtų būti pasirodžiusiame skyriuje „wlan0“, esančiame tiesiai po nuorodos encap: ethernet. Aukščiau esančiame demonstraciniame paveikslėlyje IP adresas yra 192.168.1.10.
Galiausiai turėsite atidaryti integruotą terminalo programą „Mac“arba surasti ir sekti trečiosios šalies „ssh“programos, skirtos „Windows“, instrukcijas. Programoje „Terminal“įveskite:
ssh pi@JŪSŲ IP ADRESAS
Jei nepakeitėte slaptažodžio dirbdami „Raspi-config“, tada slaptažodis, kurį reikia įvesti, kai būsite paraginti, bus numatytasis slaptažodis: aviečių.
Iš ten jums turėtų būti gera eiti!
3 veiksmas: el. Paštu išsiųskite savo IP adresą įkrovos metu
Šiame žingsnyje mes sutelksime dėmesį į tai, kaip pasiekti „Raspberry Pi“, nepriklausomai nuo to, kuriame tinkle esate. Priklausomai nuo tinklo, „Pi“IP adresas keičiasi. Ir jei neturite monitoriaus sąrankos, turėsite įjungti „ssh“į „Pi“, kad suaktyvintumėte judesio aptikimo protokolą, pakeistumėte judesio nuostatas arba pasiektumėte bet ką kitą įrenginyje. Norėdami išspręsti šią problemą, mes parašysime „python“scenarijų, kuris el. Paštu atsiųs mums dabartinį „Pi“IP IP adresą. „Python“scenarijus yra toks ir buvo saugomas kataloge, pažymėtame „fone“.
#start namų kataloge
cd ~
#create fono aplanką
mkdir fonas
#sukurti „Python“scenarijų
sudo nano emailip.py
#rašykite į emailip.py
importo lizdas
s = socket.socket (lizdas. AF_INET, lizdas. SOCK_DGRAM)
s.connect (("8.8.8.8", 80))
spausdinti (s.getsockname () [0]) x = s.getsockname () [0] s.close ()
importuoti smtplib
iš el.pašto. MIMEMultipart importas MIMEMultipart
iš el. pašto. MIMEText importuoja MIMEText
fromaddr = "JŪSŲ ADRESAS"
toaddr = "GAVIMAS ADRESAS"
msg = MIMEMultipart ()
msg ['From'] = fromadr
msg ['Į'] = toaddr
msg ['Subject'] = "IP adresas"
body = xmsg.attach (MIMEText (body, 'paprastas'))
serveris = smtplib. SMTP ('smtp.gmail.com', 587)
server.starttls ()
server.login (fromaddr, „JŪSŲ Slaptažodis“)
text = msg.as_string ()
server.sendmail (fromaddr, toaddr, text)
server.quit ()
#tada tai daro iš naujo
sudo nano /etc/rc.local
#įveskite /etc/rc.local
kol! /sbin/ifconfig wlan0 | grep -q 'inet addr: [0-9]';
miegok 3
padaryta
_IP = $ (pagrindinio kompiuterio pavadinimas -I) || tiesa
jei ["$ _IP"]; tada
printf "Mano IP adresas yra %s / n" "$ _IP"
python /home/pi/Background/emailip.py &
fi
išeiti 0
#ir viskas
4 žingsnis: judesio diegimas ir nustatymas
#atnaujinti pi
sudo apt-get atnaujinimas
sudo apt-get atnaujinimas
#parsisiųsti
sudo apt-get install motion
#now redaguokite šį failą atlikdami šiuos pakeitimus
sudo nano /etc/motion/motion.conf
#Norėdami nustatyti šios pamokos standartą, pakeiskite
#################
demonas įjungtas
„stream_localhost“išjungtas
„webcontrol_localhost“išjungtas
ffmpeg_output_movies įjungtas
target_dir/var/lib/motion
##################
#local žiniatinklio naršyklės srautinio perdavimo parinktys
##################
stream_maxrate 100 #Tai leis transliuoti realiuoju laiku, tačiau reikalauja daugiau pralaidumo ir išteklių
kadrų dažnis 60 #Tai leis užfiksuoti 60 kadrų per sekundę #kuo didesnis, tuo lėtesnis vaizdo apdorojimas
plotis 640 #Tai pakeičia rodomo vaizdo plotį
aukštis 480 #Tai pakeičia rodomo vaizdo aukštį
##################
#el. pašto vaizdo įrašo nustatymai …/motion.conf
##################
#ištrinti „;“prieš eilutę, kabliataškis komentuoja eilutę
on_event_start python /home/pi/background/motionalert.py %f
on_movie_end python /home/pi/background/motionvid.py %f
##################
#astika
##################
#choices, aprašytas faile
output_pictures locate_motion_style
##################
#tada keiskis
sudo nano/etc/default/motion
#sakyti
start_motion_daemon = taip
#paskutinis, pradėkite B **** aukštyn
sudo paslaugos judėjimo pradžia
#galite pakeisti komandą į „stop“arba „restart“
5 veiksmas: vaizdo įrašų siuntimas el. Paštu nuo judesio aptikimo metu
El. Paštas, kai aptinkamas judesys:
#pradėk nuo namų
dircd ~
#create motion alert python script
sudo nano /home/pi/background/motionalert.py
#rašyti
importuoti smtplib
nuo datos laiko importavimo datos laiko
iš el.pašto. MIMEMultipart importas MIMEMultipart
iš el. pašto. MIMEText importuoja MIMEText
fromaddr = "JŪSŲ ADRESAS"
toaddr = "RECIEVINGADDRESS"
msg = MIMEMultipart ()
msg ['From'] = fromadr
msg ['Į'] = toaddr
msg ['Subject'] = "Aptiktas judesys"
body = 'Aptiktas judesys. / nLaikas: % s' % str (datetime.now ())
msg.attach (MIMEText (body, 'plain'))
serveris = smtplib. SMTP ('smtp.gmail.com', 587)
server.starttls ()
server.login (fromaddr, „YOURPASSWORD“)
text = msg.as_string ()
server.sendmail (fromaddr, toaddr, text)
server.quit ()
Judesio vaizdo įrašas el. Paštu išsaugojus vaizdo įrašą:
#pradėkite nuo homedircd ~
#create motion video python scriptsudo nano /home/pi/background/motionvid.py
importuoti smtplib
iš el.pašto. MIMEMultipart importas MIMEMultipart
iš el. pašto. MIMEText importuoja MIMEText
iš el. pašto. „MIMEBase“importuoja „MIMEBase“
iš el. pašto importavimo koduotojų
fromaddr = "JŪSŲ el. paštas"
toaddr = "El. pašto adresas, į kurį siunčiate"
msg = MIMEMultipart ()
msg ['From'] = fromadr
msg ['Į'] = toaddr
msg ['Subject'] = "Suaktyvinta" Motion Cam"
body = "Aptiktas judesio vaizdo įrašas"
msg.attach (MIMEText (body, 'plain'))
importuoti
rootpath = '/var/lib/motion'
failų sąrašas = [os.path.join (rootpath, f) for f in os.listdir (rootpath)]
failų sąrašas = [f už f failų sąraše, jei os.path.isfile (f)]
naujausias = maksimumas (failų sąrašas, raktas = lambda x: os.stat (x).st_mtime)
failo pavadinimas = naujausias
importuoti
rootpath = '/var/lib/motion'
failų sąrašas = [os.path.join (rootpath, f) for f in os.listdir (rootpath)]
failų sąrašas = [f už f failų sąraše, jei os.path.isfile (f)]
naujausias = maks. (failų sąrašas, raktas = lambda x: os.stat (x).st_mtime)
priedas = atviras (naujausias, „rb“)
part = MIMEBase ('programa', 'oktetas-srautas')
part.set_payload ((priedas). skaityti ())
encoders.encode_base64 (dalis)
part.add_header ('Content-Disposition', "priedas; failo pavadinimas = % s" % failo pavadinimas)
msg.attach (dalis)
serveris = smtplib. SMTP ('smtp.gmail.com', 587)
server.starttls ()
server.login (fromaddr, „JŪSŲ Slaptažodis“)
text = msg.as_string ()
server.sendmail (fromaddr, toaddr, text)
server.quit ()
6 veiksmas: trikčių šalinimas ir šaltiniai
Problemų sprendimas:
Kadangi šį projektą sudaro keli etapai, yra keletas taškų, kuriuose viskas gali negerai. Žemiau pateikiamos kelios galimos klaidos ir kaip jas ištaisyti.
- Nustatydami „pi“el. Paštu jums dabartinį IP adresą, labai svarbu redaguoti „rc.local“failą, kaip parodyta anksčiau, nes tai leidžia šiek tiek atidėti, kol programa įsijungs iš naujo. Priešingu atveju pi dar nebus prijungtas prie „Wi -Fi“ir el. Laiškas nebus išsiųstas.
- Redaguodami failą motion.conf būtinai ištrinkite kabliataškius prieš tam tikrus parametrus. Kabliataškiai slopina tam tikrą veiksmą, todėl kitaip pakeitimas neįsigalios.
- „Motion.conf“failas yra labai gerai organizuotas ir išsamus. Nedvejodami pakeiskite nustatymus pagal savo skonį, tačiau supraskite, kad jie gali turėti įtakos judesio fiksavimo sistemos sėkmei.
- Nustatę įspėjimo el. Paštu ir el. Pašto vaizdo įrašo parinktis, svarbu atkreipti dėmesį, kad judesio aptikto vaizdo įrašo el. Laiškas užtruks šiek tiek ilgiau nei išsiųstas nei pradinis įspėjimo el. Laiškas. Taip yra todėl, kad vaizdo įrašas baigiasi praėjus kelioms sekundėms po to, kai judesys nebėra aptinkamas, ir todėl, kad el. Laiško priedas gali būti pakankamai didelis, kad jį būtų galima gauti per kelias minutes. Kai kuriais atvejais, jei judesys palaikomas labai ilgą laiką, jis gali būti per didelis, kad jį būtų galima siųsti. Dėl šios priežasties visada yra gera idėja patikrinti tiesioginę transliaciją gavus pradinį įspėjimo el. Laišką.
Kodėl Motion ?:
Pradėdami šį projektą, mes atsižvelgėme į kelis skirtingus išteklius. Pirmiausia apsvarstėme galimybę naudoti „PiCam“, kuris yra specialiai „aviečių pi“sukurtas fotoaparatas. „PiCam“tikrai yra pajėgus įrenginys ir turi daug programų, tačiau jis apsiriboja tik specialiai jam sukurtų programų naudojimu ir yra palyginti brangus, palyginti su pigiomis daugiafunkcinėmis kameromis. Taigi, norėdami, kad šis projektas būtų prieinamas platesnei auditorijai, nusprendėme naudoti bendrą USB internetinę kamerą. Kitas klausimas buvo, kurią programinę įrangą įtraukti. Iš pradžių svarstėme „OpenCV“, kuri yra nemokama programinė įranga, leidžianti įgyvendinti įvairius kompiuterinio matymo ir vaizdavimo projektus. Viena iš problemų čia yra ta, kad „OpenCV“yra didžiulis failas, užimantis daug atminties ir ilgai nustatytas. Sąranką taip pat sudaro keli etapai, paliekant dar daugiau vietos klaidoms. Mes nustatėme, kad mūsų konkrečiam projektui „Motion“buvo lengviau sukonfigūruoti ir pradėti veikti, tačiau daug patikimesnis jo vykdymas.
Šaltiniai
Kodo šaltiniai:
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
Nuotraukų kreditai:
SSH sraigė:
Pašto logotipas:
„Logitech“internetinė kamera:
SSH langas:
Rekomenduojamas:
Pingo: judesio aptikimo ir didelio tikslumo stalo teniso paleidimo priemonė: 8 žingsniai
Pingo: judesio aptikimo ir didelio tikslumo stalo teniso paleidimo priemonė: Kevinas Nitiema, Estebanas Poveda, Anthony Mattacchione, Raphael Kay
„Pasidaryk pats“judesio aptikimo SMS signalizacijos sistema: 5 žingsniai (su paveikslėliais)
„Pasidaryk pats“judesio aptikimo SMS signalizacijos sistema: Šiame projekte aš sujungsiu pigų PIR judesio jutiklį su TC35 GSM moduliu, kad sukurtų signalizacijos sistemą, kuri atsiųs jums „INTRUDER ALERT“. SMS, kai kas nors bando pavogti jūsų daiktus. Pradėkime
Kaip sukurti judesio aptikimo sistemą naudojant „Arduino“: 7 žingsniai
Kaip sukurti judesio aptikimo sistemą naudojant „Arduino“: sukurkite judesio ir buvimo gamybos skaitiklį naudodami „Feather HUZZAH“, užprogramuotą naudojant „Arduino“ir maitinamą „Ubidots“. Veiksmingas fizinio judesio ir buvimo aptikimas išmaniuosiuose namuose ir išmaniojoje gamyboje gali būti labai naudingas programose nuo
Judesio aptikimo šautuvas: 8 žingsniai
Judesio aptikimo „Nerf Gun“: Sveiki! Aš Cameronas. Šioje instrukcijoje parodysiu, kaip padaryti judesiu aktyvuojamą „Nerf“pistoletą. Tai šiek tiek sunku, bet 100% NUOSTABU
Globėjas V1.0 --- Durų akutės kameros atnaujinimas naudojant „Arduino“(judesio aptikimo įrašymas ir elektros smūgio funkcijos): 5 žingsniai
Globėjas V1.0 ||| Durų skylių kameros atnaujinimas naudojant „Arduino“(judesio aptikimo įrašymas ir elektros smūgio funkcijos): užsisakiau žvilgsnio kamerą, bet kai ją naudoju, supratau, kad nėra automatinio įrašymo funkcijos (suaktyvinama judesio aptikimu). Tada aš pradėjau tirti, kaip tai veikia. Jei norite įrašyti vaizdo įrašą, 1- laikykite nuspaudę maitinimo mygtuką beveik 2 sekundes