DIY Pan und Tilt Netzwerksicherheit Cam mit Raspberry Pi

Erfahren Sie, wie Sie mit einem Raspberry Pi eine fernüberwachte Schwenk- / Neige-Überwachungskamera erstellen. Dieses Projekt kann an einem Morgen mit nur den einfachsten Teilen abgeschlossen werden.

Erfahren Sie, wie Sie mit einem Raspberry Pi eine fernüberwachte Schwenk- / Neige-Überwachungskamera erstellen.  Dieses Projekt kann an einem Morgen mit nur den einfachsten Teilen abgeschlossen werden.
Werbung

Erfahren Sie, wie Sie mit einem Raspberry Pi eine fernüberwachte Schwenk- / Neige-Überwachungskamera erstellen. Dieses Projekt kann an einem Morgen mit nur den einfachsten Teilen abgeschlossen werden. Hier ist das Endergebnis:

Was du brauchst

  • Raspberry Pi 2 oder 3 mit Micro SD-Karte
  • Arduino UNO oder ähnlich
  • 2 x Micro- oder Mini-Hobby-Servos
  • USB-Webcam
  • Männlich zu männlichen Anschlussdrähten
  • Männlich zu weiblichen Anschlussdrähten
  • Sortierte Kabelbinder

Aufbau der Überwachungskamera

Befestigen Sie ein Servohorn (die kleinen Plastik- "Formen") an jedem Servo mit der mitgelieferten Schraube. Die besondere Form ist nicht wirklich wichtig, obwohl je größer desto besser. Ziehen Sie die Schraube nicht zu fest an.

Verwenden Sie nun Kabelbinder, um ein Servo im rechten Winkel an das andere anzuschließen. Einer davon wird schwenken (von links nach rechts), der andere wird schwenken (auf und ab). Es spielt keine Rolle, wer was macht, es kann im Code angepasst werden.

Servo-Hardware

Schließen Sie schließlich Ihre Webcam an einen der Servos an. Du könntest Kabelbinder dafür verwenden, obwohl meine Webcam mit einem Clip an den Boden geschraubt war - ich entfernte das und benutzte die Schraube, um es am Horn zu halten. Für Stabilität, möchten Sie vielleicht das gesamte Rig in einem Fall oder einer Box montieren. Eine einfache Pappschachtel macht es sehr schön. Sie könnten ein ordentliches quadratisches Loch schneiden und ein Servo bündig an die Oberfläche montieren, jedoch genügt ein Kabelbinder.

Pi-Schwenk-Neige-Kamera

Ein Wort über Webcams

Nicht alle USB-Webcams werden gleich erstellt. Verbinde deine Webcam mit dem USB-Port deines Pi und führe diesen Befehl aus:

lsusb 

Dieser Befehl zeigt Informationen über alle an den Pi angeschlossenen USB-Geräte an. Wenn Ihre Webcam hier nicht aufgeführt ist, können Sie einen USB-Hub mit Stromversorgung versuchen und den Befehl wiederholen. Wenn die Webcam immer noch nicht erkannt wird, müssen Sie möglicherweise eine kompatible Webcam erwerben.

Servo-Setup

Während Servos unheimlich und komplex erscheinen können, sind sie wirklich ziemlich einfach zu verbinden. Servos arbeiten mit Pulsweitenmodulation (PWM), mit der digitale Systeme analoge Signale nachahmen können. PWM - Signale sind im Wesentlichen ein schnelles EIN - AUS - Signal. Ein Signal, das EIN oder HOCH ist, wird unter Verwendung des Tastverhältnisses beschrieben. Der Arbeitszyklus wird als Prozentsatz ausgedrückt und beschreibt, wie lange das Signal eingeschaltet ist. Ein PWM-Signal mit einer Einschaltdauer von 25% wird für 25% der Zeit eingeschaltet und für die restlichen 75% ausgeschaltet. Das Signal ist nicht am Anfang und dann für immer ausgeschaltet, es wird regelmäßig über einen sehr kurzen Zeitraum gepulst.

Servos hören auf diese Impulse und handeln entsprechend. Mit einem Duty Cycle von 100% wäre das gleiche wie "reguläre" 5V, und 0% wäre das gleiche wie Boden. Keine Sorge, wenn Sie nicht ganz verstehen, wie PWM funktioniert, können Sie immer noch Servos steuern (Extreme Electronics ist ein guter Ort, um mehr zu lernen).

Es gibt zwei Hauptarten, um PWM zu verwenden - Hardware oder Software. Hardware-PWM bietet oft eine geringere Latenz (wie lange zwischen dem Servo, das den Befehl empfängt, und dem Bewegen) als Software-PWM, jedoch besitzt der Pi nur einen Hardware-PWM-fähigen Pin. Externe Schaltungen sind verfügbar, um mehrere Kanäle von Hardware-PWM bereitzustellen, jedoch kann ein einfacher Arduino auch die Aufgabe bewältigen, da sie mehrere Hardware-PWM-Pins haben.

Hier ist die Schaltung:

Pi-Servo-Verbindung

Überprüfen Sie die Pinbelegung für Ihren Pi, sie unterscheiden sich geringfügig zwischen den Modellen. Sie müssen herausfinden, wie Ihre Servos verkabelt sind. Servos benötigen drei Drähte, um sie zu steuern, die Farben variieren jedoch geringfügig:

  • Rot ist positiv, verbinden Sie dies mit Pi + 5v
  • Braun oder Schwarz ist negativ, verbinden Sie dies mit GND am Pi
  • Orange oder weiß ist Signal, verbinden Sie dieses mit Arduino Pins 9 und 10

Arduino einrichten

Neu bei Arduino? Erste Schritte mit Arduino: Ein Anfängerhandbuch Erste Schritte mit Arduino: Ein Anfängerhandbuch Arduino ist eine Open-Source-Prototyping-Plattform für Elektronik, die auf flexibler, benutzerfreundlicher Hardware und Software basiert. Es richtet sich an Künstler, Designer, Bastler und alle, die interaktive Objekte oder Umgebungen erstellen möchten. Weiterlesen .

Sobald die Servos verbunden sind, öffnen Sie die Arduino IDE auf Ihrem Computer und laden Sie diesen Testcode hoch. Vergessen Sie nicht, in den Menüs Tools> Board und Tools> Port die richtige Karte und den richtigen Port auszuwählen

 #include // Import the library Servo servoPan, servoTilt; // Create servo objects int servoMin = 20, servoMax = 160; // Define limits of servos void setup() { // Setup servos on PWM capable pins servoPan.attach(9); servoTilt.attach(10); } void loop() { for(int i = servoMin; i servoMin; --i) { // Move servos from maximum to minimum servoPan.write(i); servoTilt.write(i); delay(100); // Wait 100ms } }  #include // Import the library Servo servoPan, servoTilt; // Create servo objects int servoMin = 20, servoMax = 160; // Define limits of servos void setup() { // Setup servos on PWM capable pins servoPan.attach(9); servoTilt.attach(10); } void loop() { for(int i = servoMin; i servoMin; --i) { // Move servos from maximum to minimum servoPan.write(i); servoTilt.write(i); delay(100); // Wait 100ms } } 

Wenn alles in Ordnung ist, sollten Sie sehen, dass beide Servos langsam vor und zurück gehen. Beachten Sie, dass "servoMin" und "servoMax" als 20 und 160 Grad (statt 0 und 180) definiert sind. Dies liegt teilweise daran, 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 verhindert wird, dass der gesamte Bereich verwendet wird. Möglicherweise müssen Sie diese für Ihre Einrichtung anpassen.

Wenn sie überhaupt nicht funktionieren, überprüfen Sie, ob die Schaltung korrekt verdrahtet ist. Breadboards können manchmal in der Qualität auch schwanken, also erwägen Sie, in ein Multimeter zu verifizieren, um zu überprüfen.

Die Servos sind fast zu mächtig, um den Arduino anzutreiben, also werden sie vom Pi angetrieben. Die 5V-Schiene auf dem Pi ist auf 750 mA begrenzt, die für das gesamte Pi bereitgestellt wird, und das Pi zieht ungefähr 500 mA, wobei 250 mA für die Servos übrig bleiben. Diese Mikroservos verbrauchen ungefähr 80mA, dh der Pi sollte in der Lage sein, zwei von ihnen zu handhaben. Wenn Sie mehr Servos oder größere Modelle mit höherer Leistung verwenden möchten, müssen Sie möglicherweise ein externes Netzteil verwenden.

Laden Sie den folgenden Code auf den Arduino hoch. Dies wird eingehende serielle Daten abhören (seriell wie bei Universal Serial Bus oder USB). Der Pi sendet diese Daten über USB an den Arduino und teilt ihm mit, wo er die Servos bewegen soll.

 #include // Import the library Servo servoPan, servoTilt; // Create servo object String data = ""; // Store incoming commands (buffer) void setup() { // Setup servos on PWM capable pins servoPan.attach(9); servoTilt.attach(10); Serial.begin(9600); // Start serial at 9600 bps (speed) } void loop() { while (Serial.available()>0) { // If there is data char singleChar = Serial.read(); // Read each character if (singleChar == 'P') { // Move pan servo servoPan.write(data.toInt()); data = ""; // Clear buffer } else if (singleChar == 'T') { // Move tilt servo servoTilt.write(data.toInt()); data = ""; // Clear buffer } else { data += singleChar; // Append new data } } } 

Sie können diesen Code testen, indem Sie den seriellen Monitor ( oben rechts> Serial Monitor ) öffnen und einige Testdaten senden:

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

Beachten Sie das Format der Befehle - ein Wert und dann ein Buchstabe. Der Wert ist die Position des Servos und der Buchstabe (in Großbuchstaben) gibt den Schwenk- oder Kippservo an. Da diese Daten seriell von dem Pi übertragen werden, kommt jedes Zeichen einzeln durch. Der Arduino muss diese "speichern", bis der gesamte Befehl übertragen wurde. Der letzte Buchstabe gibt nicht nur den Servo an, sondern teilt dem Arduino auch mit, dass in diesem Befehl keine Daten mehr vorhanden sind.

Schließlich, trennen Sie Ihr Arduino vom Computer und stecken Sie es in den Raspberry Pi über die übliche USB-Port-Verbindung .

Pi-Einrichtung

Jetzt ist es Zeit, das Pi einzurichten. Installieren Sie zuerst ein Betriebssystem So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi So installieren Sie ein Betriebssystem auf Ihrem Raspberry Pi Hier ist, wie Sie ein neues Betriebssystem installiert und auf Ihrem Pi laufen - und wie Sie Ihre perfekte Setup für schnelle Katastrophe klonen Wiederherstellung. Weiterlesen . Verbinden Sie die Webcam und das Arduino mit dem Pi USB.

Aktualisieren Sie das Pi:

 sudo apt-get update sudo apt-get upgrade 

Bewegung installieren:

 sudo apt-get install motion 

Motion ist ein Programm, das für das Streaming von Webcams entwickelt wurde. Es bewältigt alle schweren Arbeiten und kann sogar Aufnahme- und Bewegungserkennung durchführen (versuchen Sie, ein Motion Capture-Sicherheitssystem aufzubauen. Erstellen eines Motion Capture-Sicherheitssystems mit einem Raspberry Pi Erstellen eines Motion Capture-Sicherheitssystems mit einem Raspberry Pi Von den vielen möglichen Projekten bauen mit dem Raspberry Pi, einer der interessantesten und dauerhaft nützlich ist die Motion Capture-Sicherheitssystem. Lesen Sie mehr). Öffnen Sie die Motion-Konfigurationsdatei:

 sudo nano /etc/motion/motion.conf 

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

  • Daemon on - Führe das Programm aus
  • Framerate: 100 - Wie viele Frames oder Bilder / Sekunde streamen
  • stream_localhost off - Zugriff über das Netzwerk zulassen
  • Breite 640 - Breite des Videos, passen Sie für Ihre Webcam an
  • Höhe 320 - Höhe des Videos, passen Sie für Ihre Webcam an
  • stream_port 8081 - Der Port, an den das Video ausgegeben werden soll
  • output_picture off - Speichert keine Bilder

Dies ist eine recht große Datei, daher sollten Sie STRG + W verwenden, um nach Zeilen zu suchen. Sobald Sie fertig sind, drücken Sie STRG + X und bestätigen Sie dann, um zu speichern und zu beenden.

Jetzt editiere noch eine Datei:

 sudo nano /etc/default/motion 

Setze "start_motion_daemon = yes". Dies ist erforderlich, um sicherzustellen, dass Motion ausgeführt wird.

Finde jetzt deine IP-Adresse heraus:

 ifconfig 

Dieser Befehl zeigt die Netzwerkverbindungsdetails für den Pi an. Schau dir die zweite Zeile an, inet addr . Vielleicht möchten Sie eine statische IP-Adresse festlegen (was ist eine statische IP? Was ist eine statische IP-Adresse, Wie bekomme ich eine & ihre Vorteile / Nachteile Was ist eine statische IP-Adresse, Wie bekomme ich eine und ihre Vorteile / Nachteile In Heimnetzwerken sind IP-Adressen normalerweise nicht festgelegt, aber sie fallen in bestimmte Bereiche. Eine statische IP-Adresse ändert sich nicht. Was sind die Vorteile und warum sollten Sie eine haben? Lesen Sie mehr), aber für jetzt Notieren Sie sich diese Nummer.

Jetzt starte Bewegung:

 sudo service motion start 

Sie können Motion stoppen oder neu starten, indem Sie "start" auf "stop" oder "neustart" setzen.

Wechseln Sie zu Ihrem Computer und navigieren Sie über einen Webbrowser zum Pi:

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

Wobei xxx.xxx.x.xx die Pi-IP-Adresse ist. Der Doppelpunkt gefolgt von einer Zahl ist der Port, der früher eingerichtet wurde. Alles gut, du solltest den Stream von deiner Webcam sehen! Versuche, dich zu bewegen und zu sehen, wie die Dinge aussehen. Möglicherweise müssen Sie die Helligkeits- und Kontrasteinstellungen in der Konfigurationsdatei anpassen. Möglicherweise müssen Sie die Webcam fokussieren - einige Modelle haben einen kleinen Fokusring um das Objektiv herum. Drehen Sie dies, bis das Bild am schärfsten ist.

Zurück auf dem Pi, erstellen Sie einen Ordner und navigieren Sie darin:

 mkdir security-cam cd security-cam/ 

Jetzt installiert Twisted:

 sudo apt-get install python-twisted 

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

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

 sudo nano servos.rpy 

Beachten Sie, dass die Dateierweiterung ".rpy" anstelle von "py" ist. Hier ist der Code:

 # Import necessary files import serial from twisted.web.resource import Resource # Setup Arduino at correct speed try: arduino = serial.Serial('/dev/ttyUSB0', 9600) except: arduino = serial.Serial('/dev/ttyUSB1', 9600) class MoveServo(Resource): isLeaf = True def render_GET(self, request): try: # Send value over serial to the Arduino arduino.write(request.args['value'][0]) return 'Success' except: return 'Failure' resource = MoveServo() 

Starten Sie nun den Webserver:

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

Lasst es auseinander brechen - "-p 80" spezifiziert den Port (80). Dies ist der Standardport für Webseiten. "-path / home / pi / security-cam /" weist Twisted an, den Server im angegebenen Verzeichnis zu starten. Wenn Sie Änderungen an den Skripten im Ordner "security-cam" vornehmen, müssen Sie den Server neu starten ( STRG + X schließen und dann den Befehl erneut ausführen).

Erstellen Sie nun die Webseite:

 sudo nano index.html 

Hier ist der Code der Webseite:

 Make Use Of DIY Security Camera #container { /* center the content */ margin: 0 auto; text-align: center; } Pi-Pan-Tilt-Kamera-Web-Ansicht

Hier hast du es. Deine eigene Pan and Tilt Netzwerk Kamera. Wenn Sie Ihre Webcam dem Internet aussetzen möchten, denken Sie daran, die Gefahren zu berücksichtigen. 5 Gefahren, die Sie beim Aufzeigen Ihrer Heimsicherheitskameras beachten sollten 5 Gefahren beim Betrachten Ihrer Heimsicherheitskameras Es ist wichtig, genau zu überlegen, wo und wo Sie Ihre Kameras positionieren Teile deines Hauses, auf die du sie zeigst. Es ist wichtig, Dinge sicher zu halten, aber auch Ihre Privatsphäre zu wahren. Lesen Sie mehr - dann schauen Sie in die Portweiterleitung Was ist Port Forwarding & wie kann es mir helfen? [MakeUseOf erklärt] Was ist Port Forwarding & Wie kann es mir helfen? [MakeUseOf Explains] Weinst du innerlich etwas, wenn dir jemand sagt, dass es ein Port-Forwarding-Problem gibt und deshalb deine neue App nicht funktioniert? Ihre Xbox lässt Sie Spiele nicht spielen, Ihre Torrent-Downloads verweigern ... Lesen Sie mehr, damit Ihr Router weiß, wo eingehende Anfragen gesendet werden. Sie könnten ein externes Netzteil Pi to Go hinzufügen? 3 Möglichkeiten, einen Raspberry Pi für portable Projekte zu betreiben Pi to Go? 3 Möglichkeiten, einen Raspberry Pi für tragbare Projekte zu betreiben Sie möchten Ihren Raspberry Pi aus dem Haus holen und an einigen mobilen Projekten teilnehmen? Sie brauchen eine Batterie, aber es gibt mehrere Möglichkeiten. Lesen Sie mehr und WLAN-Adapter für ein wirklich tragbares Rig.

Hast du mit einer Webcam und einem Pi etwas Cooles gemacht? Lass mich in den Kommentaren wissen, ich würde es gerne sehen!

In this article