Innehållsförteckning:

Raspberry Pi Laser Security System: 13 steg (med bilder)
Raspberry Pi Laser Security System: 13 steg (med bilder)

Video: Raspberry Pi Laser Security System: 13 steg (med bilder)

Video: Raspberry Pi Laser Security System: 13 steg (med bilder)
Video: Fastest 100 meters by a bipedal robot - 24.73 seconds 🤖 2024, Juli
Anonim
Image
Image
Bild
Bild

Tack för att du kollade in min instruerbara. I slutet av denna instruerbara konstruerar du raspberry pi laser tripwire -systemet med e -postvarningsfunktioner som visas i videon.

För att slutföra detta instruerbara måste du vara bekant med allmänna kretsar och lödningar, veta hur man använder en brödbräda och vara bekväm med att använda terminalen på pi. Att ha erfarenhet av python kommer också att vara till hjälp.

Detta projekt består av tre huvudsystem. Raspberry pi, laser tripwire -krets och en observationsdator. Vårt mål är att använda hallon -pi för att upptäcka en spänningsförändring på lasertrådkretsen och sedan varna en observerande dator i form av ett e -post- och videoström.

Låt oss börja.

Steg 1: Avrunda nödvändiga komponenter

För att slutföra detta projekt behöver du följande objekt.

  1. Minst en operativ Raspberry Pi. I detta bygge använde jag en modell B -stil Pi som kör raspbian wheezy. Jag är säker på att denna handledning kommer att fungera bra om du kör raspbian jessie.
  2. En extern strömkälla för hallon pi. Vi kommer att dra en betydande mängd strömstyrka när allt detta har anslutits. Jag ägnade mycket tid åt att diagnostisera en elak strömförsörjning som min källa till problem under mitt första bygge. Se till att du har en kraftfull effekt som kan leverera minst 2 ampere.
  3. En billig laserpekare. Jag hittade mitt bredvid kassan på en bensinstation. Om du vill ha den exakta lasern kan du hitta den här. Etiketten säger 630-680 nm för våglängden. Vilken laser du än får bestämmer några av de andra komponenterna i byggnaden. Så se till att etiketten identifierar dess våglängd.
  4. En webbkamera i usb -stil. Denna webbkamera har en justerbar fot som låter dig placera kameran snyggt. Jag fann att usb -kabeln som följde med webbkameran var för kort för min applikation så jag hittade en förlängning på monopris.

  5. Någon form av breakout -kit för hallonpi så att du enkelt kan komma åt stiften på processorn.

    Bild
    Bild
    Bild
    Bild
  6. En brödbräda.
  7. Ett lödkolv.
  8. Bygelkablar till brödbrädan.
  9. Kretskomponenter. Multiplicera med den mängd tripptrådar du vill ha.

    • En fungerande ledde
    • Ett 100 ohm motstånd
    • Ett 1k motstånd
    • Ett 10k motstånd
    • Ett 200k motstånd Verkligen kommer alla stora motstånd att göra. Jag testade det med ett 1M motstånd och det fungerade bra. FYI 10k var för liten.
    • En PNP-transistor PN: 2N4403-APCT-ND
    • En fotodiod (matcha detta till din laservåglängd) PN: PDB-C142-ND

Jag kommer att bifoga kicad -filerna för kretskortet men kommer inte att gå över tillverkningen av kortet i denna instruerbara.

Under hela projektet tyckte jag att följande valfria verktyg var praktiska:

  1. Installera synergi på hallon pi. Om du inte är bekant tillåter denna programvara dig att styra hallon Pi -musen och tangentbordet med en annan dator. Det här är trevligt om du är som jag och är bekvämare på en annan dator. Det här är också programvara som alla borde ha.
  2. En usb -hubb. För varje webbkamera du vill använda behöver du en port.
  3. Spänningsmätare eller oscilloskop om du har det.
  4. Använda MobaXterm för att styra hallon pi och manipulera filer genom ssh. Det är ett måste för alla som höjs på fönster. Se den här självstudien för att konfigurera att använda den.

