Агуулгын хүснэгт:
- Алхам 1: Raspberry дээр Linux Motion суулгана уу
- Алхам 2: Google Photos API -ийг Python -д тохируулна уу
- Алхам 3: Туршилт
- Алхам 4: Нэмэлт: Вэб хандалтыг бодит цагийн цацалтын камер руу тохируулах
- Алхам 5: Зөвлөмж
Видео: Raspberry Pi Linux Motion Google Зургийн интеграци: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Энэхүү санаа нь Raspberry Pi -д холбогдсон хөдөлгөөнт камераар хийсэн зураг, видеог байршуулж, үүл рүү файл байршуулах явдал юм. 'Motion' програм хангамж нь PyDrive -ээр дамжуулан Google Drive руу байршуулахыг дэмждэг. Энэ нийтлэлд 'Motion' нь Google Зураг руу байршуулахад ашиглагддаг.
Техник хангамж:
Raspberry Pi 3B+
USB вэб камер Logitech C920
Тоног төхөөрөмжийн сонголт тодорхойлогдоогүй, би гарт байгаа зүйлийг л авсан.
Урьдчилсан нөхцөл:
Тохиромжтой болгохын тулд Raspberry pi нь таны дотоод сүлжээнд байх ёстой бөгөөд үүнийг монитор/гаргүйгээр хянах, файл байршуулах/татаж авах. Үүний тулд таны компьютер дээр ssh агент байх ёстой (жишээ нь шаваас).
Маш сайн заавар өгсөн ssandbac -д маш их баярлалаа. Хэрэв танд орчныг хэрхэн тохируулах талаар илүү их мэдээлэл хэрэгтэй бол энэ нийтлэлийг үзнэ үү. Би хөдөлгөөн суурилуулах, алхамуудыг тохируулах зээл авч, зарим өөрчлөлтүүдийг оруулсан. Ялангуяа, энэ жишээ нь файл, анхааруулга илгээхийн оронд хуваалцсан цомгоо google зургуудад байршуулж, мэдэгдлийн талбарт "зураг нэмж" оруулах тухай мэдэгдлийг ашигладаг.
Энд алхамууд байна:
Алхам 1: Raspberry дээр Linux Motion суулгана уу
Ялангуяа энэ жишээнд v4.0 хөдөлгөөнийг ашигласан болно.
1.1 pi -г шинэчлэх
pi@raspberrypi: ~ $ sudo apt-get update
pi@raspberrypi: ~ $ sudo apt-get update
1.2 Хөдөлгөөнийг татаж авах
pi@raspberrypi: ~ $ sudo apt-get install motion
1.3 Одоо энэ файлыг дараах өөрчлөлтүүдээр засварлана уу
pi@raspberrypi: ~ $ sudo нано /etc/motion/motion.conf
# Демон (арын) горимоос эхэлж терминалыг суллана (анхдагч: унтраалттай)
демон асаалттай байна
# Тодорхойлогдоогүй бол stderr болон syslog ашиглагдвал бүртгэлийн мессежийг хадгалахын тулд файл ашиглана уу. (анхдагч: тодорхойлогдоогүй)
logfile /var/log/motion/motion.log
# Зургийн өргөн (пиксел). Зөв хүрээ: Камераас хамааралтай, анхдагч: 352
өргөн 1920
# Зургийн өндөр (пиксел). Зөв хүрээ: Камераас хамааралтай, анхдагч: 288
өндөр 1080
# Секундэд авах хамгийн их хүрээний тоо.
хүрээ 30
# Хөдөлгөөнөөс өмнө авсан (буфертай) зургийн тоог заана
урьдчилан авах 5
# Хөдөлгөөний дараа авах хүрээний тоо илрэхээ больсон
post_capture 5
# Хөдөлгөөн илрэх үед 'хэвийн' зургийг гаргана (анхдагч: асаалттай)
output_pictures унтраасан
# Jpeg шахалтанд ашиглах чанар (хувиар)
чанар 100
# Киног бодит цаг хугацаанд кодлохын тулд ffmpeg ашиглана уу
ffmpeg_output_movies унтраалттай байна
# эсвэл 1 - 100 хүртэлх мужид 1 нь хамгийн муу чанар, 100 нь хамгийн сайн гэсэн үг юм.
ffmpeg_variable_bitrate 100
# Видео үүсгэх үед жаазыг дарааллаар нь хуулбарлах ёстой
ffmpeg_duplicate_frames худал
Extpipe -ийг идэвхжүүлэх эсвэл идэвхгүй болгохын тулд # Bool (анхдагч: унтраалттай)
use_extpipe -ийг асаана уу
extpipe ffmpeg -y -f rawvideo -pix_fmt yuv420p -video_size %wx %h -framerate %fps -i pipe: 0 -vcodec libx264 -хэт хурдан -f mp4 %f.mp4
target_dir/var/lib/хөдөлгөөн
# Киноны файлыг ажиллуулах тушаал
; on_movie_end sudo python3 /var/lib/motion/photos.py %f.mp4 &
Сүүлийн бичлэгийг видео бичлэг оруулах, байршуулах ажлыг баталгаажуулсны дараа коммент бичихийн тулд одоохондоо цэг таслалаар үлдээгээрэй.
1.4 Дараа нь солино уу
pi@raspberrypi: ~ $ sudo nano/etc/default/motion
pi@raspberrypi: ~ $ start_motion_daemon = тийм
Алхам 2: Google Photos API -ийг Python -д тохируулна уу
2.1 Энэ зорилгоор шинэ данс үүсгэхийг зөвлөж байна. Альбомоо үндсэн файлтайгаа хуваалцаж, шинэ файлууд нэмэгдсэний дараа мэдэгдэл авах боломжтой бөгөөд үүнээс гадна хадгалах зай нэмэгдэх болно. Байршуулахдаа ашиглах гэж буй бүртгэлдээ Google Зургийн API -г идэвхжүүлнэ үү.
Үүний дараа та credentials.json файлтай байх ёстой.
2.2 Python орчны тохиргоо
Үндсэндээ орчны тохиргоог зөвхөн бөөрөлзгөнө дээр хийх шаардлагатай байдаг. Гэхдээ энэ нь компьютер дээр хийхэд илүү тохиромжтой aauth зөвшөөрөл шаарддаг. Бөөрөлзгөнө дээр үүнийг хийхийн тулд та дэлгэц/гараа холбох эсвэл алсын ширээний UI тохируулах хэрэгтэй. Би бөөрөлзгөнө болон компьютер дээр ижил орчинг суулгасан. Тиймээс 2.2.1..2.2.3 алхамуудыг PC дээр, 2.2.1, 2.2.2, 2.2.5, 2.2.6 -ийг Rpi дээр хийсэн.
2.2.1 Python 3 суулгах
2.2.2 Google api багцыг гарын авлагын дагуу суулгана уу*(5.1 -ийг үзнэ үү)
PC дээр
pip3 суулгах-google-api-python-client google-auth-httplib2 google-auth-oauthlib-ийг шинэчлэх
Бөөрөлзгөнө дээр
pi@raspberrypi: ~ $ sudo pip3 install-google-api-python-client google-auth-httplib2 google-auth-oauthlib-ийг шинэчилнэ үү.
2.2.3 Google -ийн зургуудад скрипт байршуулж байгааг шалгаарай.. Энэ нь миний github дээр байрладаг. Үүнийг credentials.json -тай ижил лавлах санд оруулна уу.
2.2.4 Зураг аваад тест байршуулах
python3 зураг.py дүрс.jpg
Алдагдсан хамаарал байгаа бол тэдгээрийг суулгаад дахин оролдоно уу. Үүний үр дүнд та скриптийн лавлахад token.pickle, мөн Google Photos вэб интерфейс дээр image-j.webp
2.2.5 Цомгийг шинэ медиа дээр нэмэлт мэдээлэл авахыг хүсч буй зүйлийнхээ талаар данстай хуваалцаарай. Энэ дансыг утсан дээрээ нэмнэ үү.
2.2.6. 'Pi' хэрэглэгч 'хөдөлгөөний удирдагчдад бичих боломжгүй тул эхлээд /home /pi руу байршуулна уу
scp photos.py token.pickle pi@IP:/home/pi
Дараа нь бөөрөлзгөнө рүү нэвтэрч, файлуудыг sudo дор зөө
ssh pi@IP
pi@raspberrypi: ~ $ sudo mv photos.py token.pickle/var/lib/motion
2.2.7 Бөөрөлзгөнө дээр байршуулах ажил хэрхэн явагдаж байгааг шалгаарай. Fswebcam ашиглан зураг аваад байршуулахыг оролдоорой
pi@raspberrypi: ~ $ sudo fswebcam /var/lib/motion/image.jpg
pi@raspberrypi: ~ $ sudo python3 /var/lib/motion/photos.py /var/lib/motion/image.jpg
"Helloworld" цомогт image.jpg, утасны мөрөнд мэдэгдэл байж болно.
Алхам 3: Туршилт
3.1 Start Motion үйлчилгээ
pi@raspberrypi: ~ $ sudo үйлчилгээний хөдөлгөөн эхлэх
Та тушаалыг "зогсоох" эсвэл "дахин эхлүүлэх" болгож өөрчилж болно.
3.2 Хөдөлгөөний бүртгэлийг идэвхжүүлэх
pi@raspberrypi: ~ $ tail -f /var/log/motion/motion.log
3.2 Камерын гаралтыг ижил локал сүлжээнд холбогдсон өөр төхөөрөмж дээр үзэх. Хөтөч дээр оруулна уу:
IP: 8081
3.3 Бүртгэлийг харахад хөдөлгөөнийг илрүүлж, NAME.mp4 файлыг/var/lib/motion гэж бичих хүртэл хүлээнэ үү. Дараа нь гараар скрипт байршуулах ажлыг эхлүүлнэ үү
pi@raspberrypi: ~ $ sudo python3 /var/lib/motion/photos.py /var/lib/motion/NAME.mp4
Питоны ул мөрийг шалгана уу. Event_end хөдөлгөөнт байдлаар гарч иртэл хүлээнэ үү. Дараа нь google зурган дээрх "helloworld" цомог руу ороод видео байршуулсан эсэхийг шалгаарай.
3.4 Хэрэв байршуулах амжилттай бол /etc/motion.conf гэсэн мөрөнд бичнэ үү
pi@raspberrypi: ~ $ sudo нано /etc/motion.conf
# Киноны файл бэлэн болсон үед гүйцэтгэх команд
on_movie_end sudo python3 /var/lib/motion/photos.py %f.mp4 &
pi@raspberrypi: ~ $ sync
pi@raspberrypi: ~ $ sudo үйлчилгээний хөдөлгөөнийг дахин эхлүүлэх
3.5 Хөдөлгөөний бүртгэл, цомог дээрээс видеог автоматаар байршуулсан эсэхийг шалгаарай.
3.6 Шинэ видео эсвэл зураг нэмэх үед мэдэгдэл авахын тулд албумаа үндсэн бүртгэлтэйгээ хуваалцаарай.
Алхам 4: Нэмэлт: Вэб хандалтыг бодит цагийн цацалтын камер руу тохируулах
Энэ алхам нь Мишелийн Парреногийн хичээл дээр суурилсан болно. Би энд санал болгосон NoIP -ийн оронд FreeDNS -ийг сонгосон.
4.1 Видео урсгал хөдөлгөөнт серверт хандах эрх бүхий хандалтыг тохируулах:
pi@raspberrypi: ~ $ sudo нано /etc/motion/motion.conf
# Баталгаажуулах аргыг тохируулах (анхдагч: 0)
# 0 = идэвхгүй болсон
# 1 = Үндсэн баталгаажуулалт
# 2 = MD5 боловсруулалт (аюулгүй баталгаажуулалт)
урсгал_аутны_ арга 2
# Урсгалд нэвтрэлт танилт. Синтаксийн хэрэглэгчийн нэр: нууц үг
# Анхдагч: тодорхойлогдоогүй (Идэвхгүй)
webcontrol_authentication хэрэглэгчийн нэр: нууц үг
# Дамжуулалтын урсгалын хамгийн дээд хүрээ (анхдагч: 1)
урсгалын_максрат 30
# Зөвхөн localhost руу дамжуулах холболтыг хязгаарлах (анхдагч: асаалттай)
stream_localhost унтраалттай байна
Хэрэв та гадаад сүлжээнээс вэб хяналтын интерфэйсийг ашиглахгүй бол үүнийг идэвхгүй болго (үндсэн байдлаар)
# Хяналтын холболтыг зөвхөн localhost дээр хязгаарлах (анхдагч: асаалттай)
webcontrol_localhost асаалттай байна
Түүнчлэн, бөөрөлзгөнө онлайн болсон тул анхдагч бөөрөлзгөнө нууц үгээ өөрчлөхийг зөвлөж байна
pi@raspberrypi: ~ $ passwd
Хэдийгээр ssh 22 порт нь бөөрөлзгөнө рүү чиглүүлээгүй байгаа ч гэсэн.
4.2 FreeDNS сайт руу орно уу
4.3 Бүртгүүлэх
4.4 Дэд домэйныг нэмэх (Гишүүдийн хувьд -> Дэд домайнууд)
4.5 Raspberry дээр суулгах DNS клиентийг сонгоно уу (Гишүүдийн хувьд -> Динамик DNS -> Динамик DNS нөөцүүд -> Динамик DNS үйлчлүүлэгчид)
Би Адам Динээс wget_script update.sh -ийг сонгосон (хуудасны доод талд)
_YOURAPIKEYHERE_ ба _YOURDOMAINHERE_ гэсэн орлуулагч байдаг. Тэднийг авахын тулд (Гишүүдийн хувьд -> Динамик DNS) руу очно уу.
Доорх хуудсан дээр та APIKEY болон DOMAIN -тай скриптүүдийн жишээг олох болно (4.4 -т нэмсэн). Би эдгээр утгыг Wget скриптээс аваад update.sh дээр _YOURAPIKEYHERE_ болон _YOURDOMAINHERE_ -ийг орлуулсан.
4.6 Дараа нь бөөрөлзгөнө дээр update.sh -ийг ажиллуулна уу. Nslookup хийхэд dnsutils шаардлагатай байж магадгүй. Дараа нь суулгана уу:
pi@raspberrypi: ~ $ sudo apt-get dnsutils
4.7 Дараа нь чиглүүлэгчээ гадаад ертөнцийн хүсэлтийг 8081 порт руу бөөрөлзгөний ip рүү дахин чиглүүлэхээр тохируулна уу.
4.8 DHCP тохиргоонд бөөрөлзгөнө MAC -д зориулж IP нөөцлөөрэй, ингэснээр Rpi үргэлж ижил IP байх болно
4.9 Дараа нь дотоод сүлжээнд холбогдоогүй төхөөрөмж дээр хөтөч оруулна уу.
Таны домэйн: 8081
Motion.conf -д тодорхойлсон итгэмжлэлээ оруулна уу.
Видео хэрхэн ажиллаж байгааг туршиж үзээрэй.
4.10 DDNS -ийг шинэчлэхийн тулд cron даалгаврыг автоматаар тохируулна уу. Quick_cron_example -ийг үзнэ үү (Гишүүдийн хувьд -> Динамик DNS)
Алхам 5: Зөвлөмж
5.1 Бөөрөлзгөнө дээр питон багц суулгахдаа анхааралтай байгаарай. Би үүнийг нэг өдөр дибаг хийхэд зарцуулсан. Асуулт нь консолоос скрипт сайн ажилласан, гэхдээ хөдөлгөөнт үйл явдлын дуудлагаас дуудлага хийгээгүй. Хамгийн муу нь юу вэ гэвэл сүүлийн тохиолдолд скриптийн ул мөр байхгүй байсан.
Шалтгаан нь гарын авлагын дагуу би 'pi' хэрэглэгчийн багцыг суулгасан (энэ нь анхдагчаар /home /pi директорт байдаг бөгөөд бусад хэрэглэгчдэд хязгаарлагддаг) боловч скриптийг 'хөдөлгөөн' үйлчилгээний хүүхэд болгон ажиллуулахын тулд багцууд байх ёстой. 'хөдөлгөөн' хэрэглэгчдэд бас боломжтой. Тиймээс эцэст нь би үүнийг багцуудыг суулгаж зассан
sudo pip3…
Энэ бол зөв арга биш хэвээр байна. Sudo -г pip3 -систем болгон суулгаагүй нь ямар нэг шалтгаанаар надад алдаа гаргаж байсан.
Үүний дагуу скриптийг бас sudo гэж нэрлэдэг (motion.conf -ийг үзнэ үү).
Энэ алдааг олж засварлах явцад би маш олон шаардлагагүй өөрчлөлт хийсэн бөгөөд юу шаардлагатай байгааг сайн мэдэхгүй байсан бөгөөд одоо үе үе буцааж эргүүлж, хэзээ ажиллахаа болихыг харахаас залхуу байна. Ялангуяа хөдөлгөөний администраторын эрхийг олгосон:
pi@raspberrypi: ~ $ хөдөлгөөнийг бүлэглэдэг
хөдөлгөөн: хөдөлгөөн adm sudo аудио видео хэрэглэгчид netdev pi
pi@raspberrypi: ~ $ sudo cat /etc/sudoers.d/010_pi-nopasswd
pi ALL = (ALL) NOPASSWD: БҮХ
хөдөлгөөн ALL = (ALL) NOPASSWD: ALL
Мөн Google Драйвт байршуулахтай адил файл эзэмшигчид болон зөвшөөрлийг өөрчилж байсан. Тантай ижил төстэй асуудал тулгарсан тохиолдолд энэ нь танд туслах болно.
5.2 Google Зургийн API нь зөвхөн хуваалцсан цомогт файл нэмэх боломжийг олгодог бөгөөд ингэснээр линктэй хүн үүнийг үзэх боломжтой болно. Үүнийг линкээр хуваалцаж, хуучин киног устгаж, хогийн сав руу эсвэл цомгоос бүү зөө. Сүүлчийн тохиолдолд тэд дансанд үлддэг.
5.3 Google зургийн туслах нүүр царайг илрүүлдэг бөгөөд энэ нь камерын чанар сайн байвал маш хэрэгтэй байдаг. Урамшууллын хувьд энэ нь сонирхолтой хэвлэл мэдээллийн хэрэгслүүдийг эмхэтгэх, бэлэглэх гэх мэт хэлбэрийг бий болгодог.
5.4 Би интернетэд нэвтрэхийн тулд 4G LTE USB модем ашиглахыг оролдсон бөгөөд миний үр дүн энд байна. 5.4.1 Huawei E3372h-153 нь бөөрөлзгөнөтэй ямар ч асуудалгүй, нэмэлт програм хангамжтай ажилладаг. Https://howtoraspberrypi.com/create-a-wi-fi-hotspot-in-less-than-10-minutes-with-pi-raspberry/ дээр RaspAP ашиглан үүнийг хэрхэн хийх талаар үнэхээр хялбар гарын авлага байдаг. 5.4.3 Динамик DNS нь миний ачааны 4G сүлжээнд ажиллаагүй. Яагаад гэдэг тайлбар бий
5.5 Энэ системийг хэдхэн долоо хоногийн турш ашигласны дараа хэдийгээр видеог үзэх, байршуулах нь илүү тохиромжтой боловч Google Зураг нь зураг дээр илүү сайн ажилладаг. Жишээлбэл, энэ нь зөвхөн зургуудыг дүн шинжилгээ хийх, дараа нь видеон дээрх дүрсээс нүүр/зүйлийг хайх боломжийг олгодог боловч эсрэгээрээ биш юм. Тиймээс би видеог байршуулж буй зургуудыг туршиж үзэх болно.
Зөвлөмж болгож буй:
DIY ухаалаг гаражийн хаалга онгойлгогч + гэрийн туслахын интеграци: 5 алхам
DIY ухаалаг гаражийн хаалга онгойлгогч + гэрийн туслахын интеграцчлал: Энэхүү DIY төслийг ашиглан гаражийн ердийн хаалгаа ухаалаг болго. Би үүнийг хэрхэн яаж барьж, гэрийн туслах (MQTT дээр) ашиглан хянах, гаражийнхаа хаалгыг алсаас онгойлгох, хаах чадварыг зааж өгөх болно. Би Wemos нэртэй ESP8266 хавтанг ашиглах болно
DIY ухаалаг хаалганы хонх: Код, тохиргоо, HA интеграци: 7 алхам (зурагтай)
DIY ухаалаг хаалганы хонх: Код, тохиргоо ба HA интеграци: Энэхүү төсөлд би одоогийн хаалганыхаа хонхыг одоогийн функцийг өөрчлөхгүйгээр утсыг таслахгүйгээр хэрхэн ухаалаг болгож өөрчлөхийг танд үзүүлэх болно. Би Wemos D1 mini нэртэй ESP8266 хавтанг ашиглах болно. ESP8266 -д шинээр орсон уу? Миний танилцуулгыг үзээрэй
3D хэвлэсэн мөрний хуяг EL утас интеграци: 5 алхам
3D хэвлэсэн мөрний хуяг EL Wire Integration: I 3D нь мөрний хуяг, нэгдсэн EL утас хэвлэв. Та энэ техникийг комик хийц өмсгөлийн дүрд ашиглаж болно
Энгийн Arduino Uno ба ESP8266 интеграци: 6 алхам
Энгийн Arduino Uno ба ESP8266 интеграцчлал: Бидний зорилго бол ихэнх ATSP командуудад хариу өгөх програм хангамжтай бол ихэнх ESP8266 төхөөрөмжүүдийн програм хангамж дээр сайн ажилладаг Esp8266 AT командын номын сан (ITEAD номын санд суурилсан) бий болгох явдал байв. үйлдвэрлэгчийн анхдагч утга)
Дижитал зургийн зургийн жааз, WiFi холбосон - Raspberry Pi: 4 алхам (зурагтай)
Дижитал гэрэл зургийн зургийн жааз, WiFi холбосон - Raspberry Pi: Энэ бол дижитал зургийн жааз руу орох маш хялбар бөгөөд хямд өртөгтэй зам юм. Файл дамжуулах (үнэгүй) програмыг ашиглан "дарж чирж" WiFi -ээр зураг нэмэх, устгах давуу талтай. . Үүнийг 4.50 фунт стерлинг болох Pi Zero -ээр тэжээх боломжтой. Та мөн шилжүүлж болно