Sommario:

Sistema di sicurezza laser Raspberry Pi: 13 passaggi (con immagini)
Sistema di sicurezza laser Raspberry Pi: 13 passaggi (con immagini)

Video: Sistema di sicurezza laser Raspberry Pi: 13 passaggi (con immagini)

Video: Sistema di sicurezza laser Raspberry Pi: 13 passaggi (con immagini)
Video: Raspberry Pi 4 surveillance security system with PIR motion sensor and pi camera 2024, Luglio
Anonim
Image
Image
Immagine
Immagine

Grazie per aver controllato il mio istruibile. Alla fine di questa istruzione, costruirai il sistema tripwire laser Raspberry Pi con funzionalità di avviso e-mail mostrata nel video.

Per completare questa istruzione dovrai avere familiarità con i circuiti generali e la saldatura, sapere come utilizzare una breadboard e sentirti a tuo agio nell'usare il terminale sul pi. Anche avere esperienza in Python sarà utile.

Questo progetto si compone di tre sistemi principali. Il Raspberry Pi, il circuito laser tripwire e un computer di osservazione. Il nostro obiettivo è utilizzare il Raspberry Pi per rilevare una variazione di tensione sul circuito laser tripwire e quindi avvisare un computer di osservazione sotto forma di e-mail e flusso video.

Cominciamo.

Passaggio 1: arrotondamento dei componenti richiesti

Per completare questo progetto avrai bisogno dei seguenti elementi.

  1. Almeno un Raspberry Pi operativo. In questa build ho usato un Pi modello B in stile con raspbian wheezy. Sono sicuro che questo tutorial funzionerà bene se stai eseguendo raspbian jessie.
  2. Una fonte di alimentazione esterna per il Raspberry Pi. Attingeremo una quantità significativa di amperaggio una volta che tutto questo sarà collegato. Ho passato molto tempo a diagnosticare un alimentatore scadente come fonte di problemi durante la mia prima build. Assicurati di avere una potenza robusta in grado di fornire almeno 2 ampere.
  3. Un puntatore laser economico. Ho trovato il mio vicino al registratore di cassa in una stazione di servizio. Se vuoi il laser esatto lo trovi qui. L'etichetta dice 630-680 nm per la lunghezza d'onda. Qualunque sia il laser che ottieni determinerà alcuni degli altri componenti nella build. Quindi assicurati che la sua etichetta identifichi la sua lunghezza d'onda.
  4. Una webcam in stile USB. Questa webcam ha un piedino regolabile che ti consente di posizionare bene la fotocamera. Ho scoperto che il cavo USB fornito con la webcam era troppo corto per la mia applicazione, quindi ho trovato un'estensione su monoprice.
  5. Una sorta di kit di breakout per il Raspberry Pi in modo da poter avere un facile accesso ai pin del processore.

    Immagine
    Immagine
    Immagine
    Immagine
  6. Un tagliere.
  7. Un saldatore.
  8. Ponticelli per la breadboard.
  9. Componenti del circuito. Moltiplica per la quantità di cavi che desideri.

    • Un led funzionante
    • Un resistore da 100 ohm
    • Un resistore da 1k
    • Un resistore da 10k
    • Un resistore da 200k Va bene qualsiasi resistore di grandi dimensioni. L'ho provato con una resistenza da 1M e ha funzionato bene. Cordiali saluti, 10k era troppo piccolo.
    • Un transistor PNP PN: 2N4403-APCT-ND
    • Un fotodiodo (associarlo alla lunghezza d'onda del laser) PN: PDB-C142-ND

Allegherò i file kicad per il circuito ma non esaminerò la produzione della scheda in questo istruzioni.

Nel corso di questo progetto ho trovato utili i seguenti strumenti opzionali:

  1. Installare sinergia sul lampone pi. Nel caso in cui non si abbia familiarità, questo software ti consentirà di controllare il mouse e la tastiera del raspberry pi con un altro computer. Questo è bello se sei come me e sei più a tuo agio su un altro computer. Anche questo è un software che tutti dovrebbero avere.
  2. Un hub usb. Per ogni webcam che desideri utilizzare avrai bisogno di una porta.
  3. Voltmetro o oscilloscopio se ce l'hai.
  4. Utilizzo di MobaXterm per controllare il Raspberry Pi e manipolare i file tramite ssh. È un must per chiunque sia cresciuto con le finestre. Guarda questo tutorial per iniziare a usarlo.

Passaggio 2: ottieni il Pi attivo e funzionante

  • Immagine
    Immagine

    Il pi con componenti minimi attaccati

  • Prima di poter sparare con qualsiasi laser, ci sono diversi livelli di software che devono essere costruiti. Per avere le migliori possibilità di successo è buona norma iniziare da zero. Per fare ciò, scollega tutti gli elementi non necessari dal Pi. Ciò ridurrà le possibilità di avere interferenze da un dispositivo connesso.

    Quindi, assicurati che il tuo Raspberry Pi sia attivo e funzionante con il software più recente inserendo quanto segue nel terminale

    sudo apt-get update

    Con il lampone pi aggiornato è il momento del prossimo passo

    Passaggio 3: creare il circuito di rilevamento laser

    Posiziona i componenti sulla breadboard come mostrato. Alimenta la breadboard utilizzando l'uscita 5v del pi o un alimentatore da banco. Nella figura 1 l'alimentazione 5v è collegata al binario breadboard positivo in basso a sinistra dell'immagine e la massa in alto a sinistra. Questo circuito utilizza il fotodiodo come interruttore per attivare il transistor. Il transistor converte la piccola variazione di tensione nel fotodiodo in un segnale alquanto digitale che il pi può leggere. Per tutti i passaggi successivi, il punto tra i 100ohm e il led di segnale sarà il punto in cui campioniamo il circuito con il pi greco.

    • Immagine
      Immagine

      Fig 1: Layout della breadboard del circuito in alto

    • Immagine
      Immagine

      Fig 2: Visualizzazione alternativa del layout della breadboard del circuito

    Se vuoi un aspetto più pulito ho allegato i file kicad per la scheda che viene mostrata di seguito.

    • Immagine
      Immagine

      Fig 3: Vista dall'alto della scheda del sensore

    • Immagine
      Immagine

      Fig 4: Scheda sensore ISO

    • Passaggio 4: modificare il laser per l'alimentazione esterna

      Nei passaggi seguenti creerai l'assieme puntatore laser.

      - Smontare il puntatore laser. Nel fare ciò, annotare l'orientamento dei terminali della batteria rispetto all'emettitore laser.- Quindi, dissaldare la molla di connessione della batteria e il pulsante momentaneo dal laser.- Saldare un pezzo di filo tra i terminali dove si trovava il pulsante. Ora, quando l'alimentazione viene fornita al laser, si accenderà automaticamente.- Ora saldare i cavi positivo e negativo al laser. Se stai usando lo stesso laser dall'elenco delle parti, puoi usare l'immagine qui sotto per vedere i punti di saldatura. In caso contrario, potrebbe essere necessario trovare da soli i punti di saldatura. È possibile utilizzare l'orientamento della batteria come suggerimento per il cavo positivo o negativo. Per trovare l'ultimo punto di saldatura è possibile utilizzare un alimentatore da 5v e sondare il circuito con due puntali. Quando hai creato il circuito corretto, hai trovato il punto di saldatura e il laser si accenderà.

      • Immagine
        Immagine

        Il filo arancione sta sostituendo il pulsante momentaneo

      • Immagine
        Immagine

        Mostrando i cavi positivi e negativi

      - Il passaggio finale consiste nel creare un montante di montaggio direzionale per il laser in modo che possa essere facilmente regolato per mirare alla presa del laser. Ho scoperto che la maggior parte dei kit lego bionicle sono un'ottima fonte di giunti a sfera economici. Incolla un pezzo del giunto sferico al puntatore laser usando la colla super. Ora puoi montare il giunto a presa su qualsiasi superficie e inserire il laser.

      • Immagine
        Immagine

        Giunto a sfera

      • Immagine
        Immagine

        Giunto a presa

      • Immagine
        Immagine

        Sfera e presa assemblate

      • Passaggio 5: accendere il laser e testare il circuito di rilevamento

        Collega il laser alla breadboard. Il positivo dovrà essere collegato a 5v e mettere a terra il filo negativo. Se il laser si accende alla grande, in caso contrario, ricontrolla di avere la tensione corretta con un multimetro. Se ancora non funziona, prova a scambiare i cavi nel caso in cui lo avessi collegato al contrario. Se continua a non funzionare, potresti non aver saldato i pad corretti, torna all'ultimo passaggio.

        • Immagine
          Immagine

          Laser funzionante con un raggio sano

        Una volta che hai il raggio laser è il momento di testare il circuito di rilevamento. Punta il laser verso il fotodiodo. Il LED dovrebbe spegnersi segnalando che il raggio è attivo. Saluta la mano attraverso il raggio e il LED dovrebbe accendersi segnalando un viaggio.

        • Immagine
          Immagine

          Il raggio non è interrotto e il led è spento

        • Immagine
          Immagine

          L'intruso interrompe il raggio facendo accendere il led

        • Passaggio 6: collega la tua webcam e verifica la sua funzionalità

          Collega la tua webcam alla porta USB. Per eseguire lo streaming del video abbiamo bisogno dell'utility mjpg-streamer. Ecco un ottimo tutorial su come fare proprio questo. Una volta installato correttamente mjpg-streamer. Avvia lo streaming video inserendo il seguente comando nel terminale.

          cd /dove hai installato mjpg-streamer/mjpg-streamer

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

          Questo comando imposterà un flusso sulla porta 8081 utilizzando la sorgente video0. Se vuoi più webcam inserisci di nuovo il comando sopra ma cambia video0 in video1 e 8081 in 8082. Ho trasmesso in streaming fino a 3 webcam in questo modo e il pi non veniva sovraccaricato.

          Verifica che la connessione funzioni aprendo un browser su un altro computer e inserisci ip-address-of-pi:8081 o sul pi puoi semplicemente inserire localhost:8081. Se non conosci il tuo IP del pi inserisci quanto segue nel terminale

          ifconfig

          Se tutto funziona dovresti vedere la homepage di mpg-streamer. Fare clic sulla scheda Stream per vedere il flusso della webcam. Di seguito è riportato uno screenshot dell'interfaccia.

          • Immagine
            Immagine

            output di esempio di mjpg-streamer

          Facendo questo tutorial per la seconda volta sono riuscito ad accedere alla home page di mjpg-streamer ma non ho visto uno stream. Per risolvere questo problema ho letto questo post (link ora interrotto), in particolare la parte sul formato pixel YUYV, se incontri uno stream vuoto dovresti consultarlo anche tu.

          Passaggio 7: Intervallo

          Ok, a questo punto dovremmo avere il nostro Raspberry Pi attivo e funzionante. Il nostro laser è stato modificato per l'alimentazione esterna. Il nostro circuito di rilevamento è stato costruito e hai confermato che quando il raggio laser colpisce il fotodiodo il led si spegne e quando si interrompe il raggio il led dovrebbe accendersi. Infine dovresti avere la tua webcam connessa e funzionante in streaming.

          Ora è il momento di mettere tutto insieme. Iniziamo in modo semplice cercando di rilevare l'intervento del raggio laser con il software.

          Collegare il circuito di rilevamento alla breadboard come mostrato. Assicurati di collegare il cavo del segnale del sensore al pin 25 in preparazione per il passaggio successivo. La resistenza di pull down non è opzionale. Avevo un 10k in giro, ma qualsiasi resistenza dovrebbe andare bene.

          • Immagine
            Immagine

            Layout breadboard con PiCobler

          • Passaggio 8: monitorare il laser con il software

            Scriviamo un breve programma per ascoltare il segnale laser e inviare l'output al terminale. Puoi scaricare il codice come allegato.

            Probabilmente dovrai installare le dipendenze per questo script. Python e il modulo gpio. Per installarli entra

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

            Una volta completata l'installazione di python, scarica lo script python allegato chiamato read_pin.py ed esegui

            cd /directory dove metti il file/chmod 777 read_pin.py

            Il comando chmod darà allo script il permesso di essere eseguito. Quindi prova che tutto va bene e dandy correndo

            sudo python3 read_pin.py

            Se tutto va bene dovresti vedere un output della console come mostrato di seguito. Per uscire dallo script Python invio

            Ctrl-Do

          • Immagine
            Immagine

            Output console corretto (mostrato utilizzando MobaXterm)

          Agita la mano davanti al raggio laser e dovresti vedere alcuni output sulla console che ti avvisano che il raggio è stato interrotto. Sentiti libero di giocare con lo script per far funzionare il tuo sistema in modi diversi.

          Passaggio 9: crea una pagina Web per visualizzare il tuo stream

          Ora dobbiamo configurare un'interfaccia di visualizzazione della webcam. Per questo passaggio sarà necessario installare il server Web Apache. Ci sono molti tutorial là fuori su come configurarne uno. Ma ecco la breve lista con una configurazione minima.

          sudo apt-get install apache2

          una volta installato dovresti essere in grado di digitare nel tuo browser sul raspberry pi

          localhost

          Dovresti vedere la pagina di benvenuto di apache. Se questa è la prima volta che configuri un server web, probabilmente vorrai configurare il tuo pi in modo che abbia un indirizzo IP statico in modo che il tuo router assegni sempre l'ip corretto se esegui un ciclo di alimentazione. Se desideri visualizzare il tuo sistema di sicurezza da un'altra posizione, dovrai configurare il port forwarding sul tuo router. È passato un po' di tempo, ma penso anche che dovrai inoltrare anche tutte le porte che hanno una webcam. Ci sono molti tutorial là fuori che coprono queste procedure. Tieni presente che chiunque può vedere la tua webcam se scegli di configurare il port forwarding sul tuo router.

          I file allegati sono pagine web di esempio che puoi utilizzare per configurare il tuo sito web. Dovrai cambiare l'estensione del file sul file html in quanto non me lo permetterebbero di caricarlo. Quindi posiziona i file nella cartella www richiamata nel file di configurazione di apache. La posizione predefinita è

          cd /var/www

          Se desideri cambiare la posizione in cui il server web cerca i tuoi file html puoi modificare il file abilitato per i siti inserendo

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

          Cambia qualsiasi istanza di /var/www/ nella posizione che desideri. Ho messo il mio in /home/pi/Desktop/www/

          Una volta che hai i file html nella cartella web, inserisci localhost nel browser o l'indirizzo IP del pi da un altro computer. Dovresti vedere qualcosa del genere.

          • Immagine
            Immagine

            Screenshot dei file allegati in funzione

          DOLCEZZA!

          Passaggio 10: impostare gli avvisi e-mail

          Stanno accadendo cose buone! Sfidiamo la fortuna tentando di inviare un avviso e-mail dal pi a un indirizzo e-mail predefinito. Lo script Python allegato creerà la tua email che desideri inviare, si connetterà a un provider di posta elettronica come Gmail e invierà l'e-mail utilizzando il provider di posta elettronica. Ciò si ottiene utilizzando il pacchetto smtp di python. Ti suggerisco di creare un indirizzo email fittizio solo per il tuo sistema di sicurezza poiché dovremo ridurre la sicurezza sul tuo account Gmail affinché il pacchetto smtp funzioni.

          Dovrai modificare lo script in più punti per ottenere una trasmissione di successo. È pesantemente commentato e produrrà molti output sul terminale per tua comodità.

          Le cose che dovrai cambiare saranno

          • tuo_ip = "192.168.0.177"
          • your_ip_optional_port = ":8080"
          • port_to_camera = ":8081"
          • send_email_username = "il tuo nome utente email"
          • send_email_password = "la tua password"

          your_ip_optional_port sarà molto probabilmente vuoto a meno che il tuo server Apache non sia in esecuzione su una porta diversa da quella predefinita 80. Avevo già un server in esecuzione su 80, quindi ho impostato il mio pi per l'esecuzione su 8080. Port_to_camera sarà la porta su cui specifichi la tua fotocamera eseguire su utilizzando mjpeg streamer.

          Dopo aver modificato queste variabili all'inizio dello script, eseguire il programma inserendo quanto segue nel terminale.

          cd /cartella dove hai messo lo script/

          sudo python3 send_mail.py

          Se le stelle sono allineate correttamente e tutte le variabili sono corrette, dovresti ricevere un'e-mail simile a quella qui sotto.

          • Immagine
            Immagine

            Screenshot dei file allegati in funzione

          Ci sono molti posti in cui questo script può fallire. Non frustrarti se non funziona la prima volta. Utilizzare i punti di debug nello script per restringere le aree problematiche e quindi concentrarsi su un problema alla volta.

          Passaggio 11: attivare lo script e-mail quando viene attivato il laser

          Ora che il pi greco è in grado di inviare e-mail, automatizziamolo in modo che ogni volta che il laser viene attivato, riceviamo un'e-mail. Scarica il file allegato che è una versione modificata di read_pin.py che contiene una nuova funzione per avviare lo script di posta. La principale riga aggiuntiva è la seguente

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

          Questa riga lancerà lo script di invio della posta in parallelo con lo script di rilevamento laser. Ciò è auspicabile perché lo script di invio della posta richiede alcuni secondi per essere completato e bloccherebbe l'esecuzione dello script di rilevamento laser fino all'invio dell'e-mail. Questo non è un problema per un sistema a telecamera singola, ma se disponi di più telecamere, dovresti rilevare un viaggio laser sulla telecamera 1 anche se la telecamera 2 ha attivato un evento e-mail. La variabile sm_pid conterrà il pid del processo che viene lanciato da questo comando. Controlliamo questo ID se il trigger dell'e-mail viene chiamato di nuovo se esiste l'e-mail sta ancora inviando, quindi ignoriamo l'evento. Se non esiste, è probabile che si tratti di un nuovo evento e viene inviata un'e-mail.

          Prova tutto funziona eseguendo

          cd /directory in cui metti il file/

          chmod 777 read_pin_with_mail.py

          sudo python3 read_pin_with_mail.py

          Quando rompi il raggio laser dovresti ricevere un'e-mail con l'istantanea scattata dalla webcam.

          Passaggio 12: creare uno script principale per avviare il sistema

          A questo punto il progetto è per lo più fatto. Un ultimo passaggio consiste nel semplificare l'avvio del sistema con un ultimo script. Lancerà tutti i sottoprogrammi e configurerà la webcam con uno script. Il file allegato può essere avviato all'avvio modificando il file /etc/rc.local. È necessario modificare l'estensione del file e potrebbe essere necessario modificare lo script per includere i percorsi corretti se si inseriscono gli script in una posizione diversa.

          Passaggio 13: Conclusione

          Bene, è così. Spero che ti sia piaciuto questo istruibile! Fatemi sapere nei commenti se avete domande o avete bisogno di informazioni più dettagliate in qualsiasi area. Continua ad armeggiare!

          • Immagine
            Immagine

    Consigliato: