Raspberry Pi Linux Motion Picha za Google Ushirikiano: Hatua 5
Raspberry Pi Linux Motion Picha za Google Ushirikiano: Hatua 5
Anonim
Raspberry Pi Linux Motion Picha za Google Ushirikiano
Raspberry Pi Linux Motion Picha za Google Ushirikiano

Wazo ni kupakia picha na video zilizotengenezwa na mwendo ulioamilishwa kamera iliyounganishwa na Raspberry Pi ili kupakia faili kwenye wingu. Programu ya 'Motion' inasaidia kupakia kwenye Hifadhi ya Google kupitia PyDrive. Katika nakala hii 'Mwendo' hutumiwa kupakia kwenye Picha kwenye Google.

Vifaa:

Raspberry Pi 3B +

Kamera ya wavuti ya USB Logitech C920

Uchaguzi wa vifaa haukuamua, nilichukua tu kile kilichokuwa karibu.

Mahitaji:

Kwa urahisi Raspberry pi inapaswa kuwa kwenye mtandao wako wa ndani - kuidhibiti bila kufuatilia / kibodi na kupakia / kupakua faili. Kwa hili unapaswa kuwa na wakala wa ssh kwenye PC yako (mfano putty).

Shukrani nyingi kwa ssandbac kwa mafunzo mazuri. Ikiwa unahitaji maelezo zaidi juu ya jinsi ya kuweka mazingira angalia nakala hii. Nilikopa usanikishaji wa mwendo na kusanidi hatua kutoka kwake na nikaongeza mabadiliko. Hasa, badala ya kutuma barua pepe na arifa mfano huu hutumia kupakia kwenye picha za Google zilizoshirikiwa na kupata arifa aina ya "picha zilizoongezwa" katika upau wa arifa.

Hapa kuna hatua:

Hatua ya 1: Sakinisha Mwendo wa Linux kwenye Raspberry

Hasa katika mfano huu ilitumika mwendo v4.0.

1.1 Sasisha pi

pi @ raspberrypi: ~ $ sudo apt-pata sasisho

pi @ raspberrypi: ~ $ sudo apt-pata sasisho

1.2 Pakua mwendo

pi @ raspberrypi: ~ $ sudo apt-pata mwendo wa kusakinisha

1.3 Sasa hariri faili hii na mabadiliko yafuatayo

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

# Anza katika hali ya daemon (mandharinyuma) na utoe kituo (chaguo-msingi: imezimwa)

daemon imewashwa

# Tumia faili kuhifadhi ujumbe wa magogo, ikiwa haijafafanuliwa stderr na syslog hutumiwa. (chaguomsingi: haijafafanuliwa)

logfile /var/log/motion/motion.log

Upana wa picha (saizi). Masafa halali: Kutegemea kamera, chaguomsingi: 352

upana 1920

# Urefu wa picha (saizi). Masafa halali: Kutegemea kamera, chaguomsingi: 288

urefu 1080

# Kiwango cha juu cha fremu zitakazopigwa kwa sekunde.

30

# Inabainisha idadi ya picha zilizopigwa awali (zilizopigwa) kutoka kabla ya mwendo

pre_capture 5

# Idadi ya muafaka wa kunasa baada ya mwendo haigunduliki tena

post_nasa 5

Picha # za kawaida wakati mwendo unagunduliwa (chaguo-msingi: imewashwa)

pato_picha zimezimwa

# Ubora (kwa asilimia) utumiwe na ukandamizaji wa jpeg

ubora 100

# Tumia ffmpeg kusimba sinema katika wakati halisi

ffmpeg_output_movies mbali

# au masafa 1 - 100 ambapo 1 inamaanisha ubora mbaya na 100 ni bora.

ffmpeg_variable_badilisha 100

# Wakati wa kuunda video, muafaka unapaswa kudhibitiwa kwa utaratibu

ffmpeg_duplicate_frames- uongo

# Bool kuwezesha au kulemaza extpipe (chaguo-msingi: imezimwa)

tumia_ bomba la bomba kwenye

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

lengo_dir / var / lib / mwendo

# Amri ya kutekelezwa wakati faili ya sinema

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

Acha ya mwisho na semicolon kwa sasa (ametoa maoni) ili usifadhaike baada ya kuhakikisha kuwa kurekodi video na kupakia kunafanya kazi.

1.4 Kisha badili

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

pi @ raspberrypi: ~ $ start_motion_daemon = ndio

Hatua ya 2: Sanidi API ya Picha za Google kwa Python

Sanidi API ya Picha za Google kwa Python
Sanidi API ya Picha za Google kwa Python
Sanidi API ya Picha za Google kwa Python
Sanidi API ya Picha za Google kwa Python

2.1 Inapendekezwa kuunda akaunti mpya kwa kusudi hili kushiriki albamu na yako kuu kupata arifa wakati faili mpya zinaongezwa, pamoja na nafasi zaidi ya kuhifadhi. Washa API ya Picha kwenye Google kwa akaunti utakayotumia kupakia.

Unapaswa kuwa na faili ya sifa.json baada ya hii.

2.2 Usanidi wa mazingira ya chatu

Kimsingi usanidi wa mazingira unahitajika kwenye rasipberry tu. Lakini inahitaji idhini ya oauth ambayo ni rahisi zaidi kutimiza kwenye PC. Ili kufanya hivyo kwenye rasipiberi unahitaji kuunganisha kufuatilia / kibodi kwake au kusanidi UI ya mbali ya eneo-kazi. Niliweka mazingira sawa kwenye rasipberry na PC zote mbili. Kwa hivyo hatua 2.2.1..2.2.3 zilifanywa kwenye PC, 2.2.1, 2.2.2, 2.2.5, 2.2.6 kwenye Rpi

2.2.1 sakinisha Python 3

2.2.2 Sakinisha vifurushi vya api za google kulingana na mwongozo * (tazama 5.1)

Kwenye PC

kusanikisha pip3 - sasisha google-api-chatu-mteja google-auth-httplib2 google-auth-oauthlib

Juu ya raspberry

pi @ raspberrypi: ~ $ sudo pip3 sakinisha - sasisha google-api-chatu-mteja google-auth -rickplib2 google-auth-oauthlib

2.2.3 Angalia upakiaji wa hati kwenye picha za google.. Imewekwa kwenye github yangu. Weka kwenye saraka sawa na sifa.json.

2.2.4 Piga picha na jaribu kupakia

python3 photos.py picha.jpg

Sakinisha utegemezi uliopotea ikiwa kuna na ujaribu tena. Kama matokeo unapaswa kupata token.pickle katika saraka ya hati na pia albamu mpya inayoshirikiwa iliyoundwa katika kiolesura chako cha wavuti cha Picha za Google na image.jpg. Unapopata ishara.pickle hauitaji vitambulisho.json kwa photos.py kwenye saraka sawa tena.

2.2.5 Shiriki albamu na akaunti juu ya kile ungependa kupata arifa kwenye media mpya iliyoongezwa. Ongeza akaunti hii kwenye simu yako.

2.2.6 Weka picha.py na ishara.bokonya katika / var / lib / mwendo kwenye rasiberi. Mtumiaji wa 'pi' hawezi kuandika 'dir's ya mwendo ili upakie kwa / nyumbani / pi kwanza

scp photos.py tok.pickle pi @ IP: / nyumbani / pi

Kisha ingia kwenye raspberry na songa faili chini ya sudo

ssh pi @ IP

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

2.2.7 Angalia jinsi upakiaji unavyofanya kazi kwenye rasiberi. Piga picha na fswebcam na ujaribu kuipakia

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

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

Kutakuwa na picha-j.webp

Hatua ya 3: Jaribu

3.1 Anza huduma ya Mwendo

pi @ raspberrypi: ~ $ sudo mwendo wa huduma kuanza

Unaweza kubadilisha amri ya "kuacha", au "kuanzisha upya"

3.2 Wezesha magogo ya mwendo

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

3.2 Angalia pato la kamera kwenye kifaa kingine kilichounganishwa na mtandao huo huo wa ndani. Ingiza kwenye kivinjari:

IP: 8081

Kuangalia magogo subiri hadi mwendo ugundue na faili NAME.mp4 imeandikwa kwa / var / lib / mwendo. Kisha uzindua upakiaji hati mwenyewe

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

Angalia athari za chatu. Subiri hadi hafla_yatokea kwa mwendo.log. Kisha nenda kwenye albamu ya "helloworld" kwenye picha zako za google na uangalie ikiwa kuna video iliyopakiwa.

3.4 Ikiwa upakiaji umefanikiwa kutotoa maoni katika /etc/motion.conf laini:

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

# Amri ya kutekelezwa wakati faili ya sinema iko tayari

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

pi @ raspberrypi: ~ $ usawazishaji

pi @ raspberrypi: ~ $ sudo kuanzisha mwendo wa huduma

3.5 Kuangalia magogo ya mwendo na kwenye albamu angalia ikiwa video imepakia kiatomati.

3.6 Shiriki albamu kwa hiari na akaunti yako kuu kupata arifa wakati video mpya au picha imeongezwa.

Hatua ya 4: Chaguo: Sanidi Upataji wa Wavuti kwa Kamera ya Kusambaza Saa Halisi

Chaguo: Sanidi Upataji wa Wavuti kwa Kamera ya Kusambaza ya Muda Halisi
Chaguo: Sanidi Upataji wa Wavuti kwa Kamera ya Kusambaza ya Muda Halisi
Chaguo: Sanidi Upataji wa Wavuti kwa Kamera ya Kusambaza ya Muda Halisi
Chaguo: Sanidi Upataji wa Wavuti kwa Kamera ya Kusambaza ya Muda Halisi
Chaguo: Sanidi Upataji wa Wavuti kwa Kamera ya Kusambaza ya Muda Halisi
Chaguo: Sanidi Upataji wa Wavuti kwa Kamera ya Kusambaza ya Muda Halisi

Hatua hii inategemea mafunzo ya Parreno ya Michel. Nilichagua tu FreeDNS badala ya NoIP kama inavyopendekezwa hapa.

4.1 Sanidi ufikiaji ulioidhinishwa wa seva ya mwendo wa kutiririsha video:

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

# Weka njia ya uthibitishaji (chaguomsingi: 0)

# 0 = imezimwa

# 1 = Uthibitishaji wa kimsingi

# 2 = MD5 digest (uthibitisho salama)

mkondo_wa_mfumo wa 2

# Uthibitishaji wa mkondo. Jina la mtumiaji la syntax: nywila

# Default: haijafafanuliwa (Imelemazwa)

jina la mtumiaji la webcontrol_authentication: password

# Upeo wa juu wa mito ya mkondo (chaguomsingi: 1)

mtiririko_maanisha 30

# Zuia uunganisho wa mkondo kwa localhost tu (chaguomsingi: imewashwa)

stream_localhost imezimwa

Ikiwa hautatumia kiolesura cha kudhibiti wavuti kutoka kwa mtandao wa nje acha hiyo imezimwa (kama kwa chaguo-msingi)

# Zuia miunganisho ya kudhibiti kwa localhost tu (chaguomsingi: imewashwa)

webcontrol_localhost imewashwa

Pia, kwa kuwa raspberry inakwenda mkondoni, ninapendekeza kubadilisha nywila ya rasipiberi chaguo-msingi

pi @ raspberrypi: ~ $ passwd

Ingawa ssh bandari 22 haijaelekezwa kwa raspberry, bado.

4.2 Nenda kwenye tovuti ya FreeDNS

4.3 Jisajili

4.4 Ongeza kijikoa (Kwa Wanachama -> Vikoa vidogo)

4.5 Chagua mteja wa DNS kusakinisha kwenye Raspberry (Kwa Wanachama -> Dynamic DNS -> Rasilimali za DNS za Nguvu -> Wateja wa Dynamic DNS)

Nilichagua wget_script update.sh kutoka kwa Adam Dean (chini ya ukurasa)

Kuna washika nafasi _YOURAPIKEYHERE_ na _YOURDOMAINHERE_. Kuwafanya waende kwa (Kwa Wanachama -> Dynamic DNS)

Na kwenye ukurasa hapa chini utapata mifano ya maandishi na APIKEY yako na DOMAIN (ile iliyoongezwa kwa 4.4). Nilichukua maadili haya kutoka kwa Wget Script na kuchukua nafasi ya _YOURAPIKEYHERE_ na _YOURDOMAINHERE_ katika update.sh

4.6 Kisha endesha sasisho.sh kwenye rasiberi. Inaweza kuhitaji dnsutils kwa nslookup. Isakinishe basi:

pi @ raspberrypi: ~ $ sudo apt-pata dnsutils

4.7 Kisha sanidi router yako ili kurudisha tena maombi ya ulimwengu ya nje hadi bandari 8081 hadi ip ya rasipberry

4.8 Hifadhi ip kwa MAP yako ya rasipiberi katika mipangilio ya DHCP ili Rpi iwe na ip sawa

4.9 Kisha ingiza kwenye kivinjari kwenye kifaa ambacho hakijaunganishwa na mtandao wa karibu:

uwanja wako: 8081

Ingiza hati zako ambazo umefafanua katika motion.conf.

Jaribu jinsi video inavyofanya kazi.

4.10 ili kusasisha kazi ya kusanidi kiotomatiki ya DDNS. Tazama mfano wa haraka_cron kwenye (Kwa Wanachama -> Dynamic DNS)

Hatua ya 5: Vidokezo

5.1 Kuwa mwangalifu kusanikisha vifurushi vya chatu kwenye rasiberi. Nilikaa siku kutatua jambo hili - suala lilikuwa kwamba kutoka kwa maandishi hati iliendesha vizuri, lakini kuitwa kutoka kwa mwendo wa tukio la mwendo haukufanya hivyo. Kilichofanya iwe mbaya zaidi ni kwamba athari kutoka kwa hati hiyo hazikuweza kupatikana katika kesi ya mwisho.

Sababu ilikuwa kwamba kufuata mwongozo niliweka vifurushi kwa mtumiaji wa 'pi' (ambayo kwa msingi iko kwenye saraka ya / nyumbani / pi na imezuiliwa kwa watumiaji wengine) lakini kuendesha hati kama mtoto wa huduma ya 'mwendo' vifurushi lazima iwe inapatikana kwa mtumiaji wa 'mwendo' pia. Kwa hivyo mwishowe niliiweka ikiweka vifurushi kama

sudo pip3…

Hii sio njia sahihi bado inafanya kazi. Ufungaji bila Sudo kama pip3 - mfumo ulikuwa unanipa makosa kwa sababu fulani.

Vivyo hivyo hati hiyo inaitwa pia chini ya sudo (tazama mwendo.conf).

Wakati wa utaftaji huu wa mawaidha nilifanya mabadiliko mengi yasiyo ya lazima na sina hakika ni nini ni muhimu na sasa ni wavivu sana kurudisha nyuma zaidi na kuona ni lini itaacha kufanya kazi. Hasa, kupewa haki za msimamizi wa mwendo:

pi @ raspberrypi: ~ $ vikundi mwendo

mwendo: mwendo adm watumiaji wa video ya sauti ya net netv pi

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

pi WOTE = (WOTE) NOPASSWD: WOTE

mwendo WOTE = (WOTE) NOPASSWD: WOTE

Pia ilikuwa kubadilisha wamiliki wa faili na ruhusa sawa na kupakia kwenye Hifadhi ya Google. Labda inaweza kukusaidia ikiwa una shida kama hiyo.

5.2 API ya Picha kwenye Google inakuwezesha kuongeza faili kwenye albamu zilizoshirikiwa ili kila mtu aliye na kiungo aweze kuifikia. Usishiriki kwa kiunga na ufute sinema za zamani au uzihamishe kwa takataka au kutoka kwa albamu. Katika kesi ya mwisho wanabaki kwenye akaunti.

5.3 Msaidizi wa picha za Google hugundua nyuso, ambayo ni muhimu ikiwa ubora wa kamera ni sawa. Kama bonasi hufanya aina ya mkusanyiko wa media na vipawa n.k.

5.4 Nilijaribu kutumia modemu ya 4G LTE USB kwa ufikiaji wa mtandao na haya ndio matokeo yangu. Kuna https://howtoraspberrypi.com/create-a-wi-fi-hotspot-in-less-than-10-minutes-with-pi-raspberry/ mwongozo rahisi sana jinsi ya kuifanya kwa kutumia RaspAP. 5.4.3 Dynamic DNS haikufanya kazi katika mtandao wa 4G wa carrie yangu. Kuna maelezo kwanini

5.5 Baada ya kutumia mfumo huu kwa wiki kadhaa, ingawa video ni rahisi kutazama na kupakia, Picha za Google hufanya kazi vizuri na picha. Mfano inawezesha vitu / nyuso kupanga picha za kuchambua tu, na kisha tu kutafuta sura / vitu kutoka kwa picha kwenye video, lakini sio kinyume. Kwa hivyo nitajaribu picha ikipakia video badala.

Ilipendekeza: