Tartalomjegyzék:

Raspberry Pi Linux Motion Google Photos integráció: 5 lépés
Raspberry Pi Linux Motion Google Photos integráció: 5 lépés

Videó: Raspberry Pi Linux Motion Google Photos integráció: 5 lépés

Videó: Raspberry Pi Linux Motion Google Photos integráció: 5 lépés
Videó: Leap Motion SDK 2024, November
Anonim
Raspberry Pi Linux Motion Google Photos integráció
Raspberry Pi Linux Motion Google Photos integráció

Az ötlet az, hogy a Raspberry Pi -hez csatlakoztatott mozgás aktivált kamerával készített fényképeket és videókat fel kell tölteni a fájlok feltöltéséhez a felhőbe. A „Motion” szoftver támogatja a PyDrive -on keresztüli feltöltést a Google Drive -ba. Ebben a cikkben a „Mozgás” kifejezést használják a Google Fotókba való feltöltésre.

Hardver:

Raspberry Pi 3B+

USB webkamera Logitech C920

A hardverválasztást nem határozták meg, csak elvettem, ami kéznél volt.

Feltételek:

A kényelem érdekében a Raspberry pi -nek a helyi hálózatban kell lennie - monitor/billentyűzet nélkül, és fájlok feltöltése/letöltése érdekében. Ehhez rendelkeznie kell ssh ügynökkel a számítógépén (pl. Gitt).

Nagyon köszönöm ssandbac -nak a nagyszerű bemutatót. Ha további információra van szüksége a környezet beállításáról, olvassa el ezt a cikket. Kölcsönkértem belőle a mozgástelepítést és a lépések konfigurálását, és néhány változtatást hozzáadtam. Különösen a fájlok és riasztások e -mailben való elküldése helyett ez a példa a Google fotók megosztott albumába való feltöltést használja, és az értesítési sávon értesítéseket kap a „hozzáadott fotókról”.

Íme a lépések:

1. lépés: A Linux Motion telepítése a Raspberry -re

Ebben a példában különösen a motion v4.0 volt használatos.

1.1 Frissítés pi

pi@raspberrypi: ~ $ sudo apt-get update

pi@raspberrypi: ~ $ sudo apt-get upgrade

1.2 Letöltési mozgás

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

1.3 Most szerkessze ezt a fájlt a következő módosításokkal

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

# Indítsa el démon (háttér) módban, és engedje el a terminált (alapértelmezett: ki)

démon be

# Használjon fájlt a naplóüzenetek mentéséhez, ha nincs definiálva stderr és syslog. (alapértelmezett: nincs megadva)

logfile /var/log/motion/motion.log

# Kép szélessége (képpont). Érvényes tartomány: kamerafüggő, alapértelmezett: 352

szélessége 1920

# A kép magassága (képpont). Érvényes tartomány: kamerafüggő, alapértelmezett: 288

magassága 1080

# A másodpercenként rögzíthető képkockák maximális száma.

képkockasebesség 30

# Megadja a mozgás előtti, előre rögzített (pufferelt) képek számát

előfogás 5

# A mozgás után rögzítendő képkockák száma már nem észlelhető

post_capture 5

# Mozgás észlelésekor „normál” képeket ad ki (alapértelmezett: be)

output_pictures ki

# A jpeg tömörítés által használt minőség (százalékban)

minőség 100

# Az ffmpeg segítségével valós időben kódolhatja a filmeket

ffmpeg_output_movies ki

# vagy az 1 - 100 tartomány, ahol az 1 a legrosszabb minőséget, a 100 pedig a legjobbat jelenti.

ffmpeg_variable_bitrate 100

# Videók készítésekor a képkockákat sokszorosítani kell sorrendben

ffmpeg_duplicate_frames hamis

# Bool az extpipe engedélyezéséhez vagy letiltásához (alapértelmezett: ki)

use_extpipe on

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

target_dir/var/lib/motion

# Parancs, amelyet filmfájl esetén kell végrehajtani

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

Hagyja az utolsót pontosvesszővel (megjegyzés), hogy hagyja jóvá a megjegyzést, miután megbizonyosodott arról, hogy a videofelvétel és a feltöltés működik.

1.4 Ezután változtasson

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

pi@raspberrypi: ~ $ start_motion_daemon = igen

2. lépés: A Google Fotók API beállítása a Python számára

Állítsa be a Google Fotók API -t a Python számára
Állítsa be a Google Fotók API -t a Python számára
Állítsa be a Google Fotók API -t a Python számára
Állítsa be a Google Fotók API -t a Python számára

2.1 Javasoljuk, hogy hozzon létre egy új fiókot erre a célra, hogy megosszon egy albumot a fővel, hogy értesítést kapjon az új fájlok hozzáadásáról, valamint több tárhelyről. Engedélyezze a Google Fotók API -t a feltöltéshez használni kívánt fiókhoz.

Ezt követően rendelkeznie kell a credentials.json fájllal.

2.2 Python környezet beállítása

A környezet beállítása alapvetően csak málna esetén szükséges. Ehhez azonban engedélyre van szükség, amelyet kényelmesebb PC -n végrehajtani. Ehhez a málnán csatlakoztatnia kell a monitort/billentyűzetet, vagy be kell állítania egy távoli asztali felhasználói felületet. Most telepítettem ugyanazt a környezetet a málnára és a PC -re is. Tehát a 2.2.1..2.2.3 lépéseket PC -n, 2.2.1, 2.2.2, 2.2.5, 2.2.6 Rpi -n hajtottuk végre

2.2.1 a Python 3 telepítése

2.2.2 Telepítse a Google API csomagokat a kézikönyv szerint*(lásd 5.1)

PC -n

pip3 telepítés-frissítés google-api-python-client google-auth-httplib2 google-auth-oauthlib

A málnán

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

2.2.3 Nézze meg a szkript feltöltését a Google -fotókba. A github -ra van helyezve. Tegye ugyanabba a könyvtárba a credentials.json segítségével.

2.2.4 Készítsen néhány képet, és próbálja ki a feltöltést

python3 photos.py image.jpg

Telepítse a hiányzó függőségeket, ha vannak, és próbálja újra. Ennek eredményeként meg kell kapnia a token.pickle fájlt a szkript könyvtárában, valamint egy új megosztott albumot, amelyet a Google Fotók webes felületén hoztak létre az image-j.webp

2.2.5 Ossza meg az albumot a fiókkal, hogy mit szeretne értesíteni az új médiáról. Adja hozzá ezt a fiókot a telefonjához.

2.2.6 Tegye a photos.py és a token.pickle fájlokat a/var/lib/motion mappába. A „pi” felhasználó nem írhat a „motion” könyvtárába, ezért először töltse fel a /home /pi mappába

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

Ezután jelentkezzen be a málnába, és helyezze át a fájlokat a sudo alatt

ssh pi@IP

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

2.2.7 Ellenőrizze, hogyan működik a feltöltés a málnán. Készítsen néhány képet az fswebcam segítségével, és próbálja meg feltölteni

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

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

Az image-j.webp

3. lépés: Teszt

3.1 Indítsa el a Motion szolgáltatást

pi@raspberrypi: ~ $ sudo service motion start

A parancsot leállíthatja vagy újraindíthatja

3.2 Mozgásnaplók engedélyezése

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

3.2 A kamera kimenetének megtekintése egy másik, ugyanahhoz a helyi hálózathoz csatlakoztatott eszközön. Írja be a böngészőbe:

IP: 8081

3.3 A naplók megtekintésével várjon, amíg a mozgást észleli, és a NAME.mp4 fájlt a/var/lib/motion fájlba írja. Ezután indítsa el a szkript manuális feltöltését

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

Ellenőrizze a python nyomokat. Várja meg, amíg az event_end megjelenik a motion.log fájlban. Ezután menjen a „helloworld” albumhoz a Google -fotóiban, és ellenőrizze, hogy van -e feltöltött videó.