Steg 2: Komma igång Pi

  • Bild
    Bild

    Pi med minimala komponenter bifogade

  • Innan vi kan skjuta lasrar finns det flera lager av programvara som måste konstrueras. För att ha den bästa chansen att lyckas är det bra att börja med en ren skiffer. För att göra detta, koppla bort alla onödiga objekt från Pi. Detta minskar risken för störningar från en ansluten enhet.

    Se sedan till att din Raspberry Pi är igång med den senaste programvaran genom att ange följande i terminalen

    sudo apt-get uppdatering

    Med hallon pi uppdaterad är det dags för nästa steg

    Steg 3: Skapa laserdetekteringskretsen

    Placera komponenterna på brödbrädan enligt bilden. Driv brödbrädan med 5V -utgången från pi eller en strömförsörjning vid bänken. I figur 1 är 5v -matningen ansluten till den positiva skivbrädan i nedre vänstra delen av bilden och marken till den övre vänstra. Denna krets använder fotodioden som omkopplare för att utlösa transistorn. Transistorn omvandlar den lilla spänningsändringen i fotodioden till en något digital signal som pi kan läsa. För alla efterföljande steg är punkten mellan 100ohm och signalledningen där vi provar kretsen med pi.

    • Bild
      Bild

      Fig 1: Circuit breadboard layout topp

    • Bild
      Bild

      Fig 2: Circuit breadboard layout alternativ vy

    Om du vill ha ett renare utseende bifogade jag kicad -filerna för tavlan som visas nedan.

    • Bild
      Bild

      Fig 3: Sensorkortet ovanifrån

    • Bild
      Bild

      Bild 4: Sensorkort ISO

    • Steg 4: Ändra lasern för extern ström

      I de följande stegen bygger du laserpekarenheten.

      - Ta isär laserpekaren. När du gör det, notera batteripolernas riktning i förhållande till lasersändaren.- Lossa sedan batteriförbindningsfjädern och den korta tryckknappen från lasern.- Löd en bit tråd mellan terminalerna där knappen var. När strömmen försörjs till lasern slås den på automatiskt.- Löd nu de positiva och negativa ledningarna till lasern. Om du använder samma laser från dellistan kan du använda bilden nedan för att se lödpunkterna. Om du inte är det kan du behöva hitta lödpunkterna själv. Du kan använda batteriets orientering som en ledtråd för den positiva eller negativa avledningen. För att hitta den sista lödpunkten kan du använda en 5v strömförsörjning och mäta kretsen med två testledningar. När du har skapat rätt krets har du hittat lödpunkten och lasern tänds.

      • Bild
        Bild

        Den orange tråden ersätter den tillfälliga tryckknappen

      • Bild
        Bild

        Visar positiva och negativa leads

      - Det sista steget är att göra en riktad monteringsstolpe för lasern så att den enkelt kan justeras för att rikta mot laserkontakten. Jag har funnit att de flesta lego bionicle -kit är en utmärkt källa för billig boll i sockelfogar. Lim en bit av kulleden på laserpekaren med hjälp av superlim. Nu kan du montera sockelfogen på valfri yta och snäppa in lasern.

      • Bild
        Bild

        Kulled

      • Bild
        Bild

        Uttagsledning

      • Bild
        Bild

        Kula och sockel monterad

      • Steg 5: Starta lasern och testa detekteringskretsen

        Anslut lasern till din brödbräda. Den positiva måste anslutas till 5v och jorda den negativa ledningen. Om lasern slår på bra, om inte, dubbelkolla att du har rätt spänning med en multimeter. Om det fortfarande inte fungerar, försök byta ledningarna om du kopplade det bakåt. Om det fortfarande inte fungerar kanske du inte har lödt till rätt kuddar, gå tillbaka till det sista steget.

        • Bild
          Bild

          Arbetslaser med en frisk stråle

        När du har laserstrålat är det dags att testa detekteringskretsen. Rikta lasern mot fotodioden. Lysdioden ska stänga av signalen att strålen är aktiv. Vifta med handen genom strålen och lysdioden ska tändas för att signalera en resa.

        • Bild
          Bild

          Strålen är inte trasig och lysdioden är släckt

        • Bild
          Bild

          Inkräktare bryter strålen så att lysdioden tänds

        • Steg 6: Anslut din webbkamera och testa dess funktion

          Anslut din webbkamera till usb -porten. För att kunna streama videon behöver vi mjpg-streamer. Här är en bra handledning om hur du gör just det. När du har mjpg-streamer installerad korrekt. Börja strömma video genom att ange följande kommando i terminalen.

          cd /där du installerade mjpg-streamer /mjpg-streamer

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

          Detta kommando kommer att skapa en ström på port 8081 med hjälp av video0 -källan. Om du vill ha flera webbkameror anger du kommandot ovan igen men ändrar video0 till video1 och 8081 till 8082. Jag har streamat upp till 3 webbkameror på det här sättet och pi överbelastades inte.

          Testa att anslutningen fungerar genom att öppna en webbläsare på en annan dator och ange ip-address-of-pi: 8081 eller på pi kan du bara ange localhost: 8081. Om du inte känner till din IP för pi anger du följande i terminalen

          ifconfig

          Om allt fungerar bör du se mpg-streamer-hemsidan. Klicka på fliken ström för att se din webbkameraström. Nedan är en skärmdump av gränssnittet.

          • Bild
            Bild

            mjpg-streamer provutmatning

          När jag gjorde denna handledning för andra gången kunde jag komma åt mjpg-streamer-hemsidan men såg ingen ström. För att fixa detta läste jag det här inlägget (länken är nu trasig), särskilt delen om YUYV -pixelformat, om du stöter på en tom ström bör du också konsultera den.

          Steg 7: Paus

          Okej, så vid denna tidpunkt borde vi ha vår hallonpi igång. Vår laser har modifierats för extern ström. Vår detekteringskrets har konstruerats och du har bekräftat att när laserstrålen träffar fotodioden slocknar lysdioden och när du bryter strålen ska lysdioden tändas. Slutligen bör du ha din webbkamera ansluten och funktionellt strömma.

          Nu är det dags att sätta ihop allt. Låt oss börja enkelt genom att försöka upptäcka att laserstrålen snubblar med programvara.

          Anslut detekteringskretsen till brödbrädan enligt bilden. Se till att du ansluter givarens signalkabel till stift 25 som förberedelse för nästa steg. Dragmotståndet är inte tillval. Jag hade en 10k som låg, men alla motstånd borde göra.

          • Bild
            Bild

            Brödbräda layout med PiCobler

          • Steg 8: Övervaka lasern med programvara

            Låt oss skriva ett kort program för att lyssna på lasersignalen och posta utmatningen till terminalen. Du kan ladda ner koden som bilaga.

            Du kommer förmodligen att behöva installera beroenden för detta skript. Python och gpio -modulen. För att installera dessa enter

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

            När du har lyckats installera python, ladda ner det bifogade python -skriptet read_pin.py och kör

            cd /katalog där du lägger filen /chmod 777 read_pin.py

            Kommandot chmod ger skriptet tillstånd att köra. Testa sedan att allt är bra och dandy genom att springa

            sudo python3 read_pin.py

            Om allt går bra bör du se en konsolutmatning som visas nedan. För att avsluta python -skriptet, ange

            Ctrl-C

          • Bild
            Bild

            Rätt konsolutmatning (visas med MobaXterm)

          Vifta handen framför laserstrålen och du bör se en viss utgång på konsolen som varnar dig om att strålen har brutits. Lek gärna med manuset för att få ditt system att fungera på olika sätt.

          Steg 9: Skapa en webbsida för att visa din ström

          Nu måste vi konfigurera ett webbkameravisningsgränssnitt. För detta steg måste du installera apache -webbservern. Det finns gott om självstudier om hur man konfigurerar en. Men här är den korta listan med minimal konfiguration.

          sudo apt-get install apache2

          en gång installerat bör du kunna skriva i din webbläsare på hallon pi

          lokal värd

          Du bör se välkomstsidan från apache. Om det här är första gången du konfigurerar en webbserver kommer du förmodligen att vilja konfigurera din pi för att ha en statisk ip -adress så att din router alltid tilldelar rätt ip om du gör en strömcykel. Om du vill se ditt säkerhetssystem från en annan plats måste du konfigurera port vidarebefordran på din router. Det har varit ett tag men jag tror också att du kommer att behöva vidarebefordra alla portar som har en webbkamera också. Det finns gott om självstudier där ute som täcker dessa procedurer. Var medveten om att vem som helst kan se din webbkamera om du väljer att konfigurera port vidarebefordran på din router.

          De bifogade filerna är exempelwebbsidor som du kan använda för att konfigurera din webbplats. Du måste ändra filtillägget på html -filen eftersom de inte skulle låta mig ladda upp den. Placera sedan filerna i din www -mapp som kallas i din apache -konfigurationsfil. Standardplatsen är

          cd /var /www

          Om du vill ändra platsen där webbservern letar efter dina html -filer kan du redigera din webbplatsaktiverade fil genom att ange

          sudo nano/etc/apache2/sites-enabled/000-default

          Ändra en instans av/var/www/till den plats du önskar. Jag lade min i/home/pi/Desktop/www/

          När du har html -filerna i webbmappen anger du localhost i webbläsaren eller ip -adressen till pi från en annan dator. Du borde se något liknande.

          • Bild
            Bild

            Skärmdump av de bifogade filerna i drift

          SÖTE!

          Steg 10: Konfigurera e -postvarningar

          Bra saker händer! Låt oss trycka på tur genom att försöka skicka en e -postvarning från pi till en fördefinierad e -postadress. Det bifogade python -skriptet bygger din e -post som du vill skicka, ansluter till en e -postleverantör som gmail och skickar e -postmeddelandet med e -postleverantören. Detta uppnås med smtp -paketet med python. Jag föreslår att du gör en dummy -e -postadress bara för ditt säkerhetssystem eftersom vi måste minska säkerheten på ditt gmail -konto för att smtp -paketet ska fungera.

          Du måste ändra manuset på flera ställen för att få en lyckad överföring. Det är kraftigt kommenterat och kommer att producera många utgångar på terminalen för din bekvämlighet.

          Saker du kommer att behöva ändra kommer att vara

          • your_ip = "192.168.0.177"
          • your_ip_optional_port = ": 8080"
          • port_to_camera = ": 8081"
          • sending_email_username = "ditt e -postnamn"
          • sending_email_password = "ditt lösenord"

          your_ip_optional_port kommer sannolikt att vara tom om inte din apache -server körs på en annan port än standard 80. Jag hade redan en server som körde på 80 så jag ställde in min pi för att köras på 8080. Port_to_camera är porten du anger din kamera till kör med mjpeg streamer.

          När du har ändrat dessa variabler i början av skriptet kör programmet genom att ange följande i terminalen.

          cd /mapp där du lägger skriptet /

          sudo python3 send_mail.py

          Om stjärnorna är rätt inriktade och alla variabler är korrekta bör du få ett e -postmeddelande som liknar det nedan.

          • Bild
            Bild

            Skärmdump av de bifogade filerna i drift

          Det finns många platser där det här skriptet kan misslyckas. Bli inte frustrerad om det inte fungerar första gången. Använd felsökningspunkterna i skriptet för att begränsa problemområdena och fokusera sedan på ett problem i taget.

          Steg 11: Trigger e -postskript när laser utlöses

          Nu när pi kan skicka e -post, låt oss automatisera det så att varje gång lasern utlöses får vi ett e -postmeddelande. Ladda ner den bifogade filen som är en modifierad version av read_pin.py som innehåller en ny funktion för att hylla e -postskriptet. Den viktigaste tilläggslinjen är följande

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

          Den här raden startar skicka e -postskriptet parallellt med lasersensorskriptet. Detta är önskvärt eftersom det tar några sekunder att skicka e -postskriptet och det skulle blockera laseravkänningsskriptet från att köras tills e -postmeddelandet skickades. Detta är inte ett problem för ett enda kamerasystem, men om du hade flera kameror skulle du vilja upptäcka en laserresa på kamera 1 även om kamera 2 har utlöst en e -posthändelse. Sm_pid -variabeln innehåller pid för processen som startas av detta kommando. Vi söker efter detta id om e -postutlösaren anropas igen om den finns, e -postmeddelandet skickas fortfarande så vi ignorerar händelsen. Om det inte finns är det troligtvis en ny händelse och ett e -postmeddelande skickas.

          Testa allt fungerar genom att köra

          cd /katalog där du lägger filen /

          chmod 777 read_pin_with_mail.py

          sudo python3 read_pin_with_mail.py

          När du bryter laserstrålen bör du få ett mejl med ögonblicksbilden från webbkameran.

          Steg 12: Skapa ett huvudskript för att initiera systemet

          Vid denna tidpunkt är projektet mestadels klart. Ett sista steg är att förenkla uppstarten av systemet med ett sista skript. Det kommer att starta alla delprogram och ställa in webbkameran med ett skript. Den bifogade filen kan startas vid start genom att redigera din /etc/rc.local -fil. Du måste ändra filtillägget och kan behöva redigera skriptet för att inkludera rätt sökvägar om du lägger dina skript på en annan plats.

          Steg 13: Slutsats

          Det är väl det. Jag hoppas att du njöt av detta instruerbara! Låt mig veta i kommentarerna om du har några frågor eller behöver mer detaljerad information inom några områden. Fortsätt pyssla!

          • Bild
            Bild

    Rekommenderad: