DIY Pan und Tilt Network Security Cam mit Himbeer-Pi

DIY Pan und Tilt Network Security Cam mit Himbeer-Pi / DIY

Erfahren Sie, wie Sie eine fernsichtbare Überwachungskamera mit einem Raspberry Pi erstellen. Dieses Projekt kann morgens mit nur den einfachsten Teilen abgeschlossen werden. Hier ist das Endergebnis:

Was du brauchst

  • Himbeer-Pi 2 oder 3 mit Micro SD-Karte
  • Arduino UNO oder ähnliches
  • 2 x Micro- oder Mini-Hobby-Servos
  • USB-Webcam
  • Männlich zu männlich Anschlussdrähte
  • Männlich zu weiblich Anschlussdrähte
  • Verschiedene Kabelbinder

Aufbau der Überwachungskamera

Bringen Sie ein Servohorn (das kleine Plastik) an “Formen”) zu jedem Servo mit der mitgelieferten Schraube. Die besondere Form spielt keine Rolle, auch wenn sie größer ist, desto besser. Ziehen Sie die Schraube nicht zu fest an.

Verwenden Sie nun Kabelbinder, um ein Servo rechtwinklig am anderen zu befestigen. Eine davon ist Schwenk (von links nach rechts), während die andere geneigt ist (nach oben und unten). Es ist egal, wer was tut, es kann im Code eingestellt werden.

Zum Schluss befestigen Sie Ihre Webcam an einem der Servos. Sie könnten hierfür Kabelbinder verwenden, obwohl meine Webcam mit einem an der Unterseite verschraubten Clip geliefert wurde. Ich habe diesen entfernt und mit der Schraube an der Hupe befestigt. Für die Stabilität können Sie das gesamte Rigg an einem Koffer oder einer Box montieren. Ein einfacher Karton macht den Trick ganz gut. Sie könnten ein ordentliches quadratisches Loch schneiden und ein Servo bündig an die Oberfläche montieren, jedoch reicht ein Kabelbinder aus.

Ein Wort zu Webcams

Nicht alle USB-Webcams sind gleich aufgebaut. Verbinden Sie Ihre Webcam mit dem USB-Port Ihres Pi und führen Sie den folgenden Befehl aus:

lsusb

Dieser Befehl zeigt Informationen zu allen am Pi angeschlossenen USB-Geräten an. Wenn Ihre Webcam hier nicht aufgeführt ist, können Sie einen aktiven USB-Hub ausprobieren und den Befehl wiederholen. Wenn die Webcam immer noch nicht erkannt wird, müssen Sie möglicherweise eine kompatible Webcam kaufen.

Servo-Setup

Während Servos unheimlich und komplex erscheinen mögen, sind sie wirklich einfach zu verbinden. Servos arbeiten mit der Pulsweitenmodulation (PWM), mit der digitale Systeme analoge Signale imitieren können. PWM-Signale sind im Wesentlichen ein schnelles EIN-AUS-Signal. Ein Signal, das EIN oder HIGH ist, wird anhand des Tastverhältnisses beschrieben. Der Arbeitszyklus wird in Prozent ausgedrückt und beschreibt, wie lange das Signal eingeschaltet ist. Ein PWM-Signal mit einem Tastverhältnis von 25% ist 25% der Zeit eingeschaltet und für die restlichen 75% ausgeschaltet. Das Signal ist beim Start nicht EIN und dann für immer AUS, es wird regelmäßig über einen sehr kurzen Zeitraum gepulst.

Servos hören auf diese Impulse und handeln entsprechend. Ein Tastverhältnis von 100% wäre das gleiche wie “regulär” 5 V und 0% wären gleich Masse. Machen Sie sich keine Sorgen, wenn Sie nicht genau verstehen, wie PWM funktioniert. Sie können trotzdem Servos steuern (Extreme Electronics ist ein guter Ort, um mehr zu erfahren)..

Es gibt zwei Hauptmethoden für die Verwendung von PWM - Hardware oder Software. Hardware-PWM bietet oft eine geringere Latenz (wie lange zwischen dem Servo, das den Befehl empfängt und sich bewegt) als Software-PWM, jedoch verfügt der Pi nur über einen Hardware-PWM-fähigen Pin. Es stehen externe Schaltkreise zur Verfügung, um mehrere Kanäle für Hardware-PWM bereitzustellen, jedoch kann auch ein einfaches Arduino die Aufgabe übernehmen, da sie mehrere Hardware-PWM-Pins haben.

Hier ist die Schaltung:

Überprüfen Sie die Pinbelegung für Ihren Pi. Sie variieren geringfügig zwischen den Modellen. Sie müssen herausfinden, wie Ihre Servos verdrahtet sind. Servos benötigen drei Drähte zur Steuerung, die Farben variieren jedoch leicht:

  • Rot ist positiv, verbinden Sie dies mit Pi + 5V
  • Braun oder Schwarz ist negativ, verbinden Sie dies mit dem GND des Pi
  • Orange oder Weiß ist Signal, verbinden Sie dies mit den Arduino-Pins 9 und 10

Arduino-Setup

Neu bei Arduino? Erste Schritte hier Erste Schritte mit Arduino: Einsteigerhandbuch Erste Schritte mit Arduino: Einsteigerhandbuch Arduino ist eine Open-Source-Plattform für Prototyping-Elektronik, die auf flexibler, einfach zu verwendender Hardware und Software basiert. Es ist für Künstler, Designer, Hobbyisten und alle gedacht, die interaktive Objekte oder Umgebungen erstellen möchten. Weiterlesen .

Sobald die Servos angeschlossen sind, öffnen Sie die Arduino IDE auf Ihrem Computer und laden Sie diesen Testcode hoch. Vergessen Sie nicht, die richtige Karte und den richtigen Port aus der Karte auszuwählen Extras> Platine und Extras> Port Menüs

#umfassen  // Importiere die Bibliothek Servo servoPan, servoTilt; // Servoobjekte erstellen int servoMin = 20, servoMax = 160; // Grenzen der Servos definieren void setup () // Servos auf PWM-fähigen Pins einrichten servoPan.attach (9); servoTilt.attach (10);  void loop () for (int i = servoMin; i < servoMax; ++i)  1 // Move servos from minimum to maximum servoPan.write(i); servoTilt.write(i); delay(100); // Wait 100ms  for(int i = servoMax; i > ServoMin; --i) // Servos vom Maximum zum Minimum servoPan.write (i) bewegen; servoTilt.write (i); Verzögerung (100); // Warte 100ms

Wenn alles gut geht, sollten Sie beide Servos langsam vor und zurück bewegen sehen. Beachte wie “ServoMin” und ServoMax” sind als 20 und 160 Grad definiert (anstelle von 0 und 180). Dies ist zum Teil darauf zurückzuführen, dass diese billigen Servos nicht in der Lage sind, die vollen 180 Grad genau zu bewegen, und auch aufgrund der physischen Größe der Webcam, dass die volle Reichweite nicht genutzt wird. Möglicherweise müssen Sie diese für Ihr Setup anpassen.

Wenn sie überhaupt nicht funktionieren, überprüfen Sie, ob die Schaltung korrekt verdrahtet ist. Breadboards können manchmal auch in der Qualität variieren. Daher sollten Sie in ein Multimeter investieren, um dies zu überprüfen.

Die Servos sind fast Der Arduino ist zu leistungsfähig, so dass er vom Pi angetrieben wird. Die 5-V-Schiene des Pi ist auf 750 mA begrenzt, die für den gesamten Pi bereitgestellt wird, und der Pi zieht ungefähr 500 mA an, wobei 250 mA für die Servos übrig bleiben. Diese Mikroservos benötigen ungefähr 80 mA, was bedeutet, dass der Pi zwei von ihnen handhaben kann. Wenn Sie mehrere Servos oder größere Modelle mit höherer Leistung verwenden möchten, müssen Sie möglicherweise ein externes Netzteil verwenden.

Laden Sie nun den folgenden Code in das Arduino hoch. Dadurch werden eingehende serielle Daten (seriell wie in Universal) abgehört Seriennummer Bus oder USB). Das Pi sendet diese Daten über USB an den Arduino und teilt ihm mit, wohin die Servos verschoben werden sollen.

#umfassen  // Importiere die Bibliothek Servo servoPan, servoTilt; // Servoobjekt erstellen String data = ""; // Eingehende Befehle speichern (Puffer) void setup () // Servos auf PWM-fähigen Pins einrichten servoPan.attach (9); servoTilt.attach (10); Serienbeginn (9600); // Seriell mit 9600 bps (Geschwindigkeit) starten void loop () while (Serial.available ()> 0) // Wenn Daten vorhanden sind char singleChar = Serial.read (); // Liest jedes Zeichen, wenn (singleChar == 'P') // Move-Servo servoPan.write (data.toInt ()); data = ""; // Puffer löschen else if (singleChar == 'T') // Neigungsservo verschieben servoTilt.write (data.toInt ()); data = ""; // Puffer löschen else data + = singleChar; // Neue Daten anhängen

Sie können diesen Code testen, indem Sie den seriellen Monitor öffnen (oben rechts> Serienmonitor) und Versenden einiger Testdaten:

  • 90P
  • 0P
  • 20T
  • 100T

Beachten Sie das Format der Befehle - einen Wert und dann einen Buchstaben. Der Wert ist die Position des Servos, und der Buchstabe (in Großbuchstaben) gibt das Schwenk- oder Neigungsservo an. Da diese Daten seriell vom Pi übertragen werden, durchläuft jedes Zeichen einen nach dem anderen. Der Arduino muss “Geschäft” diese bis der gesamte Befehl übermittelt wurde. Der letzte Buchstabe gibt nicht nur das Servo an, sondern informiert auch den Arduino, dass in diesem Befehl keine weiteren Daten vorhanden sind.

Trennen Sie schließlich Ihr Arduino vom Computer und Stecken Sie es über den üblichen USB-Anschluss in den Raspberry Pi.

Pi Setup

Jetzt ist es Zeit, das Pi einzurichten. Installieren Sie zunächst ein Betriebssystem. So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi: So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi Im Folgenden wird beschrieben, wie Sie ein neues Betriebssystem auf Ihrem Pi installieren und ausführen können - und wie Sie Ihr perfektes Setup für eine schnelle Katastrophe klonen Wiederherstellung. Weiterlesen . Verbinden Sie die Webcam und das Arduino mit dem Pi USB.

Aktualisieren Sie den Pi:

Sudo Apt-Get Update Sudo Apt-Get Upgrade

Bewegung installieren:

sudo apt-get install motion

Motion ist ein Programm für das Streaming von Webcams. Es bewältigt das schwere Heben und kann sogar Aufnahme- und Bewegungserkennung durchführen. Erstellen Sie ein Motion Capture-Sicherheitssystem. Verwenden Sie ein Raspberry Pi. Erstellen Sie ein Motion Capture-Sicherheitssystem. Verwenden Sie ein Raspberry Pi bauen mit dem Raspberry Pi, eines der interessantesten und dauerhaft nützlichsten ist das Motion Capture-Sicherheitssystem. Öffnen Sie die Motion-Konfigurationsdatei:

sudo nano /etc/motion/motion.conf

Diese Datei bietet viele Optionen zum Konfigurieren von Motion. Setup wie folgt:

  • Daemon ein - Führen Sie das Programm aus
  • Framerate: 100 - Wie viele Frames oder Bilder pro Sekunde gestreamt werden sollen
  • stream_localhost off - Zugriff über das Netzwerk zulassen
  • width 640 - Breite des Videos für Ihre Webcam
  • height 320 - Videohöhe, passen Sie für Ihre Webcam an
  • stream_port 8081 - Der Port, an den das Video ausgegeben werden soll
  • output_picture off - Speichern Sie keine Bilder

Dies ist eine ziemlich große Datei, die Sie möglicherweise verwenden möchten STRG + W nach Zeilen suchen. Wenn Sie fertig sind, drücken Sie STRG + X und bestätigen Sie dann, um zu speichern und zu beenden.

Bearbeiten Sie jetzt eine weitere Datei:

sudo nano / etc / default / motion

einstellen “start_motion_daemon = ja”. Dies ist erforderlich, um sicherzustellen, dass Motion ausgeführt wird.

Finden Sie jetzt Ihre IP-Adresse heraus:

ifconfig

Dieser Befehl zeigt die Netzwerkverbindungsdetails für das Pi an. Schauen Sie sich die zweite Zeile an, Inet Adr. Möglicherweise möchten Sie eine statische IP-Adresse festlegen (Was ist eine statische IP-Adresse? Was ist eine statische IP-Adresse? Wie erhalte ich eine und ihre Vorteile / Nachteile?) Was ist eine statische IP-Adresse? Wie erhalte ich eine & ihre Vorteile / Nachteile? In Heimnetzwerken sind IP-Adressen normalerweise nicht fest, aber sie liegen in bestimmten Bereichen. Eine statische IP-Adresse ändert sich nicht. Was sind die Vorteile und warum sollten Sie eine haben? Lesen Sie mehr Notieren Sie sich diese Nummer.

Starten Sie nun Motion:

sudo service motion start

Sie können Motion durch Ändern stoppen oder neu starten “Start” zu “halt” oder “Neustart”.

Wechseln Sie zu Ihrem Computer und navigieren Sie von einem Webbrowser zum Pi:

http: //xxx.xxx.x.xx: 8081

Dabei ist xxx.xxx.x.xx die IP-Adresse des Pi. Der Doppelpunkt, gefolgt von einer Zahl, ist der Port, der zuvor eingerichtet wurde. Alles in Ordnung, sollten Sie den Stream von Ihrer Webcam sehen! Bewegen Sie sich und sehen Sie, wie die Dinge aussehen. Sie müssen möglicherweise die Helligkeits- und Kontrasteinstellungen in der Konfigurationsdatei anpassen. Möglicherweise müssen Sie die Webcam scharf stellen - einige Modelle haben einen kleinen Fokusring um das Objektiv. Drehen Sie dies, bis das Bild am schärfsten ist.

Wieder auf dem Pi, erstellen Sie einen Ordner und navigieren Sie hinein:

mkdir security-cam cd sicherheits-cam /

Installieren Sie nun Twisted:

sudo apt-get install python-verdreht

Twisted ist ein in Python geschriebener Webserver, der auf Befehle wartet und dann entsprechend agiert.

Nach der Installation ein Python-Skript erstellen, um Befehle auszuführen (Servos verschieben).

sudo nano servos.rpy

Beachten Sie, wie die Dateierweiterung ist “.rpy” anstatt “py”. Hier ist der Code:

# Erforderliche Dateien importieren. Serial von twisted.web.resource importieren. Ressource # Arduino mit der richtigen Geschwindigkeit einrichten try: arduino = serial.Serial ('/ dev / ttyUSB0', 9600) mit Ausnahme von arduino = serial.Serial ('/ dev / ttyUSB1 ', 9600) Klasse MoveServo (Resource): isLeaf = True def render_GET (self, request): try: # Sende Wert über Serial an arduino arduino.write (request.args [' value '] [0]) und' Success 'außer: return' Failure 'resource = MoveServo ()

Starten Sie nun den Webserver:

sudo twistd -n web -p 80 - path / home / pi / security-cam /

Lass es uns brechen - “-S. 80” gibt den Port an (80). Dies ist der Standardport für Webseiten. “-Pfad / home / pi / Sicherheitskamera /” weist Twisted an, den Server im angegebenen Verzeichnis zu starten. Wenn Sie Änderungen an den Skripten im “Sicherheits-Cam” Ordner müssen Sie den Server neu starten (STRG + X zu schließen, dann den Befehl erneut ausführen).

Erstellen Sie nun die Webseite:

sudo nano index.html

Hier ist der Webseitencode:

   Nutzen Sie die DIY-Überwachungskamera    

Veränderung “PI_IP_ADDRESS” (zweimal verwendet) an die reale IP-Adresse Ihres Pi (raspberrypi.local sollte auch funktionieren, wenn Sie die neueste Version von Raspian verwenden). Starten Sie den Webserver neu und navigieren Sie von Ihrem Computer zum Pi, ohne dass Sie den Port angeben müssen. Sie sollten in der Lage sein, nach links und rechts zu schwenken und den Videostream zu sehen:

Hier hast du es. Ihre eigene Pan & Tilt-Netzwerkkamera. Wenn Sie Ihre Webcam für das Internet verfügbar machen möchten, müssen Sie die Gefahren berücksichtigen. 5 Mögliche Gefahren beim Aufzeigen auf Ihre Überwachungskameras 5 Beachten Sie die Gefahren, wenn Sie auf Ihre Überwachungskameras verweisen Es ist wichtig, sorgfältig zu überlegen, wo Sie Ihre Kameras positionieren und was Teile Ihres Hauses zeigen Sie auf sie. Es ist wichtig, die Dinge zu schützen, aber auch die Privatsphäre zu wahren. Lesen Sie mehr - dann schauen Sie in Portweiterleitung nach. Was ist Portweiterleitung und wie kann sie mir helfen? [MakeUseOf erklärt] Was ist Portweiterleitung und wie kann sie mir helfen? [MakeUseOf Explains] Weinen Sie ein wenig, wenn Ihnen jemand sagt, dass es ein Problem mit der Portweiterleitung gibt, und deshalb funktioniert Ihre glänzende neue App nicht? Ihre Xbox lässt Sie keine Spiele spielen, Ihre Torrent-Downloads lehnen ab… Lesen Sie mehr, damit Ihr Router weiß, wohin eingehende Anfragen gesendet werden sollen. Sie könnten ein externes Netzteil Pi für Go hinzufügen? 3 Möglichkeiten, ein Himbeer-Pi für tragbare Projekte zu betreiben? 3 Möglichkeiten, einen Raspberry Pi für tragbare Projekte zu betreiben Möchten Sie Ihren Raspberry Pi aus dem Haus holen und an einigen mobilen Projekten beteiligt sein? Sie benötigen eine Batterie - es stehen jedoch mehrere Optionen zur Verfügung. Weitere Informationen und WLAN-Adapter für ein wirklich tragbares Gerät.

Hast du etwas cooles mit einer Webcam und einem Pi gemacht? Lassen Sie mich in den Kommentaren wissen, was ich gerne sehen würde!

Erfahren Sie mehr über: Haussicherheit, Raspberry Pi, Webcam.