3.4 Ha a feltöltés sikeres, szüntesse meg a megjegyzést az /etc/motion.conf fájlban:

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

# Parancs, amelyet akkor kell végrehajtani, ha a filmfájl készen áll

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

pi@málna: ~ $ szinkron

pi@raspberrypi: ~ $ sudo service motion restart

3.5 Nézze meg a mozgásnaplókat és az albumot, és ellenőrizze, hogy a videó automatikusan feltöltődött -e.

3.6 Opcionálisan ossza meg az albumot a fő fiókjával, hogy értesítést kapjon az új videó vagy fotó hozzáadásáról.

4. lépés: Választható: Állítsa be a webes hozzáférést a valós idejű streaming kamerához

Opcionális: konfigurálja a webes hozzáférést a valós idejű streaming kamerához
Opcionális: konfigurálja a webes hozzáférést a valós idejű streaming kamerához
Opcionális: konfigurálja a webes hozzáférést a valós idejű streaming kamerához
Opcionális: konfigurálja a webes hozzáférést a valós idejű streaming kamerához
Választható: konfigurálja a webes hozzáférést a valós idejű streaming kamerához
Választható: konfigurálja a webes hozzáférést a valós idejű streaming kamerához

Ez a lépés Michel Parreno oktatóanyagán alapul. Csak a FreeDNS -t választottam a NoIP helyett, ahogy itt ajánlott.

4.1 Engedélyezett hozzáférés konfigurálása a video streaming mozgókiszolgálóhoz:

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

# Állítsa be a hitelesítési módszert (alapértelmezett: 0)

# 0 = letiltva

# 1 = Alapszintű hitelesítés

# 2 = MD5 kivonat (a biztonságosabb hitelesítés)

stream_auth_method 2

# A folyam hitelesítése. Szintaxis felhasználónév: jelszó

# Alapértelmezett: nincs definiálva (Letiltva)

webcontrol_authentication felhasználónév: jelszó

# Maximális képkockasebesség adatfolyamokhoz (alapértelmezett: 1)

stream_maxrate 30

# A stream -kapcsolatok korlátozása csak a localhostra (alapértelmezett: be)

stream_localhost ki

Ha nem fogja használni a webes vezérlő felületet külső hálózatról, hagyja azt letiltva (alapértelmezés szerint)

# A vezérlőkapcsolatok korlátozása csak a localhostra (alapértelmezett: be)

webcontrol_localhost be

Továbbá, mivel a málna online elérhető, javaslom, hogy módosítsa az alapértelmezett málnajelszót

pi@raspberrypi: ~ $ passwd

Bár az ssh 22 -es port nincs átirányítva a málnára, mégis.

4.2 Lépjen a FreeDNS webhelyre

4.3 Regisztráljon

4.4 Aldomain hozzáadása (Tagoknak -> Aldomainek)

4.5 Válassza ki a Raspberry -re telepítendő DNS -ügyfelet (Tagoknak -> Dinamikus DNS -> Dinamikus DNS -erőforrások -> Dinamikus DNS -ügyfelek)

A wget_script update.sh -t választottam Adam Dean -től (az oldal alján)

Vannak helyőrzők _YOURAPIKEYHERE_ és _YOURDOMAINHERE_. Ezek eléréséhez lépjen a (Tagok -> Dinamikus DNS) oldalra

Az alábbi oldalon példákat talál az APIKEY és DOMAIN szkriptekre (a 4.4 -ben hozzáadott). Ezeket az értékeket a Wget Script -ből vettem, és lecseréltem _YOURAPIKEYHERE_ és _YOURDOMAINHERE_ fájlokat a update.sh -ban

4.6 Ezután futtassa az update.sh fájlt a málnán. Előfordulhat, hogy az nslookuphoz dnsutils szükséges. Telepítse akkor:

pi@raspberrypi: ~ $ sudo apt-get dnsutils

4.7 Ezután konfigurálja az útválasztót, hogy a külső világ kéréseit a 8081 -es portra irányítsa át a málna ip -jére

4.8 Foglalja le az ip -t a málna MAC -jára DHCP -beállításban, hogy az Rpi mindig ugyanazt az ip -t kapja

4.9 Ezután írja be a böngészőbe egy olyan eszközön, amely nem csatlakozik a helyi hálózathoz:

az Ön domainje: 8081

Adja meg a motion.conf fájlban megadott hitelesítő adatait.

Tesztelje a videó működését.

4.10 a DDNS frissítésének automatikus beállítása cron feladat. Lásd: quick_cron_example on (Tagok -> Dinamikus DNS)

5. lépés: Tippek

5.1 Legyen figyelmes a python csomagok málnára történő telepítésénél. Egy napot töltöttem a hibakereséssel - a probléma az volt, hogy a konzolról a szkript jól futott, de a mozgásesemények visszahívásából történő hívás nem. A helyzetet tovább rontotta, hogy az utóbbi esetben a forgatókönyv nyomai nem voltak elérhetők.

Ennek oka az volt, hogy az útmutatót követve telepítettem a csomagokat a „pi” felhasználó számára (amely alapértelmezés szerint a /home /pi könyvtárban van, és más felhasználók számára korlátozott), de a szkript „motion” szolgáltatásként való futtatásához a csomagokat „mozgás” felhasználó számára is elérhető. Így végül kijavítottam a csomagok telepítését

sudo pip3 …

Ez még mindig nem megfelelő módszer. Telepítés sudo nélkül, mint a pip3 -rendszer valamilyen okból hibákat adott nekem.

Ennek megfelelően a parancsfájlt is sudo alatt hívják (lásd motion.conf).

A hibaelhárítás során sok szükségtelen változtatást hajtottam végre, és nem tudom, mi szükséges, és most lusta vagyok, hogy fokozatosan visszagurítsam őket, és megnézzem, mikor fog működni. Különösen a mozgásadminisztrátori jogok biztosítottak:

pi@málna: ~ $ csoportok mozgása

motion: motion adm sudo audio video users netdev pi

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

pi ALL = (ALL) NOPASSWD: ALL

motion ALL = (ALL) NOPASSWD: ALL

A fájltulajdonosok és a Google Drive -ba való feltöltéshez hasonló engedélyek megváltoztatása is történt. Valószínűleg segíthet abban az esetben, ha hasonló problémája van.

5.2 A Google Fotók API csak fájlokat adhat hozzá a megosztott albumokhoz, hogy a link birtokában bárki hozzáférhessen. Ne ossza meg linkkel, és ne törölje a régi filmeket, és ne helyezze át a kukába vagy az albumból. Utóbbi esetben a számlán maradnak.

5.3 A Google Fotók Asszisztense arcokat észlel, ami nagyon hasznos, ha a kamera minősége megfelelő. Bónuszként fantasztikus média összeállításokat és gifeket készít stb.

5.4 Próbáltam 4G LTE USB modemet használni az internethez való hozzáféréshez, és itt vannak az eredményeim. Van egy https://howtoraspberrypi.com/create-a-wi-fi-hotspot-in-less-than-10-minutes-with-pi-raspberry/ egy nagyon egyszerű útmutató a RaspAP használatával. 5.4.3 A dinamikus DNS nem működött a mobilom 4G hálózatában. Van magyarázat, hogy miért

5.5 Miután ezt a rendszert néhány hétig használta, kiderült, hogy bár a videók kényelmesebbek a megtekintéshez és a feltöltéshez, a Google Fotók jobban működik a képekkel. Például lehetővé teszi a dolgok/arcok csoportosítását, csak a képek elemzését, és csak ezután az arcok/dolgok keresését a videók képeiből, de nem az ellenkezőjét. Tehát tesztelni fogom a képeket, amelyek inkább videókat töltenek fel.

Ajánlott: