Inhaltsverzeichnis:

Raspberry Pi Lasersicherheitssystem - Gunook
Raspberry Pi Lasersicherheitssystem - Gunook

Video: Raspberry Pi Lasersicherheitssystem - Gunook

Video: Raspberry Pi Lasersicherheitssystem - Gunook
Video: LiPo battery EXPLODES 🔥🔥🔥 2024, Juli
Anonim
Image
Image
Bild
Bild

Vielen Dank für das Auschecken meiner instructable. Am Ende dieser Anleitung bauen Sie das Himbeer-Pi-Laser-Tripwire-System mit E-Mail-Alarmfunktion, die im Video gezeigt wird.

Um diese Anleitung zu vervollständigen, müssen Sie mit allgemeinen Schaltungen und Löten vertraut sein, wissen, wie man ein Steckbrett verwendet, und sich mit der Klemme auf dem Pi wohl fühlen. Erfahrung mit Python ist ebenfalls hilfreich.

Dieses Projekt besteht aus drei Hauptsystemen. Der Himbeer-Pi, die Laser-Tripwire-Schaltung und ein Beobachtungscomputer. Unser Ziel ist es, mit dem Himbeer-Pi eine Spannungsänderung an der Laser-Tripwire-Schaltung zu erkennen und dann einen beobachtenden Computer in Form eines E-Mail- und Videostreams zu alarmieren.

Lass uns anfangen.

Schritt 1: Erforderliche Komponenten aufrunden

Um dieses Projekt abzuschließen, benötigen Sie die folgenden Elemente.

  1. Mindestens ein funktionsfähiger Raspberry Pi. In diesem Build habe ich einen Pi im Modell B-Stil verwendet, auf dem Raspbian Wheezy ausgeführt wird. Ich bin sicher, dass dieses Tutorial gut funktioniert, wenn Sie Raspbian Jessie ausführen.
  2. Eine externe Stromquelle für den Himbeer-Pi. Wir werden eine beträchtliche Menge Strom ziehen, sobald dies alles angeschlossen ist. Ich habe viel Zeit damit verbracht, ein beschissenes Netzteil als meine Fehlerquelle während meines ersten Builds zu diagnostizieren. Stellen Sie sicher, dass Sie über eine kräftige Stromversorgung verfügen, die mindestens 2 Ampere liefern kann.
  3. Ein billiger Laserpointer. Ich habe meine neben der Kasse an einer Tankstelle gefunden. Wenn Sie den genauen Laser wünschen, finden Sie ihn hier. Auf dem Etikett steht 630-680 nm für die Wellenlänge. Welchen Laser Sie auch immer erhalten, bestimmt einige der anderen Komponenten im Build. Stellen Sie also sicher, dass das Etikett seine Wellenlänge identifiziert.
  4. Eine Webcam im USB-Stil. Diese Webcam verfügt über einen verstellbaren Fuß, mit dem Sie die Kamera gut positionieren können. Ich fand, dass das mit der Webcam gelieferte USB-Kabel für meine Anwendung zu kurz war, also habe ich eine Verlängerung bei Monoprice gefunden.
  5. Eine Art Breakout-Kit für den Himbeer-Pi, damit Sie leicht auf die Pins des Prozessors zugreifen können.

    Bild
    Bild
    Bild
    Bild
  6. Ein Steckbrett.
  7. Ein Lötkolben.
  8. Überbrückungsdrähte für das Steckbrett.
  9. Schaltungskomponenten. Multiplizieren Sie mit der Anzahl der gewünschten Stolperdrähte.

    • Eine funktionierende LED
    • Ein 100 Ohm Widerstand
    • Ein 1k Widerstand
    • Ein 10k Widerstand
    • Ein 200k Widerstand Wirklich jeder große Widerstand reicht aus. Ich habe es mit einem 1M-Widerstand getestet und es hat gut funktioniert. FYI 10k war zu klein.
    • Ein PNP-Transistor PN:2N4403-APCT-ND
    • Eine Fotodiode (passen Sie diese an Ihre Laserwellenlänge an) PN:PDB-C142-ND

Ich werde die Kicad-Dateien für die Platine anhängen, aber die Herstellung der Platine in diesem anweisbaren nicht übergehen.

Im Laufe dieses Projekts habe ich die folgenden optionalen Tools als praktisch empfunden:

  1. Synergie auf dem Himbeer-Pi installieren. Falls Sie nicht vertraut sind, können Sie mit dieser Software die Maus und die Tastatur des Raspberry Pi mit einem anderen Computer steuern. Das ist schön, wenn Sie wie ich sind und sich auf einem anderen Computer wohler fühlen. Auch das ist Software, die jeder haben sollte.
  2. Ein USB-Hub. Für jede Webcam, die Sie verwenden möchten, benötigen Sie einen Port.
  3. Spannungsmesser oder Oszilloskop, falls vorhanden.
  4. Verwenden von MobaXterm zur Steuerung des Himbeer-Pi und zur Manipulation von Dateien über ssh. Es ist ein Muss für jeden, der an Fenstern hochgezogen ist. Sehen Sie sich dieses Tutorial an, um sich für die Verwendung einzurichten.

Schritt 2: Bringen Sie den Pi zum Laufen

  • Bild
    Bild

    Das pi mit minimalen angehängten Komponenten

  • Bevor wir Laser schießen können, müssen mehrere Softwareschichten erstellt werden. Um die besten Erfolgschancen zu haben, ist es eine gute Praxis, mit einem sauberen Blatt zu beginnen. Trennen Sie dazu alle nicht benötigten Elemente vom Pi. Dadurch wird die Wahrscheinlichkeit von Störungen durch ein angeschlossenes Gerät verringert.

    Stellen Sie als Nächstes sicher, dass Ihr Raspberry Pi mit der neuesten Software läuft, indem Sie Folgendes in das Terminal eingeben:

    sudo apt-get update

    Mit dem Himbeer-Pi up to date ist es Zeit für den nächsten Schritt

    Schritt 3: Erstellen Sie die Lasererkennungsschaltung

    Legen Sie die Komponenten wie abgebildet auf das Steckbrett. Versorgen Sie das Steckbrett mit dem 5-V-Ausgang des Pi oder einem Tischnetzteil. In Abbildung 1 ist die 5-V-Versorgung mit der positiven Steckbrettschiene unten links im Bild und der Masse oben links verbunden. Diese Schaltung verwendet die Fotodiode als Schalter zum Triggern des Transistors. Der Transistor wandelt die kleine Spannungsänderung in der Fotodiode in ein etwas digitales Signal um, das der Pi lesen kann. Für alle nachfolgenden Schritte ist der Punkt zwischen 100 Ohm und Signal-LED der Punkt, an dem wir die Schaltung mit dem Pi abtasten.

    • Bild
      Bild

      Abb. 1: Schaltungsplatinen-Layout oben

    • Bild
      Bild

      Abb. 2: alternative Ansicht des Schaltkreis-Steckbrett-Layouts

    Wenn Sie ein saubereres Aussehen wünschen, habe ich die Kicad-Dateien für das unten gezeigte Board angehängt.

    • Bild
      Bild

      Abb. 3: Draufsicht der Sensorplatine

    • Bild
      Bild

      Abb. 4: Sensorplatine ISO

    • Schritt 4: Ändern Sie den Laser für externe Stromversorgung

      In den folgenden Schritten bauen Sie die Laserpointer-Baugruppe auf.

      - Zerlegen Sie den Laserpointer. Beachten Sie dabei die Ausrichtung der Batteriepole zum Laser-Emitter.- Entlöten Sie als nächstes die Batterieanschlussfeder und den Taster vom Laser.- Löten Sie ein Stück Draht zwischen die Pole, wo der Taster war. Wenn der Laser nun mit Strom versorgt wird, schaltet er sich automatisch ein. - Löten Sie nun die positiven und negativen Leitungen an den Laser. Wenn Sie den gleichen Laser aus der Stückliste verwenden, können Sie das Bild unten verwenden, um die Lötstellen zu sehen. Wenn nicht, müssen Sie die Lötstellen möglicherweise selbst finden. Sie können die Batterieausrichtung als Hinweis für das Plus- oder Minuskabel verwenden. Um die letzte Lötstelle zu finden, können Sie ein 5V-Netzteil verwenden und die Schaltung mit zwei Messleitungen sondieren. Wenn Sie die richtige Schaltung erstellt haben, haben Sie die Lötstelle gefunden und der Laser leuchtet auf.

      • Bild
        Bild

        Das orangefarbene Kabel ersetzt den Taster

      • Bild
        Bild

        Anzeigen der positiven und negativen Leitungen

      - Der letzte Schritt besteht darin, einen gerichteten Montagepfosten für den Laser herzustellen, damit er leicht angepasst werden kann, um auf die Laseraufnahme zu zielen. Ich habe festgestellt, dass die meisten Lego-Bionicle-Kits eine ausgezeichnete Quelle für billige Kugelgelenke sind. Kleben Sie ein Stück des Kugelgelenks mit Sekundenkleber auf den Laserpointer. Jetzt können Sie die Muffe an jeder Oberfläche montieren und den Laser einrasten lassen.

      • Bild
        Bild

        Kugelgelenk

      • Bild
        Bild

        Sockelgelenk

      • Bild
        Bild

        Kugel und Pfanne montiert

      • Schritt 5: Schalten Sie den Laser ein und testen Sie die Erkennungsschaltung

        Stecken Sie den Laser in Ihr Steckbrett. Das Plus muss an 5 V angeschlossen werden und das Minuskabel geerdet werden. Wenn sich der Laser gut einschaltet, überprüfen Sie andernfalls mit einem Multimeter, ob Sie die richtige Spannung haben. Wenn es immer noch nicht funktioniert, versuchen Sie, die Kabel zu tauschen, falls Sie es nach hinten angeschlossen haben. Wenn es immer noch nicht funktioniert, haben Sie möglicherweise nicht an den richtigen Pads gelötet, gehen Sie zum letzten Schritt zurück.

        • Bild
          Bild

          Arbeitslaser mit gesundem Strahl

        Sobald Sie den Laserstrahl haben, ist es Zeit, die Erkennungsschaltung zu testen. Richten Sie den Laser auf die Fotodiode. Die LED sollte erlöschen und signalisieren, dass der Strahl aktiv ist. Bewegen Sie Ihre Hand durch den Strahl und die LED sollte aufleuchten und eine Auslösung signalisieren.

        • Bild
          Bild

          Strahl ist nicht unterbrochen und die LED ist aus

        • Bild
          Bild

          Einbrecher unterbricht den Strahl, wodurch die LED aufleuchtet

        • Schritt 6: Schließen Sie Ihre Webcam an und testen Sie ihre Funktionalität

          Verbinden Sie Ihre Webcam mit dem USB-Port. Um das Video zu streamen, benötigen wir das Dienstprogramm mjpg-streamer. Hier ist ein tolles Tutorial, wie man genau das macht. Sobald Sie mjpg-streamer richtig installiert haben. Starten Sie das Streaming von Videos, indem Sie den folgenden Befehl in das Terminal eingeben.

          cd /wo Sie mjpg-streamer/mjpg-streamer installiert haben

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

          Dieser Befehl richtet einen Stream auf Port 8081 mit der Quelle video0 ein. Wenn Sie mehrere Webcams möchten, geben Sie den obigen Befehl erneut ein, ändern Sie jedoch video0 in video1 und 8081 in 8082. Ich habe auf diese Weise bis zu 3 Webcams gestreamt und der Pi wurde nicht überlastet.

          Testen Sie, ob die Verbindung funktioniert, indem Sie einen Browser auf einem anderen Computer öffnen und ip-address-of-pi:8081 eingeben oder auf dem pi einfach localhost:8081 eingeben. Wenn Sie Ihre IP des Pi nicht kennen, geben Sie Folgendes in das Terminal ein

          ifconfig

          Wenn alles funktioniert, sollten Sie die mpg-streamer-Homepage sehen. Klicken Sie auf den Stream-Tab, um Ihren Webcam-Stream anzuzeigen. Unten ist ein Screenshot der Schnittstelle.

          • Bild
            Bild

            mjpg-Streamer-Beispielausgabe

          Als ich dieses Tutorial zum zweiten Mal durchführte, konnte ich auf die mjpg-streamer-Homepage zugreifen, aber keinen Stream sehen. Um dies zu beheben, habe ich diesen Beitrag (Link jetzt defekt) gelesen, insbesondere den Teil über das YUYV-Pixelformat. Wenn Sie auf einen leeren Stream stoßen, sollten Sie ihn ebenfalls konsultieren.

          Schritt 7: Pause

          Okay, an dieser Stelle sollten wir unseren Himbeer-Pi zum Laufen bringen. Unser Laser wurde für externe Stromversorgung modifiziert. Unsere Erkennungsschaltung wurde aufgebaut und Sie haben bestätigt, dass die LED ausgeht, wenn der Laserstrahl auf die Fotodiode trifft, und wenn Sie den Strahl unterbrechen, sollte die LED eingeschaltet werden. Schließlich sollten Sie Ihre Webcam angeschlossen haben und funktionsfähig streamen.

          Jetzt ist es an der Zeit, alles zusammenzufügen. Beginnen wir einfach, indem wir versuchen, das Auslösen des Laserstrahls mit einer Software zu erkennen.

          Schließen Sie die Erkennungsschaltung wie gezeigt an das Steckbrett an. Stellen Sie sicher, dass Sie das Sensorsignalkabel an Pin 25 anschließen, um den nächsten Schritt vorzubereiten. Der Pulldown-Widerstand ist nicht optional. Ich hatte einen 10k herumliegen, aber jeder Widerstand sollte tun.

          • Bild
            Bild

            Steckbrett-Layout mit PiCobler

          • Schritt 8: Überwachen Sie den Laser mit Software

            Lassen Sie uns ein kurzes Programm schreiben, um das Lasersignal abzuhören und diese Ausgabe an das Terminal zu senden. Sie können den Code als Anhang herunterladen.

            Sie müssen wahrscheinlich die Abhängigkeiten für dieses Skript installieren. Python und das gpio-Modul. Um diese zu installieren, geben Sie ein

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

            Sobald Sie Python erfolgreich installiert haben, laden Sie das angehängte Python-Skript namens read_pin.py herunter und führen Sie es aus

            cd /Verzeichnis, wo Sie die Datei abgelegt haben/chmod 777 read_pin.py

            Der Befehl chmod erteilt dem Skript die Berechtigung zum Ausführen. Dann teste beim Laufen, dass alles in Ordnung ist

            sudo python3 read_pin.py

            Wenn alles gut geht, sollten Sie eine Konsolenausgabe wie unten gezeigt sehen. Um das Python-Skript zu beenden, geben Sie ein

            Strg-C

          • Bild
            Bild

            Korrekte Konsolenausgabe (dargestellt mit MobaXterm)

          Bewegen Sie Ihre Hand vor dem Laserstrahl und Sie sollten eine Ausgabe auf der Konsole sehen, die Sie darauf hinweist, dass der Strahl unterbrochen wurde. Fühlen Sie sich frei, mit dem Skript herumzuspielen, damit Ihr System auf verschiedene Weise funktioniert.

          Schritt 9: Erstellen Sie eine Webseite, um Ihren Stream anzuzeigen

          Jetzt müssen wir eine Webcam-Anzeigeschnittstelle einrichten. Für diesen Schritt müssen Sie den Apache-Webserver installieren. Es gibt viele Tutorials zum Einrichten. Aber hier ist die kurze Liste mit minimaler Konfiguration.

          sudo apt-get install apache2

          Nach der Installation sollten Sie in Ihrem Browser auf dem Himbeerpi tippen können

          localhost

          Sie sollten die Willkommensseite von Apache sehen. Wenn Sie zum ersten Mal einen Webserver einrichten, möchten Sie wahrscheinlich Ihren Pi so konfigurieren, dass er eine statische IP-Adresse hat, damit Ihr Router immer die richtige IP-Adresse zuweist, wenn Sie ihn aus- und wieder einschalten. Wenn Sie Ihr Sicherheitssystem von einem anderen Standort aus anzeigen möchten, müssen Sie die Portweiterleitung auf Ihrem Router einrichten. Es ist schon eine Weile her, aber ich denke auch, dass Sie alle Ports weiterleiten müssen, auf denen eine Webcam vorhanden ist. Es gibt viele Tutorials, die diese Verfahren behandeln. Beachten Sie, dass jeder Ihre Webcam sehen kann, wenn Sie die Portweiterleitung auf Ihrem Router einrichten.

          Die angehängten Dateien sind Beispiel-Webseiten, die Sie zum Einrichten Ihrer Website verwenden können. Sie müssen die Dateierweiterung der HTML-Datei ändern, da ich sie nicht hochladen kann. Als nächstes legen Sie die Dateien in Ihrem www-Ordner ab, der in Ihrer Apache-Konfigurationsdatei genannt wird. Der Standardspeicherort ist

          cd /var/www

          Wenn Sie den Speicherort ändern möchten, an dem der Webserver nach Ihren HTML-Dateien sucht, können Sie Ihre Sites-aktivierte Datei bearbeiten, indem Sie eingeben

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

          Ändern Sie jede Instanz von /var/www/ in den gewünschten Speicherort. Ich habe meine in /home/pi/Desktop/www/ abgelegt.

          Sobald Sie die HTML-Dateien im Webordner haben, geben Sie localhost in den Browser oder die IP-Adresse des Pi von einem anderen Computer ein. Sie sollten so etwas sehen.

          • Bild
            Bild

            Screenshot der angehängten Dateien in Betrieb

          SCHÖN!

          Schritt 10: E-Mail-Benachrichtigungen einrichten

          Es passieren gute Dinge! Lassen Sie uns unser Glück versuchen, indem wir versuchen, eine E-Mail-Benachrichtigung vom Pi an eine vordefinierte E-Mail-Adresse zu senden. Das angehängte Python-Skript erstellt Ihre E-Mail, die Sie senden möchten, stellt eine Verbindung zu einem E-Mail-Anbieter wie Google Mail her und sendet die E-Mail über den E-Mail-Anbieter. Dies wird mit dem SMTP-Paket von Python erreicht. Ich schlage vor, dass Sie eine Dummy-E-Mail-Adresse nur für Ihr Sicherheitssystem erstellen, da wir die Sicherheit Ihres Google Mail-Kontos reduzieren müssen, damit das SMTP-Paket funktioniert.

          Sie müssen das Skript an mehreren Stellen ändern, um eine erfolgreiche Übertragung zu erhalten. Es ist stark kommentiert und erzeugt zu Ihrer Bequemlichkeit viele Ausgaben auf dem Terminal.

          Dinge, die Sie ändern müssen, werden sein

          • your_ip = "192.168.0.177"
          • your_ip_optional_port = ":8080"
          • port_to_camera = ":8081"
          • send_email_username = "Ihr E-Mail-Benutzername"
          • send_email_password = "Ihr Passwort"

          your_ip_optional_port wird höchstwahrscheinlich leer sein, es sei denn, Ihr Apache-Server läuft auf einem anderen Port als dem Standard-Port 80. Ich hatte bereits einen Server auf 80, also habe ich meinen Pi auf 8080 eingestellt. Port_to_camera ist der Port, den Sie für Ihre Kamera angeben mit mjpeg streamer weiterlaufen lassen.

          Nachdem Sie diese Variablen zu Beginn des Skripts geändert haben, führen Sie das Programm aus, indem Sie Folgendes im Terminal eingeben.

          cd /Ordner, in dem Sie das Skript ablegen/

          sudo python3 send_mail.py

          Wenn die Sterne richtig ausgerichtet sind und alle Variablen korrekt sind, sollten Sie eine E-Mail ähnlich der untenstehenden erhalten.

          • Bild
            Bild

            Screenshot der angehängten Dateien in Betrieb

          Es gibt viele Stellen, an denen dieses Skript fehlschlagen kann. Seien Sie nicht frustriert, wenn es beim ersten Mal nicht funktioniert. Verwenden Sie die Debugging-Punkte im Skript, um die Problembereiche einzugrenzen und sich dann auf ein Problem nach dem anderen zu konzentrieren.

          Schritt 11: E-Mail-Skript auslösen, wenn Laser ausgelöst wird

          Jetzt, da der Pi in der Lage ist, E-Mails zu senden, automatisieren wir ihn so, dass wir jedes Mal, wenn der Laser ausgelöst wird, eine E-Mail erhalten. Laden Sie die angehängte Datei herunter, die eine modifizierte Version von read_pin.py ist, die eine neue Funktion zum Starten des Mail-Skripts enthält. Die wichtigste zusätzliche Zeile ist die folgende

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

          Diese Zeile startet das Send-Mail-Skript parallel zum Laser-Sensing-Skript. Dies ist wünschenswert, da das Skript zum Senden von E-Mails einige Sekunden in Anspruch nimmt und die Ausführung des Laser-Sensing-Skripts blockieren würde, bis die E-Mail gesendet wurde. Dies ist für ein einzelnes Kamerasystem kein Problem, aber wenn Sie mehrere Kameras haben, möchten Sie eine Laserfahrt auf Kamera 1 erkennen, auch wenn Kamera 2 ein E-Mail-Ereignis ausgelöst hat. Die Variable sm_pid enthält die PID des Prozesses, der durch diesen Befehl gestartet wird. Wir prüfen auf diese ID, wenn der E-Mail-Trigger erneut aufgerufen wird, wenn er existiert, die E-Mail noch sendet, also ignorieren wir das Ereignis. Wenn es nicht existiert, handelt es sich wahrscheinlich um ein neues Ereignis und es wird eine E-Mail gesendet.

          Testen Sie, dass alles funktioniert, indem Sie laufen

          cd /Verzeichnis, in dem Sie die Datei abgelegt haben/

          chmod 777 read_pin_with_mail.py

          sudo python3 read_pin_with_mail.py

          Wenn Sie den Laserstrahl unterbrechen, sollten Sie eine E-Mail mit dem von der Webcam aufgenommenen Schnappschuss erhalten.

          Schritt 12: Erstellen Sie ein Master-Skript zum Initiieren des Systems

          Zu diesem Zeitpunkt ist das Projekt größtenteils abgeschlossen. Ein letzter Schritt besteht darin, den Start des Systems mit einem letzten Skript zu vereinfachen. Es startet alle Unterprogramme und richtet die Webcam mit einem Skript ein. Die angehängte Datei kann beim Start gestartet werden, indem Sie Ihre Datei /etc/rc.local bearbeiten. Sie müssen die Dateierweiterung ändern und das Skript möglicherweise bearbeiten, um die richtigen Pfade einzuschließen, wenn Sie Ihre Skripts an einem anderen Ort ablegen.

          Schritt 13: Fazit

          Nun, das ist es. Ich hoffe, Sie haben dieses instructable genossen! Lass es mich in den Kommentaren wissen, wenn du Fragen hast oder detailliertere Informationen in irgendwelchen Bereichen benötigst. Bastle weiter!

          • Bild
            Bild

    Empfohlen: