Raspberry Pi ile Uzaktan Görüntüleme Kamerası
Gerçek zamanlı akış, çevremizle etkileşim kurmanın harika bir yoludur. CCTV kamera gibi. Peki arkasındaki teknoloji nedir?
Ya Raspberry Pi ile Pi Kameranın canlı yayınını herhangi bir istemci cihazına aktararak bunu tam olarak yapabilseydik. Ve hatta gerçek dünya uygulamalarına dokunun.
Bu eğitimde bunu ele alacağız. Bir Raspberry Pi’den telefonunuza (veya internete bağlı herhangi bir cihaza) canlı bir kamera akışı oluşturuyoruz. Yakın zamanda bir Raspberry Pi aldıysanız ve yeni bir proje üzerinde çalışmak istiyorsanız, bu proje başlamak için iyi bir proje olabilir.
Giriş ve Üst Düzey Genel Bakış
Bu eğitimin sonunda, ağınızdaki herhangi bir cihazdan kamera beslemesini görüntülemek için bir kablosuz akış kurabileceksiniz. Bu, herhangi bir uygulama için kendi mini kamera akışınızı oluşturabileceğiniz anlamına gelir, Bitki monitörü, Akıllı CCTV kamera (Yüz tanıma özellikli) ve hatta taşınabilir bir kamera düşünün.
Montajı ele alıyoruz, işletim sistemini kuruyoruz ve Python akışını ayarlıyoruz. Öyleyse başlayalım!
Raspberry Pi’ye Giriş
İyi bir anlayış elde etmek için hangi donanımı kullandığımızı anlamak her zaman iyidir. Marvel’in bu küçük parçası bir Raspberry Pi’dir. Genel olarak, Ahududu bir bilgisayardır. (Aslında düşük maliyetli bir bilgisayar). MacBook veya Masaüstünüz gibi, USB çevre birimlerine ve Ses Jakı, Ethernet ve HDMI bağlantı noktaları gibi diğer bağlantı noktalarına sahiptir. Bilgisayarınızın yapabildiğini yapabilmek – kartlar zamanla daha güçlü hale geliyor gibi görünüyor.
İlginç olan kısım, form faktörüdür; Küçük boyutu nedeniyle, bu ‘kredi boyutunda bilgisayar’ farklı gerçek dünya uygulamaları için kullanışlıdır ve DIY topluluğunda popülerdir.
Bu yazıda Raspberry Pi 4 (4GB) Modunu kullanacağız. Ancak diğer modelleri kullanabilirsiniz. Aklında tut; performans modeller arasında değişebilir.
Akış nedir ve nasıl çalışır?
Flask, Python için bir arka uç web sunucusu / mikro çerçeve olarak görülebilir – bu da Python kullanarak web çerçeveleri oluşturmayı kolaylaştırır.
Peki nasıl çalışıyor?
Raspberry Pi kamerasından canlı çekim yapıyoruz ve istemci cihazlarımıza canlı akış oluşturmak için bir Flask kullanıyoruz. (herhangi bir cihaz olabilir).
Flask, Python ve HTML Web sayfaları arasında harika bir köprüdür ve bir dizi bağımsız JPEG görüntü akışıyla çalışan Motion JPEG’i destekler. Motion JPEG, Güvenlik IP kameralarında ve benzer şekilde web kameralarında yaygın olarak kullanılmaktadır ve bu, canlı akışımızı bu şekilde yayınlıyoruz.
Ayrıca, Pi’nin aynı ağına bağlı bir cihaz URL’yi ziyaret edebilir ve akışın canlı görüntülerini görebilir, böylece OpenCV kitaplığı video akışımıza erişmek için kullanılır.
Parça listesi
Bu projeyi tamamlamak için neye ihtiyacınız olacak
- Ahududu Pi 4
- Raspberry Pi Kamera Modülü (Pi Cam’ı da kullanabileceğinizi belirtin)
- HDMI (Mikro HDMI):
- Mikro SD kart
- Raspberry Pi Güç Kaynağı / Güç Bankası (USB C Şarj Cihazı)
- Ethernet kablosu
- (Klavye ve fare)
- Opsiyonel: Pi Muhafaza
Pi Cam ve kamera modülü – En son Pi Kamera Modülünü duymuş olabilirsiniz ve ikisinin Görüntü karşılaştırma performansını merak ediyorsanız. İşte Pi Kamera modülü daha pahalı olmasına rağmen, kesinlikle görüntü kalitesinde bir gelişme.
Bu projenin yararı için daha ucuz Pi Modülünü kullanıyoruz.
Yapım süreci: 4 Aşamalı Süreç
- Raspberry Pi Kamera Modülünü Bağlayın
- Pi Kamera modülü, fotoğraf çekme, video kaydetme ve akış özelliği sağlar. Pi kapalıyken, kamera modülü bağlantı noktasını açığa çıkarmak için Kamera bağlantı noktası mandallarını hafifçe çekin. Kamera şerit kablosunu takın ve mandalı yerine itin. Tipik olarak doğru yön, şerit kablonun mavi kısmının USB bağlantı noktalarına bakmasıdır.
- Not: Kamera bağlantı noktası klipslerini / mandallarını oldukça kırılgan oldukları için dikkatli tutun.
- Pi’nizi Ethernet kablosuna bağlayın:
– Bu isteğe bağlıdır: Uygulamanız için kablolu bir bağlantı kullanmayı planlıyorsanız
- Pi’nizi HDMI Çıkışına bağlayın – Bir Monitör kullanmayı seçerseniz, mikro HDMI’yı TV’nin bağlantı noktasına ve Raspberry Pi’ye (Mikro HDMI) bağlayın
Tüm kurulum bu!
Etching OS:
Ancak bu Pi’yi açmadan önce MicroSD’ye bir işletim sistemi kurmamız gerekecek. Biz kullanarak olacak Raspbian OS.
İndirilen Görüntü bir kez, Raspbian OS’yi Balena Etcher kullanarak Micro SD karta aktaracağız. Bu işlem 15 dakika kadar sürebilir (SD Kartınızın türüne bağlı olarak). Tamamlandığında, Mikro SD Kartı güvenle çıkarabilirsiniz.
Şimdi, Micro SD kartınızı Raspberry Pi’ye takın ve Ethernet Kablosunu (gerekirse) bağlayın. Raspberry Pi 4’e USB-C kablosunu takarak güç verin.
Not: Bu, Raspbian OS sürümünde, Ağustos 2020’de kurulmuştur.
Pi OS Kurulumu:
Pi’nizin Kablosuz veya Ethernet üzerinden bir internet bağlantısı olduğundan emin olun.
- Kablolu Bağlantı – Pi’den yönlendiricinin LAN bağlantı noktasına bir ethernet kablosu takın.
- Kablosuz – Wi-Fi Erişim Noktanızı arayabilir ve kablosuz olarak oturum açmak için kimlik bilgilerini girebilirsiniz.
Pi’ye giriş yaptıktan sonra kurulum kurulum iletişim kutularını tamamlayın ve bitirin.
Sonraki adım, Kamera Bağlantı Noktasını ve VNC’yi etkinleştirmektir. Kamera bağlantı noktası, kameranın Pi’de kullanılmasını sağlar ve VNC, bir ekrana ihtiyaç duymadan Pi’ye erişmeye yardımcı olur. Aslında, Pi’yi monitöre tekrar bağlamadan Pi akışına uzaktan erişiyoruz.
Terminal penceresini açın ve çalıştırın:
sudo rasp-config
Kamera bağlantı noktası – Arabirim Seçenekleri , Kamera Bağlantı Noktası’nı ve Etkin’i seçin .
VNC Görüntüleyici – Arayüz Seçenekleri, VNC’yi seçin ve Etkin’i seçin .
(Pi’ye dizüstü bilgisayarınız aracılığıyla erişmek için SSH’yi etkinleştirmek isteğe bağlıdır)
Şimdi çıkabilirsiniz. Bu, Pi’nizin yeniden başlamasına neden olabilir.
Kamera Kurulumu:
Pi’yi yeniden başlattığınızda, terminalinize bu komutu girerek kamera modülünüzden bir resim çekerek Pi kameranızın çalıştığını onaylayın:
raspistill -o Masaüstü / image.jpg
Aşağıdaki komut bir resim çekecek ve Pi’nizin Masaüstüne kaydedecektir.
Ayrıca biraz video çıkışı kaydetmeyi de kontrol edebilirsiniz:
raspivid -o Masaüstü / video.h264
Python Kamera Akışı Kurulumu
Artık kamera modülünün çalıştığını doğruladığımıza göre, şimdi aşağıdaki bağımlılıkları ve GitHub Repo’yu kurmaya geçebiliriz.
Pi’nizi yükseltme:
Aşağıdaki komutları çalıştırarak tüm kitaplıklarınızın ve paketlerinizin güncel olduğundan emin olun:
sudo apt-get güncellemesi
sudo apt-get yükseltme
İsteğe bağlı: Sanal Ortam Oluşturun:
Python3 kitaplık bağımlılıkları için sanal bir ortam oluşturmak iyi bir fikirdir. Bunun nedeni, ahududu pi içindeki bir kaba Flask kurmak istememizdir; bir şey ters giderse, yeniden başlamanıza gerek yoktur. Ancak, birkaç kitaplık kurduğumuz için bunu atlayacağız.
Zorunlu Yüklemeler:
Raspberry Pi’nize bağlı olarak, canlı bir akış oluşturmak için aşağıdaki bağımlılıkları yüklemeniz gerekebilir.
sudo apt-get güncellemesi sudo apt-get yükseltme sudo apt-get install libatlas-temel-dev sudo apt-get libjasper-dev yükle sudo apt-get install libqtgui4 sudo apt-get install libqt4-test sudo apt-get install libhdf5-dev sudo pip3 yükleme şişesi sudo pip3 numpy yükle sudo pip3 opencv-katkıda-python'u yükle sudo pip3 imutils yükle sudo pip3 opencv-python yükle
Başarılı bir kurulumun ardından, şimdi hepimiz Pi buharı oluşturmak için kamera akışı deposunu indirmeye hazırlanacağız.
Git Kamera Akışı Repo’yu Klonlayın:
- Şablon Klasörü – Bu, index.html web sayfasının saklanacağı yerdir
- Temel HTML sitesi, müşterinin tarayıcıda görüntüleyeceği şeydir ve tamamen özelleştirilebilir.
- Not: Tarayıcı tarafından en son JPEG görüntü akışı ile sürekli güncellenir
- Şablon Klasörü – Bu, index.html web sayfasının saklanacağı yerdir
- Python komut dosyası :
- Camera.py – Komut dosyası, openCV’ye erişir ve kamera modülünün çıktısını etkinleştirerek, Motion JPEG aracılığıyla kare dizisi sağlar.
- main.py – Flask akışının oluşturulduğu yer. Ana uygulama bir kamera sınıfını (modül) içe aktarır.
Flask Kamera Akışını aşağıdaki komutla başlatabilirsiniz:
- sudo python3 /home/pi/pi-camera-stream-flask/main.py
Nerede / home / pi / pi-kamera-akış şişesi / ana. py, Python betiğinizin doğrudan yoludur, alternatif olarak, dosyaya doğrudan erişebilir ve python betiğini çalıştırabilirsiniz.
İsteğe bağlı: Pi’nizin açılışında kamera akışını otomatik olarak başlatmak iyi bir fikirdir. Artık akışı her oluşturmak istediğinizde komut dosyasını yeniden çalıştırmanız gerekmeyecek. Bunu / etc / profilini şu şekilde düzenleyerek yapabilirsiniz:
- sudo nano / etc / profil
Sonuna gidin ve aşağıdakileri ekleyin (yukarıdan):
- sudo python3 /home/pi/pi-camera-stream-flask/main.py
Bu, Raspberry Pi’nin her açılışında aşağıdaki terminal komutunun otomatik olarak başlamasına neden olur. Bu, aslında, SSH aracılığıyla erişilebilecek başsız bir kurulum yaratır.
Not: SSH’nin etkinleştirildiğinden emin olun.
Şişe uygulamasının demosu
Artık pi’nizin canlı akışına, URL’sine 5000 numaralı bağlantı noktasından erişerek erişebilirsiniz. 5000 giriş adresini ziyaret edin ve Raspberry Pi ile aynı Wi-Fi ağına bağlı herhangi bir cihazdan bu akışa erişin.
Not: Terminal komutunuza ifconfig girerek Pi’nizin IP adresini öğrenebilirsiniz . Ve Inet Adresini arayın .
Son Derleme, İnceleme ve Performans
Son Yapı:
Akış Gecikmesi: Pi akışının gecikmesi, yaklaşık 1-2 saniyelik ağ kapsamınıza bağlıdır (bazı durumlarda ~ 500 ms). Yerel ağımız üzerinden yayın yaptığımız için, yayınınızın performansını aşağıdaki gibi birkaç faktör etkileyebilir:
- Wi-Fi Kapsamı
- Wi-Fi Performansı
- Raspberry Pi Build (performanstan en iyi şekilde yararlanmak için neden Raspberry Pi 4 önerilir)
Ve hepsi bu! Artık kendi Raspberry Pi Kamera akışınızı oluşturdunuz. Bunu bir adım öteye taşıyabilir ve bir iç mekan canlı beslemesinden Taşınabilir bir kameraya kendi uygulamanızı yapabilirsiniz. Seçenekler hayal gücünüze bağlı.
Bol şans…
Referanslar:
- Pi Kamera Akışı Şişesi GitHub Repo – https://github.com/EbenKouao/pi-camera-stream-flask
- Raspberry Pi OS Görüntüsünü Kurun: https://smartbuilds.io/
- Kendi Akıllı CCTV Kameranızı oluşturma: https://smartbuilds.io/
- Flask ile video akışı – Teori (Harici) hakkında daha fazla bilgi: https://blog.miguelgrinberg.com/post/video-streaming-with-flask