İçindekiler:

Raspberry Pi Lazer Güvenlik Sistemi: 13 Adım (Resimli)
Raspberry Pi Lazer Güvenlik Sistemi: 13 Adım (Resimli)

Video: Raspberry Pi Lazer Güvenlik Sistemi: 13 Adım (Resimli)

Video: Raspberry Pi Lazer Güvenlik Sistemi: 13 Adım (Resimli)
Video: Ultra Akıllı Ev Kontrol Paneli Yaptım! (Haftalık Vlog) 2024, Kasım
Anonim
Image
Image
resim
resim

Eğitilebilirliğimi kontrol ettiğiniz için teşekkürler. Bu talimatın sonunda, videoda gösterilen e-posta uyarı işlevine sahip ahududu pi lazer tripwire sistemini oluşturacaksınız.

Bu talimatı tamamlamak için genel devre ve lehimlemeye aşina olmanız, bir devre tahtasının nasıl kullanılacağını bilmeniz ve pi üzerindeki terminali rahat bir şekilde kullanmanız gerekecektir. Python konusunda deneyim sahibi olmak da yardımcı olacaktır.

Bu proje üç ana sistemden oluşmaktadır. Ahududu pi, lazer tripwire devresi ve bir gözlem bilgisayarı. Amacımız, lazer tripwire devresindeki bir voltaj değişimini tespit etmek için ahududu pi'yi kullanmak ve ardından bir e-posta ve video akışı şeklinde gözlemci bir bilgisayarı uyarmaktır.

Hadi başlayalım.

Adım 1: Gerekli Bileşenleri Toplayın

Bu projeyi tamamlamak için aşağıdaki öğelere ihtiyacınız olacak.

  1. En az bir operasyonel Raspberry Pi. Bu derlemede raspbian wheezy çalıştıran bir model B tarzı Pi kullandım. Raspbian jessie çalıştırıyorsanız, bu öğreticinin iyi çalışacağından eminim.
  2. Ahududu pi için harici bir güç kaynağı. Tüm bunlar bağlandıktan sonra önemli miktarda amper çekeceğiz. İlk inşam sırasında sorun kaynağım olarak berbat bir güç kaynağını teşhis etmek için çok zaman harcadım. En az 2 amper sağlayabilecek güçlü bir gücünüz olduğundan emin olun.
  3. Ucuz bir lazer işaretçi. Bir benzin istasyonunda kasanın yanında benimkini buldum. Tam lazeri istiyorsanız burada bulabilirsiniz. Etiket dalga boyu için 630-680 nm diyor. Hangi lazeri alırsanız alın, yapıdaki diğer bileşenlerden bazılarını belirleyecektir. Bu yüzden etiketinin dalga boyunu tanımladığından emin olun.
  4. Bir usb tarzı web kamerası. Bu web kamerası, kamerayı güzel bir şekilde konumlandırmanızı sağlayan ayarlanabilir bir ayağa sahiptir. Web kameramla birlikte gelen usb kablosunun uygulamam için çok kısa olduğunu fark ettim ve monoprice'de bir uzantı buldum.

  5. Ahududu pi için bir çeşit ara kiti, böylece işlemcideki pinlere kolayca erişebilirsiniz.

    resim
    resim
    resim
    resim
  6. Bir ekmek tahtası.
  7. Bir havya.
  8. Breadboard için atlama telleri.
  9. Devre Bileşenleri. İstediğiniz açma teli miktarıyla çarpın.

    • Bir çalışma led
    • Bir adet 100 ohm direnç
    • 1k direnç
    • Bir 10k direnç
    • Bir 200k direnç Gerçekten herhangi bir büyük direnç yapacaktır. 1M dirençle test ettim ve iyi çalıştı. Bilginize 10k çok küçüktü.
    • Bir PNP transistör PN:2N4403-APCT-ND
    • Bir fotodiyot (bunu lazer dalga boyunuzla eşleştirin) PN:PDB-C142-ND

Devre kartı için kicad dosyalarını ekleyeceğim, ancak bu talimatta kartın imalatını ele almayacağım.

Bu proje boyunca aşağıdaki isteğe bağlı araçları kullanışlı buldum:

  1. Ahududu pi üzerinde sinerji yükleme. Eğer aşina değilseniz, bu yazılım ahududu pi'nin faresini ve klavyesini başka bir bilgisayarla kontrol etmenizi sağlayacaktır. Bu, benim gibiyseniz ve farklı bir bilgisayarda daha rahatsanız güzel. Ayrıca bu herkesin sahip olması gereken bir yazılımdır.
  2. Bir usb hub'ı. Kullanmak istediğiniz her web kamerası için bir bağlantı noktasına ihtiyacınız olacaktır.
  3. Varsa voltaj ölçer veya osiloskop.
  4. Ahududu pi'yi kontrol etmek ve dosyaları ssh aracılığıyla değiştirmek için MobaXterm'i kullanma. Pencerelerde büyüyen herkes için bir zorunluluktur. Kullanmaya başlamak için bu eğiticiye bakın.

Adım 2: Pi'yi Çalıştırın ve Çalıştırın

  • resim
    resim

    Minimum bileşen eklenmiş pi

  • Herhangi bir lazeri ateşleyebilmemiz için, inşa edilmesi gereken birkaç yazılım katmanı vardır. En iyi başarı şansına sahip olmak için temiz bir sayfa ile başlamak iyi bir uygulamadır. Bunu yapmak için gereksiz öğeleri Pi'den ayırın. Bu, bağlı bir cihazdan parazit olma olasılığını azaltacaktır.

    Ardından, terminalde aşağıdakileri girerek Raspberry Pi'nizin en son yazılımla çalıştığından ve çalıştığından emin olun.

    sudo apt-get güncellemesi

    Ahududu pi güncel olduğunda, bir sonraki adımın zamanı geldi

    Adım 3: Lazer Algılama Devresini Oluşturun

    Bileşenleri gösterildiği gibi breadboard üzerine yerleştirin. Pi'nin 5v çıkışını veya bir masaüstü güç kaynağını kullanarak devre tahtasına güç verin. Şekil 1'de 5v beslemesi, görüntünün sol alt tarafındaki pozitif devre tahtası rayına ve sol üstteki toprağa bağlanır. Bu devre, transistörü tetiklemek için fotodiyodu anahtar olarak kullanır. Transistör, fotodiyottaki küçük voltaj değişimini, pi'nin okuyabileceği bir şekilde dijital bir sinyale dönüştürür. Sonraki tüm adımlar için, 100ohm ve sinyal ledi arasındaki nokta, devreyi pi ile örneklediğimiz yer olacaktır.

    • resim
      resim

      Şekil 1: Devre devre tahtası düzeni üst

    • resim
      resim

      Şekil 2: Devre devre tahtası düzeni alternatif görünümü

    Daha temiz bir görünüm istiyorsanız, aşağıda gösterilen pano için kicad dosyalarını ekledim.

    • resim
      resim

      Şekil 3: Sensör kartının üstten görünümü

    • resim
      resim

      Şekil 4: Sensör kartı ISO

    • Adım 4: Lazeri Harici Güç için Değiştirin

      Aşağıdaki adımlarda lazer işaretçi tertibatını oluşturacaksınız.

      - Lazer işaretçiyi sökün. Bunu yaparken, pil terminallerinin lazer emitörüne göre yönüne dikkat edin.- Ardından, pil bağlantı yayını ve anlık basma düğmesini lazerden sökün.- Düğmenin bulunduğu terminaller arasına bir tel parçası lehimleyin. Şimdi lazere güç verildiğinde otomatik olarak açılacaktır.- Şimdi lazere giden pozitif ve negatif uçları lehimleyin. Parça listesinden aynı lazeri kullanıyorsanız, lehim noktalarını görmek için aşağıdaki resmi kullanabilirsiniz. Değilseniz, lehim noktalarını kendiniz bulmanız gerekebilir. Pil yönünü, pozitif veya negatif uç için bir ipucu olarak kullanabilirsiniz. Son lehim noktasını bulmak için 5v güç kaynağı kullanabilir ve devreyi iki test ucu ile inceleyebilirsiniz. Uygun devreyi oluşturduğunuzda, lehim noktasını buldunuz ve lazer yanacaktır.

      • resim
        resim

        Turuncu tel, anlık basma düğmesinin yerini alıyor

      • resim
        resim

        Olumlu ve olumsuz olası satışları gösterme

      - Son adım, lazer yuvasına nişan almak üzere kolayca ayarlanabilmesi için lazer için yönlü bir montaj direği yapmaktır. Çoğu lego biyonik kitinin soket bağlantılarındaki ucuz top için mükemmel bir kaynak olduğunu buldum. Süper yapıştırıcı kullanarak bilyeli mafsalın bir parçasını lazer işaretçiye yapıştırın. Artık soket mafsalını herhangi bir yüzeye monte edebilir ve lazeri yerleştirebilirsiniz.

      • resim
        resim

        Rotil

      • resim
        resim

        Soket bağlantısı

      • resim
        resim

        Top ve soket monte edilmiş

      • Adım 5: Lazeri Çalıştırın ve Algılama Devresini Test Edin

        Lazeri breadboard'unuza takın. Pozitifin 5v'ye bağlanması ve negatif kabloyu topraklaması gerekecektir. Lazer çok iyi açılıyorsa, değilse, bir multimetre ile uygun voltaja sahip olup olmadığınızı iki kez kontrol edin. Hala çalışmıyorsa, geriye doğru bağlamanız durumunda olası satışları değiştirmeyi deneyin. Hala çalışmıyorsa, doğru pedlere lehimlememiş olabilirsiniz, son adıma geri dönün.

        • resim
          resim

          Sağlıklı bir ışınla çalışan lazer

        Lazer ışınını aldıktan sonra, algılama devresini test etme zamanı gelmiştir. Lazeri fotodiyota doğrultun. LED, ışının aktif olduğunu bildirerek kapanmalıdır. Işın boyunca elinizi sallayın ve LED, bir yolculuk sinyali vermek için yanmalıdır.

        • resim
          resim

          Kiriş kırık değil ve led kapalı

        • resim
          resim

          Davetsiz misafir ışını kırar ve ledin yanmasına neden olur

        • 6. Adım: Web Kameranızı Bağlayın ve İşlevselliğini Test Edin

          Web kameranızı usb bağlantı noktasına bağlayın. Videoyu yayınlamak için mjpg-streamer yardımcı programını almamız gerekiyor. İşte tam da bunun nasıl yapılacağı hakkında harika bir eğitim. Mjpg-streamer'ı düzgün bir şekilde yükledikten sonra. Terminale aşağıdaki komutu girerek video akışını başlatın.

          cd /mjpg-streamer'ı yüklediğiniz yer/mjpg-streamer

          ./mjpg_streamer -i "./input_uvc.so -y /dev/video0" -o "./output_http.so -w./www -p 8081"

          Bu komut, video0 kaynağını kullanarak 8081 numaralı bağlantı noktasında bir akış kuracaktır. Birden fazla web kamerası istiyorsanız, yukarıdaki komutu tekrar girin ancak video0'ı video1'e ve 8081'i 8082'ye değiştirin. Bu şekilde 3 web kamerasına kadar akış yaptım ve pi aşırı yüklenmiyordu.

          Başka bir bilgisayarda bir tarayıcı açarak bağlantının çalışıp çalışmadığını test edin ve pi-address-of-pi:8081 girin veya pi'ye localhost:8081 girin. Eğer pi'nin IP'sini bilmiyorsanız, terminalde aşağıdakini girin

          ifconfig

          Her şey çalışıyorsa, mpg-streamer ana sayfasını görmelisiniz. Web kamerası akışınızı görmek için akış sekmesine tıklayın. Aşağıda arayüzün bir ekran görüntüsü bulunmaktadır.

          • resim
            resim

            mjpg-streamer örnek çıktısı

          Bu öğreticiyi ikinci kez yaparken mjpg-streamer ana sayfasına erişebildim ancak bir akış görmedim. Bunu düzeltmek için bu gönderiyi okudum (bağlantı şimdi kırık), özellikle YUYV piksel formatı ile ilgili kısmı, boş bir akışla karşılaşırsanız ona da başvurmalısınız.

          7. Adım: Ara Verme

          Tamam, bu noktada ahududu pi'mizi çalıştırmalıyız. Lazerimiz harici güç için değiştirildi. Algılama devremiz yapıldı ve lazer ışını fotodiyota çarptığında ledin söndüğünü ve ışını kestiğinizde ledin yanacağını onayladınız. Son olarak, web kameranızın bağlı ve işlevsel olarak akışa sahip olmasını sağlamalısınız.

          Şimdi hepsini bir araya getirme zamanı. Yazılımla lazer ışını açmasını tespit etmeye çalışarak basit bir şekilde başlayalım.

          Algılama devresini gösterildiği gibi devre tahtasına bağlayın. Bir sonraki adıma hazırlanmak için sensör sinyal kablosunu pim 25'e bağladığınızdan emin olun. Aşağı çekme direnci isteğe bağlı değildir. 10k uzanıyordum ama herhangi bir direnç yapmalı.

          • resim
            resim

            PiCobler ile Breadboard düzeni

          • Adım 8: Lazeri Yazılımla İzleyin

            Lazer sinyalini dinlemek için kısa bir program yazalım ve bu çıktıyı terminale gönderelim. Kodu ek olarak indirebilirsiniz.

            Muhtemelen bu komut dosyası için bağımlılıkları yüklemeniz gerekecektir. Python ve gpio modülü. Bunları yüklemek için girin

            sudo apt-get kurulumu python-rpi.gpio python3-rpi.gpio

            Başarılı bir python kurulumu yaptıktan sonra, read_pin.py adlı ekli python betiğini indirin ve çalıştırın.

            cd /dizini/chmod 777 read_pin.py dosyasını koyduğunuz yer

            chmod komutu, komut dosyasına çalıştırma izni verecektir. Ardından, koşarak her şeyin yolunda ve züppe olduğunu test edin

            sudo python3 read_pin.py

            Her şey yolunda giderse, aşağıda gösterildiği gibi bir konsol çıktısı görmelisiniz. Python betiğinden çıkmak için şunu girin

            Ctrl-C

          • resim
            resim

            Doğru Konsol Çıktısı (MobaXterm kullanılarak gösterilmiştir)

          Elinizi lazer ışınının önünde sallayın ve konsolda ışının kırıldığına dair sizi uyaran bir çıktı görmelisiniz. Sisteminizin farklı şekillerde çalışmasını sağlamak için komut dosyasıyla oynamaktan çekinmeyin.

          9. Adım: Akışınızı Görüntülemek için bir Web Sayfası Oluşturun

          Şimdi bir web kamerası görüntüleme arayüzü kurmamız gerekiyor. Bu adım için apache web sunucusunu kurmanız gerekecek. Birini ayarlamak için çok sayıda öğretici var. Ancak, minimum konfigürasyona sahip kısa liste burada.

          sudo apt-get install apache2

          kurulduktan sonra tarayıcınıza ahududu pi'ye yazabilmelisiniz.

          yerel ana bilgisayar

          Apache'den hoş geldiniz sayfasını görmelisiniz. İlk kez bir web sunucusu kuruyorsanız, muhtemelen pi'nizi statik bir ip adresine sahip olacak şekilde yapılandırmak isteyeceksiniz, böylece bir güç döngüsü yaparsanız yönlendiriciniz her zaman uygun ipi atayacaktır. Güvenlik sisteminizi başka bir yerden görüntülemek istiyorsanız, yönlendiricinizde bağlantı noktası iletmeyi ayarlamanız gerekecektir. Uzun zaman oldu ama aynı zamanda üzerinde web kamerası olan portları da yönlendirmeniz gerekeceğini düşünüyorum. Bu prosedürleri kapsayan çok sayıda öğretici var. Yönlendiricinizde bağlantı noktası yönlendirmeyi ayarlamayı seçerseniz herkesin web kameranızı görebileceğini unutmayın.

          Ekli dosyalar, web sitenizi kurmak için kullanabileceğiniz örnek web sayfalarıdır. Yüklememe izin vermedikleri için html dosyasındaki dosya uzantısını değiştirmeniz gerekecek. Ardından dosyaları, apache yapılandırma dosyanızda belirtilen www klasörünüze yerleştirin. Varsayılan konum

          cd /var/www

          Web sunucusunun html dosyalarınızı aradığı konumu değiştirmek isterseniz, siteler etkin dosyanızı girerek düzenleyebilirsiniz.

          sudo nano /etc/apache2/siteler etkin/000-varsayılan

          Herhangi bir /var/www/ örneğini istediğiniz konuma değiştirin. Benimkini /home/pi/Desktop/www/ içine koydum

          Web klasöründeki html dosyalarına sahip olduğunuzda, tarayıcıya localhost veya başka bir bilgisayardan pi'nin ip adresini girin. Bunun gibi bir şey görmelisin.

          • resim
            resim

            Ekli dosyaların çalışırken ekran görüntüsü

          TATLI!

          Adım 10: E-posta Uyarılarını Ayarlayın

          İyi şeyler oluyor! Pi'den önceden tanımlanmış bir e-posta adresine bir e-posta uyarısı göndermeye çalışarak şansımızı deneyelim. Ekli python betiği, göndermek istediğiniz e-postanızı oluşturacak, gmail gibi bir e-posta sağlayıcısına bağlanacak ve e-postayı e-posta sağlayıcısını kullanarak gönderecektir. Bu, python'un smtp paketi kullanılarak elde edilir. Smtp paketinin çalışması için gmail hesabınızın güvenliğini azaltmamız gerekeceğinden, yalnızca güvenlik sisteminiz için sahte bir e-posta adresi yapmanızı öneririm.

          Başarılı bir aktarım elde etmek için komut dosyasını birkaç yerde değiştirmeniz gerekecektir. Yoğun bir şekilde yorumlanmıştır ve rahatınız için terminalde çok sayıda çıktı üretecektir.

          Değiştirmeniz gereken şeyler olacak

          • your_ip = "192.168.0.177"
          • your_ip_Optional_port = ":8080"
          • port_to_camera = ":8081"
          • send_email_username = "e-posta kullanıcı adınız"
          • send_email_password = "şifreniz"

          apache sunucunuz varsayılan 80'den farklı bir bağlantı noktasında çalışmıyorsa, your_ip_Optional_port büyük olasılıkla boş olacaktır. Zaten 80'de çalışan bir sunucum vardı, bu yüzden pi'mi 8080'de çalışacak şekilde ayarladım. port_to_camera, kameranızı belirttiğiniz bağlantı noktası olacaktır. mjpeg flama kullanarak çalıştırın.

          Bu değişkenleri betiğin başında değiştirdikten sonra, terminalde aşağıdakileri girerek programı çalıştırın.

          cd / betiği koyduğunuz klasör /

          sudo python3 send_mail.py

          Yıldızlar düzgün bir şekilde hizalanmışsa ve tüm değişkenler doğruysa, aşağıdakine benzer bir e-posta almalısınız.

          • resim
            resim

            Ekli dosyaların çalışırken ekran görüntüsü

          Bu betiğin başarısız olabileceği birçok yer var. İlk seferde çalışmıyorsa, sinirlenmeyin. Sorunlu alanları daraltmak için komut dosyasındaki hata ayıklama noktalarını kullanın ve ardından her seferinde bir soruna odaklanın.

          Adım 11: Lazer Açıldığında E-posta Komut Dosyasını Tetikleyin

          Artık pi e-posta gönderebildiğine göre, lazer her tetiklendiğinde bir e-posta almamız için bunu otomatikleştirelim. Posta komut dosyasına dokunmak için yeni bir işlev içeren read_pin.py'nin değiştirilmiş bir sürümü olan ekli dosyayı indirin. Ana ek satır aşağıdaki gibidir

          sm_pid = os.spawnlp(os. P_NOWAIT, "/usr/bin/python3", "python3", "/home/pi/Desktop/security/send_mail.py")

          Bu satır, lazer algılama komut dosyasına paralel olarak posta gönderme komut dosyasını başlatacaktır. Posta gönderme komut dosyasının tamamlanması birkaç saniye sürdüğü ve lazer algılama komut dosyasının e-posta gönderilene kadar çalışmasını engelleyeceği için bu tercih edilir. Bu, tek bir kamera sistemi için bir sorun değildir, ancak birden fazla kameranız varsa, kamera 2 bir e-posta olayını tetiklemiş olsa bile kamera 1'de bir lazer tetiklemesi algılamak istersiniz. sm_pid değişkeni, bu komut tarafından başlatılan işlemin pid'ini içerecektir. E-posta tetikleyicisi tekrar çağrılırsa bu kimliği kontrol ederiz, varsa e-posta hala gönderiyor, bu yüzden olayı yok sayıyoruz. Eğer mevcut değilse, bu muhtemelen yeni bir olaydır ve bir e-posta gönderilir.

          Tümünü çalıştırarak test edin

          cd /dosyayı koyduğunuz dizin/

          chmod 777 read_pin_with_mail.py

          sudo python3 read_pin_with_mail.py

          Lazer ışınını kırdığınızda, web kamerasından alınan anlık görüntüyü içeren bir e-posta almalısınız.

          Adım 12: Sistemi Başlatmak için Ana Komut Dosyası Oluşturun

          Bu noktada proje çoğunlukla yapılır. Son bir adım, sistemin başlatılmasını son bir komut dosyasıyla basitleştirmektir. Tüm alt programları başlatacak ve web kamerasını tek bir komut dosyasıyla kuracaktır. Ekli dosya, /etc/rc.local dosyanızı düzenleyerek başlangıçta başlatılabilir. Dosya uzantısını değiştirmeniz gerekir ve komut dosyalarınızı farklı bir konuma yerleştirirseniz, komut dosyasını uygun yolları içerecek şekilde düzenlemeniz gerekebilir.

          Adım 13: Sonuç

          İşte bu kadar. Umarım bu öğreticiyi beğenmişsinizdir! Herhangi bir sorunuz varsa veya herhangi bir alanda daha ayrıntılı bilgiye ihtiyacınız varsa yorumlarda bana bildirin. Uğraşmaya devam edin!

          • resim
            resim

    Önerilen: