DIY Pan και Tilt Network Ασφάλεια Cam με Raspberry Pi

Μάθετε πώς μπορείτε να δημιουργήσετε απομακρυσμένη κάμερα ασφαλείας με κλίση και κλίση με ένα Raspberry Pi. Αυτό το έργο μπορεί να ολοκληρωθεί το πρωί με τα πιο απλά κομμάτια.

Μάθετε πώς μπορείτε να δημιουργήσετε απομακρυσμένη κάμερα ασφαλείας με κλίση και κλίση με ένα Raspberry Pi.  Αυτό το έργο μπορεί να ολοκληρωθεί το πρωί με τα πιο απλά κομμάτια.
Διαφήμιση

Μάθετε πώς μπορείτε να δημιουργήσετε μια κάμερα ασφαλείας με δυνατότητα προβολής από απόσταση και κλίσης με ένα Raspberry Pi. Αυτό το έργο μπορεί να ολοκληρωθεί το πρωί με τα πιο απλά κομμάτια. Εδώ είναι το τελικό αποτέλεσμα:

Ο, τι χρειάζεσαι

  • Raspberry Pi 2 ή 3 με κάρτα Micro SD
  • Arduino UNO ή παρόμοια
  • 2 x σερβο μικρο-ή μικρο-χόμπι
  • USB webcam
  • Αρσενικά σε αρσενικά καλώδια σύνδεσης
  • Αρσενικά σε θηλυκά καλώδια σύνδεσης
  • Διάφοροι δεσμοί φερμουάρ

Δημιουργία της Κάμερας Ασφαλείας

Συνδέστε μια σέρβο κέρατο (τα μικρά πλαστικά "σχήματα") σε κάθε σέρβο χρησιμοποιώντας την παρεχόμενη βίδα. Το συγκεκριμένο σχήμα δεν έχει σημασία, αν και το μεγαλύτερο τόσο το καλύτερο. Μη σφίγγετε υπερβολικά τη βίδα.

Τώρα χρησιμοποιήστε δεσμούς φερμουάρ για να συνδέσετε ένα σερβο στον άλλο σε ορθή γωνία. Ένα από αυτά θα είναι pan (από αριστερά προς τα δεξιά), ενώ το άλλο θα είναι κλίση (πάνω και κάτω). Δεν έχει σημασία ποιος κάνει τι, μπορεί να προσαρμοστεί στον κώδικα.

Servo-Hardware

Τέλος, συνδέστε την κάμερα web σε ένα από τα σερβο. Θα μπορούσατε να χρησιμοποιήσετε φερμουάρ για αυτό, αν και η κάμερα μου ήρθε με ένα κλιπ βιδωμένο στο κάτω μέρος - το αφαιρώ αυτό και χρησιμοποίησα τη βίδα για να την κρατήσω στο κέρας. Για σταθερότητα, ίσως θέλετε να τοποθετήσετε ολόκληρη την εξέδρα σε μια θήκη ή κιβώτιο. Ένα απλό κουτί από χαρτόνι κάνει το τέχνασμα πολύ ωραία. Θα μπορούσατε να κόψετε μια κομψή τετράγωνη τρύπα και να τοποθετήσετε ένα σερβο φλος στην επιφάνεια, ωστόσο θα ήταν αρκετή η φερμουάρ.

Pi-Pan-Tilt-Camera

Ένα Λόγο Σχετικά με Webcams

Όχι όλες οι κάμερες USB δημιουργούνται εξίσου. Συνδέστε την κάμερα web στη θύρα USB της συσκευής σας Pi και εκτελέστε αυτήν την εντολή:

lsusb 

Αυτή η εντολή εμφανίζει πληροφορίες σχετικά με όλες τις συσκευές USB που είναι συνδεδεμένες στο Pi. Αν η κάμερά σας δεν περιλαμβάνεται εδώ, ίσως θέλετε να δοκιμάσετε έναν τροφοδοτημένο διανομέα USB και να επαναλάβετε την εντολή. Εάν η κάμερα web εξακολουθεί να μην αναγνωρίζεται, ίσως χρειαστεί να αγοράσετε μια συμβατή κάμερα web.

Ρύθμιση Servo

Ενώ οι σερβοί μπορεί να φαίνονται τρομακτικοί και σύνθετοι, είναι πολύ απλό να συνδεθούν. Οι σέρβο λειτουργούν με τη διαμόρφωση εύρους παλμού (PWM), η οποία είναι ένας τρόπος για την απομίμηση αναλογικών σημάτων από ψηφιακά συστήματα. Τα σήματα PWM είναι ουσιαστικά ένα γρήγορο σήμα ON-OFF. Ένα σήμα που είναι ON ή HIGH περιγράφεται χρησιμοποιώντας τον κύκλο λειτουργίας. Ο κύκλος εργασίας εκφράζεται ως ποσοστό και περιγράφει πόσο χρονικό διάστημα είναι ενεργοποιημένο το σήμα. Ένα σήμα PWM με 25% κύκλο λειτουργίας θα είναι ενεργοποιημένο για 25% του χρόνου και OFF για το υπόλοιπο 75%. Το σήμα δεν είναι ενεργοποιημένο στην αρχή και στη συνέχεια OFF για πάντα, παλμούς τακτικά σε πολύ σύντομο χρονικό διάστημα.

Οι σέρβοι ακούνε αυτούς τους παλμούς και ενεργούν ανάλογα. Χρησιμοποιώντας ένα κύκλο εργασίας 100% θα είναι το ίδιο με το "κανονικό" 5v, και το 0% θα είναι το ίδιο με το έδαφος. Μην ανησυχείτε αν δεν κατανοείτε πλήρως τον τρόπο με τον οποίο λειτουργεί το PWM, μπορείτε ακόμα να ελέγχετε τους σέρους (το Extreme Electronics είναι ένα καλό μέρος για να μάθετε περισσότερα).

Υπάρχουν δύο βασικοί τρόποι χρήσης του PWM - υλικού ή λογισμικού. Το PWM υλικού συχνά παρέχει χαμηλότερη καθυστέρηση (πόσο καιρό ανάμεσα στο σέρβο που λαμβάνει την εντολή και την κίνηση) από το λογισμικό PWM, ωστόσο το Pi έχει μόνο έναν ακροδέκτη με δυνατότητα PWM. Τα εξωτερικά κυκλώματα είναι διαθέσιμα για να παρέχουν πολλαπλά κανάλια PWM υλικού, ωστόσο ένα απλό Arduino μπορεί επίσης να χειριστεί την εργασία, καθώς έχουν πολλαπλές ακίδες PWM υλικού.

Εδώ είναι το κύκλωμα:

Pi-Servo-Σύνδεση

Ελέγξτε ξανά το pinout για το Pi σας, αλλάζουν ελαφρώς μεταξύ των μοντέλων. Πρέπει να υπολογίσετε πώς είναι συνδεδεμένοι οι σερβοί σας. Οι σέρβο χρειάζονται τρία καλώδια για να τα ελέγξουν, ωστόσο τα χρώματα ποικίλλουν ελαφρώς:

  • Το κόκκινο είναι θετικό, συνδέστε το με Pi + 5v
  • Το καφέ ή το μαύρο είναι αρνητικό, συνδέστε το με το GND στο Pi
  • Το πορτοκαλί ή το λευκό είναι σήμα, συνδέστε το με τους ακροδέκτες Arduino 9 και 10

Εγκατάσταση Arduino

Νέα στο Arduino; Ξεκινήστε εδώ Ξεκινώντας με το Arduino: Οδηγός για αρχάριους Ξεκινώντας με το Arduino: Ένας οδηγός για αρχάριους Το Arduino είναι μια πλατφόρμα πρωτοτύπου ηλεκτρονικών ανοικτών πηγών που βασίζεται σε ευέλικτο και εύχρηστο υλικό και λογισμικό. Πρόκειται για καλλιτέχνες, σχεδιαστές, χομπίστες και όσους ενδιαφέρονται να δημιουργήσουν διαδραστικά αντικείμενα ή περιβάλλοντα. Διαβάστε περισσότερα .

Μόλις συνδεθούν οι σερβομηχανισμοί, ανοίξτε το IDE του Arduino στον υπολογιστή σας και μεταφορτώστε αυτόν τον κωδικό δοκιμής. Μην ξεχάσετε να επιλέξετε τη σωστή πλακέτα και θύρα από το μενού Εργαλεία> Πίνακας και Εργαλεία> Θύρα

 #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 } } 

Όλα είναι καλά, θα πρέπει να δείτε και τα δύο σερβοί να μετακινούνται αργά. Παρατηρήστε πως οι "servoMin" και το servoMax "ορίζονται ως 20 και 160 μοίρες (αντί για 0 ​​και 180). Αυτό οφείλεται εν μέρει στο γεγονός ότι αυτά τα φθηνά σερβομηχανές δεν είναι σε θέση να μετακινήσουν με ακρίβεια τους 180 βαθμούς, και επίσης λόγω του φυσικού μεγέθους της κάμερας δεν επιτρέπεται η χρήση ολόκληρου του εύρους. Ενδέχεται να χρειαστεί να προσαρμόσετε αυτές τις ρυθμίσεις.

Εάν δεν δουλεύουν καθόλου, ελέγξτε το κύκλωμα σωστά. Οι πίνακες επιβίωσης μπορούν μερικές φορές να ποικίλλουν και στην ποιότητα, γι 'αυτό θεωρήστε την επένδυση σε ένα πολύμετρο για να επαληθεύσετε.

Οι σερβοί είναι σχεδόν υπερβολικά ισχυροί για την εξουσία του Arduino, έτσι ώστε να τροφοδοτούνται από το Pi. Η 5v σιδηροτροχιά στο Pi περιορίζεται στα 750mA που παρέχονται στο σύνολο Pi, και το Pi τραβάει περίπου 500mA αφήνοντας 250mA για τους servos. Αυτά τα μικρο σερβοσύρματα τραβούν περίπου 80mA, που σημαίνει ότι το Pi θα πρέπει να μπορεί να χειριστεί δύο από αυτά. Εάν επιθυμείτε να χρησιμοποιήσετε περισσότερα σερβοκύτταρα ή μεγαλύτερα μοντέλα υψηλότερης ισχύος, μπορεί να χρειαστεί να χρησιμοποιήσετε εξωτερική παροχή ρεύματος.

Τώρα μεταφορτώστε τον ακόλουθο κώδικα στο Arduino. Αυτό θα ακούσει εισερχόμενα σειριακά δεδομένα (σειριακά όπως στον Universal Serial Bus ή USB). Το Pi θα στείλει αυτά τα δεδομένα μέσω USB στο Arduino, λέγοντάς του πού να μετακινήσει το σερβο.

 #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 } } } 

Μπορείτε να δοκιμάσετε αυτόν τον κώδικα ανοίγοντας τη σειριακή οθόνη ( πάνω δεξιά> Σειριακή οθόνη ) και στέλνοντας μερικά δεδομένα δοκιμών:

  • 90Ρ
  • 20Τ
  • 100Τ

Παρατηρήστε τη μορφή των εντολών - μια τιμή και στη συνέχεια ένα γράμμα. Η τιμή είναι η θέση του σερβο, και το γράμμα (στα καπάκια) καθορίζει το σερβο. Δεδομένου ότι αυτά τα δεδομένα μεταδίδονται από την σειρά Pi, κάθε χαρακτήρας έρχεται μέσω ενός κάθε φορά. Το Arduino πρέπει να "αποθηκεύσει" αυτά μέχρι να μεταδοθεί ολόκληρη η εντολή. Το τελευταίο γράμμα όχι μόνο καθορίζει το σέρβο, αλλά και το Arduino γνωρίζει ότι δεν υπάρχουν περισσότερα δεδομένα σε αυτήν την εντολή.

Τέλος, αποσυνδέστε το Arduino από τον υπολογιστή και συνδέστε το στο Raspberry Pi μέσω της συνήθους σύνδεσης θύρας USB .

Εγκατάσταση

Τώρα ήρθε η ώρα να ρυθμίσετε το Pi. Πρώτον, εγκαταστήστε ένα λειτουργικό σύστημα Πώς να εγκαταστήσετε ένα λειτουργικό σύστημα στο Raspberry Pi σας Πώς να εγκαταστήσετε ένα λειτουργικό σύστημα στο Raspberry Pi σας Εδώ είναι πώς να πάρετε ένα νέο λειτουργικό σύστημα εγκατεστημένο και τρέχει στο Pi σας και πώς να κλωνοποιήσετε την τέλεια εγκατάστασή σας για γρήγορη καταστροφή ανάκτηση. Διαβάστε περισσότερα . Συνδέστε την κάμερα web και το Arduino με το Pi USB.

Ενημερώστε το Pi:

 sudo apt-get update sudo apt-get upgrade 

Εγκατάσταση κίνησης:

 sudo apt-get install motion 

Το Motion είναι ένα πρόγραμμα που γίνεται για τη διαχείριση ροής μέσω webcam. Εργάζεται σύστημα ανίχνευσης κινήσεων κίνησης χρησιμοποιώντας ένα Raspberry Pi Κατασκευάστηκε ένα Σύστημα Ασφάλειας Σύλληψης Κίνησης χρησιμοποιώντας ένα Raspberry Pi Από τα πολλά έργα που μπορείτε να κάνετε οικοδομήσουμε με το Raspberry Pi, ένα από τα πιο ενδιαφέροντα και μόνιμα χρήσιμα είναι το σύστημα ασφαλείας capture motion. Διαβάστε περισσότερα). Ανοίξτε το αρχείο ρύθμισης κίνησης:

 sudo nano /etc/motion/motion.conf 

Αυτό το αρχείο παρέχει πολλές επιλογές για να ρυθμίσετε την επιλογή Motion. Ρυθμίστε ως εξής:

  • daemon on - Εκτελέστε το πρόγραμμα
  • framerate: 100 - Πόσες καρέ ή εικόνες / δευτερόλεπτο για ροή
  • stream_localhost off - Να επιτρέπεται η πρόσβαση σε όλο το δίκτυο
  • πλάτος 640 - Πλάτος βίντεο, προσαρμογή για την κάμερά σας
  • ύψος 320 - Ύψος βίντεο, ρυθμίστε την κάμερα web
  • stream port 8081 - Η θύρα για την παραγωγή βίντεο σε
  • output_picture off - Μην αποθηκεύετε καμία εικόνα

Αυτό είναι ένα αρκετά μεγάλο αρχείο, επομένως ίσως χρειαστεί να χρησιμοποιήσετε CTRL + W για αναζήτηση γραμμών. Αφού τελειώσετε, πατήστε CTRL + X και, στη συνέχεια, επιβεβαιώστε για αποθήκευση και έξοδο.

Τώρα επεξεργαστείτε ένα ακόμα αρχείο:

 sudo nano /etc/default/motion 

Ορίστε "start_motion_daemon = ναι". Αυτό είναι απαραίτητο για να διασφαλιστεί η εκτέλεση κινήσεων.

Τώρα μάθετε τη διεύθυνση IP:

 ifconfig 

Αυτή η εντολή θα εμφανίσει τις λεπτομέρειες σύνδεσης δικτύου για το Pi. Κοιτάξτε τη δεύτερη γραμμή, inet addr . Μπορεί να θέλετε να ορίσετε μια στατική διεύθυνση IP (ποια είναι μια στατική διεύθυνση IP; Τι είναι μια στατική διεύθυνση IP; Πώς μπορώ να αποκτήσω ένα & τα πλεονεκτήματα / μειονεκτήματά της; Τι είναι μια στατική διεύθυνση IP; Πώς μπορώ να αποκτήσω ένα & Πλεονεκτήματα / Στα οικιακά δίκτυα, οι διευθύνσεις IP δεν είναι συνήθως σταθερές, αλλά εμπίπτουν σε συγκεκριμένες σειρές.Η στατική διεύθυνση IP δεν αλλάζει, ποια είναι τα πλεονεκτήματα και γιατί θα θέλατε; σημειώστε αυτόν τον αριθμό.

Τώρα ξεκινήστε την κίνηση:

 sudo service motion start 

Μπορείτε να σταματήσετε ή να επανεκκινήσετε την Κίνηση αλλάζοντας "start" σε "stop" ή "restart".

Μεταβείτε στον υπολογιστή σας και μεταβείτε στο Pi από ένα πρόγραμμα περιήγησης ιστού:

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

Όπου xxx.xxx.x.xx είναι η διεύθυνση IP Pi. Το τελεία που ακολουθείται από έναν αριθμό είναι η θύρα που είχε ρυθμιστεί νωρίτερα. Όλα είναι καλά θα πρέπει να δείτε το ρεύμα από την κάμερα! Δοκιμάστε να μετακινηθείτε και να δείτε πώς φαίνονται τα πράγματα. Ίσως χρειαστεί να ρυθμίσετε τις ρυθμίσεις φωτεινότητας και αντίθεσης στο αρχείο ρυθμίσεων. Ίσως χρειαστεί να εστιάσετε την κάμερα web - ορισμένα μοντέλα έχουν ένα μικρό δακτύλιο εστίασης γύρω από το φακό. Γυρίστε αυτό μέχρι η εικόνα να είναι η πιο απότομη.

Πίσω στο Pi, δημιουργήστε ένα φάκελο και πλοηγηθείτε σε αυτό:

 mkdir security-cam cd security-cam/ 

Τώρα εγκαταστήστε το Twisted:

 sudo apt-get install python-twisted 

Το Twisted είναι ένας διακομιστής ιστού γραμμένος σε Python, ο οποίος θα ακούει εντολές και θα ενεργεί ανάλογα.

Αφού εγκατασταθεί, δημιουργήστε μια δέσμη ενεργειών Python για να εκτελέσετε εντολές (μετακινήστε τους σερβο).

 sudo nano servos.rpy 

Παρατηρήστε πως η επέκταση αρχείου είναι ".rpy" αντί για "py". Εδώ είναι ο κώδικας:

 # 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() 

Τώρα ξεκινήστε τον διακομιστή ιστού:

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

Αφήνει το σπάσιμο - "-p 80" καθορίζει τη θύρα (80). Αυτή είναι η προεπιλεγμένη θύρα για ιστοσελίδες. "-path / home / pi / security-cam /" ενημερώνει το Twisted για να ξεκινήσει το διακομιστή στον καθορισμένο κατάλογο. Αν κάνετε αλλαγές στις δέσμες ενεργειών μέσα στο φάκελο "security-cam", θα χρειαστεί να κάνετε επανεκκίνηση του διακομιστή ( CTRL + X για κλείσιμο και στη συνέχεια εκτελέστε ξανά την εντολή).

Τώρα δημιουργήστε την ιστοσελίδα:

 sudo nano index.html 

Εδώ είναι ο κώδικας της ιστοσελίδας:

 Make Use Of DIY Security Camera #container { /* center the content */ margin: 0 auto; text-align: center; } Pi-Pan-Tilt-Κάμερα-Web-Προβολή

Εκεί το έχετε. Την δική σας Pan και Tilt Network Camera. Εάν θέλετε να εκθέσετε την κάμερά σας στο Διαδίκτυο, θυμηθείτε να εξετάσετε τους κινδύνους 5 Κίνδυνοι που πρέπει να λάβετε υπόψη όταν υποδεικνύετε τις κάμερες ασφαλείας οικιακής χρήσης 5 Κίνδυνοι που πρέπει να λάβετε υπόψη όταν υποδεικνύετε τις κάμερες ασφαλείας οικιακής χρήσης Είναι σημαντικό να εξετάσετε προσεκτικά το πού τοποθετείτε τις κάμερές σας και τι τμήματα του σπιτιού σας τα δείχνετε. Είναι σημαντικό να διατηρείτε ασφαλή τα πράγματα, αλλά διατηρείτε το απόρρητό σας. Διαβάστε περισσότερα - στη συνέχεια, κοιτάξτε στο port forwarding Τι είναι η προώθηση της θύρας και πώς μπορεί να με βοηθήσει; [Το MakeUseOf Εξηγεί] Τι είναι η προώθηση των θυρών και πώς μπορεί να με βοηθήσει; [MakeUseOf Εξηγεί] Φωνάζετε λίγο στο εσωτερικό όταν κάποιος σας λέει ότι υπάρχει ένα πρόβλημα προώθησης θύρας και γι 'αυτό το λαμπερό νέο app σας δεν θα λειτουργήσει; Το Xbox σας δεν θα σας αφήσει να παίξετε παιχνίδια, οι λήψεις σας torrent αρνούνται ... Διαβάστε περισσότερα, ο δρομολογητής σας ξέρει πού να στείλετε τα εισερχόμενα αιτήματα. Θα μπορούσατε να προσθέσετε μια εξωτερική τροφοδοσία Pi στο Go; 3 τρόποι τροφοδοσίας ενός σμέουρου Pi για φορητά έργα Pi να πάμε; 3 τρόποι τροφοδοσίας ενός σμέουρου Pi για φορητά έργα Θέλετε να πάρετε το Raspberry Pi σας έξω από το σπίτι και συμμετέχετε σε κάποια κινητά έργα; Θα χρειαστείτε κάποια μπαταρία - αλλά υπάρχουν αρκετές επιλογές. Διαβάστε περισσότερα και προσαρμογέα Wi-Fi για μια πραγματικά φορητή εξέδρα.

Έχετε κάνει κάτι δροσερό με μια κάμερα και μια Pi; Με ενημερώστε στα σχόλια, θα ήθελα να δω!

In this article