Sisukord:

Raspberry Pi Linux Motion Google'i fotode integreerimine: 5 sammu
Raspberry Pi Linux Motion Google'i fotode integreerimine: 5 sammu

Video: Raspberry Pi Linux Motion Google'i fotode integreerimine: 5 sammu

Video: Raspberry Pi Linux Motion Google'i fotode integreerimine: 5 sammu
Video: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, Juuli
Anonim
Raspberry Pi Linux Motion Google'i fotode integreerimine
Raspberry Pi Linux Motion Google'i fotode integreerimine

Idee on failide pilve üleslaadimiseks üles laadida fotod ja videod, mis on tehtud Raspberry Pi -ga ühendatud liikumise aktiveeritud nukiga. Tarkvara „Motion” toetab üleslaadimist Google Drive'i PyDrive'i kaudu. Selles artiklis kasutatakse funktsiooni „Liikumine” teenusesse Google Photos üleslaadimiseks.

Riistvara:

Vaarika Pi 3B+

USB veebikaamera Logitech C920

Riistvara valikut ei määratud, võtsin lihtsalt käepärast oleva.

Eeltingimused:

Mugavuse huvides peaks Raspberry pi olema teie kohalikus võrgus - et seda ilma monitori/klaviatuurita juhtida ja faile üles laadida/alla laadida. Selleks peaks teie arvutis olema ssh agent (nt kitt).

Suur tänu ssandbacile suurepärase õpetuse eest. Kui vajate lisateavet keskkonna seadistamise kohta, vaadake seda artiklit. Laenasin sealt liikumise installimist ja sammude seadistamist ning lisasin mõned muudatused. Eelkõige kasutab see näide failide ja märguannete saatmise asemel üleslaadimist Google'i fotode jagatud albumisse ja teavitusribale märguannete lisamist.

Siin on sammud:

Samm: installige Linux Motion Raspberryle

Selles näites kasutati eriti liikumist v4.0.

1.1 Uuenda pi

pi@raspberrypi: ~ $ sudo apt-get update

pi@raspberrypi: ~ $ sudo apt-get upgrade

1.2 Laadi alla liikumine

pi@raspberrypi: ~ $ sudo apt-get install motion

1.3 Nüüd redigeerige seda faili järgmiste muudatustega

pi@raspberrypi: ~ $ sudo nano /etc/motion/motion.conf

# Alustage deemonirežiimis (taustal) ja vabastage terminal (vaikimisi: väljas)

deemon peal

# Kasutage logisõnumite salvestamiseks faili, kui pole määratud stderr ja syslog. (vaikimisi: pole määratletud)

logifail /var/log/motion/motion.log

# Pildi laius (pikslit). Kehtiv vahemik: sõltub kaamerast, vaikimisi: 352

laius 1920

# Pildi kõrgus (pikslit). Kehtiv vahemik: sõltub kaamerast, vaikimisi: 288

kõrgus 1080

# Maksimaalne kaadrite arv sekundis.

kaadrisagedus 30

# Määrab eelnevalt salvestatud (puhverdatud) piltide arvu enne liikumist

eelpilt 5

# Pärast liikumist jäädvustatavate kaadrite arvu enam ei tuvastata

post_capture 5

# Väljundi liikumise tuvastamisel „tavalised” pildid (vaikimisi: sees)

output_pictures välja lülitatud

# Jpeg -tihendamisel kasutatav kvaliteet (protsentides)

kvaliteet 100

# Kasutage ffmpeg filmide reaalajas kodeerimiseks

ffmpeg_output_movies välja lülitatud

# või vahemik 1–100, kus 1 tähendab halvimat kvaliteeti ja 100 on parim.

ffmpeg_variable_bitrate 100

# Videote loomisel tuleks kaadreid järjekorras dubleerida

ffmpeg_duplicate_frames vale

# Välklambi lubamine või keelamine (vaikimisi: väljas)

use_extpipe on sisse lülitatud

extpipe ffmpeg -y -f rawvideo -pix_fmt yuv420p -video_size %wx %h -framerate %fps -i pipe: 0 -vcodec libx264 -preset ultrafast -f mp4 %f.mp4

target_dir/var/lib/motion

# Käsk, mis tuleb käivitada filmifaili korral

; on_movie_end sudo python3 /var/lib/motion/photos.py %f.mp4 &

Viimane jäta praegu semikooloniga (kommenteeritud), enne kui olete veendunud, et videosalvestus ja üleslaadimine toimivad.

1.4 Seejärel muutke

pi@raspberrypi: ~ $ sudo nano/etc/default/motion

pi@raspberrypi: ~ $ start_motion_daemon = jah

2. toiming: seadistage Google Photos API Pythoni jaoks

Seadistage Google Photos API Pythoni jaoks
Seadistage Google Photos API Pythoni jaoks
Seadistage Google Photos API Pythoni jaoks
Seadistage Google Photos API Pythoni jaoks

2.1 Soovitatav on luua selleks uus konto, et jagada albumit oma peamise albumiga, et saada märguandeid uute failide lisamise kohta ja rohkem salvestusruumi. Lubage Google Photos API selle konto jaoks, mida kavatsete üleslaadimiseks kasutada.

Pärast seda peaks teil olema fail credentials.json.

2.2 Pythoni keskkonna seadistamine

Põhimõtteliselt on keskkonna seadistamine vajalik ainult vaarikate puhul. Kuid selleks on vaja autoriseerimist, mida on mugavam arvutis täita. Selleks, et seda teha vaarikas, peate sellega ühendama monitori/klaviatuuri või seadistama mõne kaugtöölaua kasutajaliidese. Paigaldasin just sama keskkonna nii vaarikale kui ka arvutile. Nii et sammud 2.2.1..2.2.3 tehti arvutis, 2.2.1, 2.2.2, 2.2.5, 2.2.6 Rpi -s

2.2.1 installige Python 3

2.2.2 Installige Google'i API paketid vastavalt kasutusjuhendile*(vt 5.1)

Arvutis

pip3 install-uuenda google-api-python-client google-auth-httplib2 google-auth-oauthlib

Vaarika peal

pi@raspberrypi: ~ $ sudo pip3 install-upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

2.2.3 Vaadake skripti üleslaadimist Google'i fotodesse. See on paigutatud minu githubi. Pange see samasse kataloogi koos mandaadiga.json.

2.2.4 Tehke pilt ja proovige üleslaadimist

python3 photos.py image.jpg

Installige puuduvad sõltuvused, kui neid on, ja proovige uuesti. Selle tulemusena peaksite skripti kataloogi saama token.pickle ja ka uue jagatud albumi, mis on loodud teie Google'i fotode veebiliideses saidiga image.jpg. Nagu saate token.pickle, ei vaja te samas kataloogis photos.py jaoks enam mandaate.json.

2.2.5 Jagage albumit kontoga, mille kohta soovite saada märguandeid uue meedia kohta. Lisage see konto oma telefoni.

2.2.6 Pange vaarikale/var/lib/motion faili photos.py ja token.pickle. "Pi" kasutaja ei saa liikumiste haldurile kirjutada, nii et laadige see kõigepealt üles /home /pi

scp photos.py token.pickle pi@IP:/home/pi

Seejärel logige sisse vaarikasse ja teisaldage failid sudo alla

ssh pi@IP

pi@raspberrypi: ~ $ sudo mv photos.py token.pickle/var/lib/motion

2.2.7 Kontrollige, kuidas üleslaadimine vaarika puhul toimib. Tehke fswebcamiga pilt ja proovige see üles laadida

pi@raspberrypi: ~ $ sudo fswebcam /var/lib/motion/image.jpg

pi@raspberrypi: ~ $ sudo python3 /var/lib/motion/photos.py /var/lib/motion/image.jpg

Albumis “helloworld” võiks olla image-j.webp

3. samm: testige

3.1 Käivitage Motion -teenus

pi@raspberrypi: ~ $ sudo teenuse liikumise algus

Käsu saate muuta "stop" või "restart"

3.2 Luba liikumislogid

pi@raspberrypi: ~ $ tail -f /var/log/motion/motion.log

3.2 Kaamera väljundi vaatamine mõnes teises sama kohaliku võrguga ühendatud seadmes. Sisestage brauserisse:

IP: 8081

3.3 Logisid vaadates oodake, kuni liikumine tuvastatakse ja fail NAME.mp4 kirjutatakse faili/var/lib/motion. Seejärel käivitage skripti käsitsi üleslaadimine

pi@raspberrypi: ~ $ sudo python3 /var/lib/motion/photos.py /var/lib/motion/NAME.mp4

Kontrollige püütoni jälgi. Oodake, kuni event_end kuvatakse liikumises.log. Seejärel minge oma Google'i fotode albumisse "helloworld" ja kontrollige, kas video on üles laaditud.

3.4 Kui üleslaadimine õnnestub, tühistage kommentaar real /etc/motion.conf:

pi@raspberrypi: ~ $ sudo nano /etc/motion.conf

# Käsk, mis tuleb täita, kui filmifail on valmis

on_movie_end sudo python3 /var/lib/motion/photos.py %f.mp4 &

pi@raspberrypi: ~ $ sync

pi@raspberrypi: ~ $ sudo teenuse liikumise taaskäivitamine

3.5 Vaadates liikumislogisid ja albumit, kontrollige, kas video laaditi automaatselt üles.

3.6 Jagage soovi korral albumit oma põhikontoga, et saada märguanne uue video või foto lisamise kohta.

4. samm: valikuline: seadistage veebipääs reaalajas voogesituskaamerale

Valikuline: seadistage veebipääs reaalajas voogesituskaamerale
Valikuline: seadistage veebipääs reaalajas voogesituskaamerale
Valikuline: seadistage veebipääs reaalajas voogesituskaamerale
Valikuline: seadistage veebipääs reaalajas voogesituskaamerale
Valikuline: seadistage veebipääs reaalajas voogesituskaamerale
Valikuline: seadistage veebipääs reaalajas voogesituskaamerale

See samm põhineb Micheli Parreno õpetusel. Valisin just FreeDNS -i NoIP asemel, nagu siin soovitatud.

4.1 Volitatud juurdepääsu seadistamine video voogesituse liikumisserverile:

pi@raspberrypi: ~ $ sudo nano /etc/motion/motion.conf

# Määrake autentimismeetod (vaikimisi: 0)

# 0 = keelatud

# 1 = Põhiline autentimine

# 2 = MD5 kokkuvõte (turvalisem autentimine)

stream_auth_meetod 2

# Oja autentimine. Süntaksi kasutajanimi: parool

# Vaikimisi: pole määratletud (keelatud)

webcontrol_authentication kasutajanimi: parool

# Maksimaalne kaadrisagedus voogude jaoks (vaikimisi: 1)

30

# Piira vooühendused ainult localhostiga (vaikimisi: sisse lülitatud)

stream_localhost välja lülitatud

Kui te ei kasuta välisvõrgu veebijuhtimisliidest, jätke see keelatud (vaikimisi)

# Piira juhtühendused ainult localhostiga (vaikimisi: sisse lülitatud)

webcontrol_localhost on sisse lülitatud

Samuti, kuna vaarikas läheb võrku, soovitan vaarika vaikeparooli muuta

pi@raspberrypi: ~ $ passwd

Kuigi ssh porti 22 ei suunata vaarikale, siiski.

4.2 Minge saidile FreeDNS

4.3 Registreeruge

4.4 Lisa alamdomeen (liikmetele -> alamdomeenid)

4.5 Valige Raspberryle installitav DNS -klient (liikmetele -> dünaamiline DNS -> dünaamilised DNS -i ressursid -> dünaamilised DNS -kliendid)

Valisin wget_script update.sh Adam Deanilt (lehe allosas)

On kohatäiteid _YOURAPIKEYHERE_ ja _YOURDOMAINHERE_. Nende hankimiseks avage (Liikmetele -> Dünaamiline DNS)

Allolevalt lehelt leiate skriptide näiteid oma APIKEY ja DOMAIN -iga (lisatud punktis 4.4). Võtsin need väärtused Wget Scriptist ja asendasin saidil update.sh _YOURAPIKEYHERE_ ja _YOURDOMAINHERE_

4.6 Seejärel käivitage update.sh vaarikal. See võib nslookupi jaoks nõuda dnsutile. Installige see siis:

pi@raspberrypi: ~ $ sudo apt-get dnsutils

4.7 Seejärel seadistage oma ruuter nii, et see suunaks välismaailma päringud 8081 porti vaarika ip -le

4.8 Reserveerige ip oma vaarika MAC jaoks DHCP -seadetes, nii et Rpi -l on alati sama IP

4.9 Seejärel sisestage brauserisse seade, mis ei ole kohaliku võrguga ühendatud:

teie domeen: 8081

Sisestage oma mandaat, mille määrasite failis motion.conf.

Testige, kuidas video töötab.

4.10, et värskendada DDNS -i automaatselt seadistatav cron -ülesanne. Vaadake Quick_cron_example kohta (liikmetele -> dünaamiline DNS)

Samm: näpunäited

5.1 Olge pythonipakettide paigaldamisel vaarikale tähelepanelik. Veetsin päev selle silumisel - probleem oli selles, et konsoolist skript töötas hästi, kuid liikumise sündmuse tagasihelistamisest helistamine mitte. Halvendas seda asjaolu, et skripti jäljed polnud viimasel juhul kättesaadavad.

Põhjus oli selles, et juhendit järgides installisin paketid kasutajale „pi” (mis on vaikimisi kataloogis /home /pi ja piiratud teistele kasutajatele), kuid skripti käivitamiseks teenuse „motion” alamena peavad paketid olema saadaval ka "liikumise" kasutajale. Nii et lõpuks parandasin selle pakettide installimisel

sudo pip3 …

See pole õige viis, mis töötab endiselt. Paigaldamine ilma sudo kui pip3 -süsteem andis mulle mingil põhjusel vigu.

Vastavalt sellele nimetatakse skripti ka sudo all (vt motion.conf).

Selle tõrkeotsingu ajal tegin palju tarbetuid muudatusi ja pole kindel, mis on vajalik, ja nüüd olen liiga laisk, et neid järk -järgult tagasi kerida ja näha, millal see enam ei tööta. Eelkõige antakse liikumishalduri õigused:

pi@raspberrypi: ~ $ rühmitab liikumise

motion: motion adm sudo audio video kasutajad netdev pi

pi@raspberrypi: ~ $ sudo cat /etc/sudoers.d/010_pi-nopasswd

pi ALL = (KÕIK) NOPASSWD: KÕIK

liikumine KÕIK = (KÕIK) NOPASSWD: KÕIK

Samuti oli failide omanike ja lubade muutmine sarnane Google Drive'i üleslaadimisega. Tõenäoliselt aitab see teil sarnase probleemi korral.

5.2 Google Photos API võimaldab lisada faile jagatud albumitesse ainult nii, et igaüks, kellel on link, pääseks sellele juurde. Ärge jagage seda lingi kaudu ja kustutage vanu filme ega teisaldage neid prügikasti või albumist. Viimasel juhul jäävad nad kontole.

5.3 Google'i fotode assistent tuvastab nägusid, mis on kaamera kasuliku kvaliteedi korral üsna kasulik. Boonusena teeb see väljamõeldud meedialaadseid kogumikke ja-g.webp

5.4 Üritasin kasutada Interneti-ühenduse jaoks 4G LTE USB-modemit ja siin on minu tulemused. RaspAP-i abil on tõesti lihtne juhend https://howtoraspberrypi.com/create-a-wi-fi-hotspot-in-less-than-10-minutes-with-pi-raspberry/. 5.4.3 Dünaamiline DNS ei töötanud minu auto 4G võrgus. On seletus, miks

5.5 Pärast selle süsteemi paarinädalast kasutamist selgus, et kuigi videoid on mugavam vaadata ja üles laadida, töötab Google Photos piltidega paremini. Näiteks võimaldab see asju/nägusid rühmitada ainult piltide analüüsimiseks ja alles seejärel videote piltidelt nägude/asjade otsimiseks, kuid mitte vastupidi. Nii et ma katsetan pilte, mis laadivad üles pigem videoid.

Soovitan: