Πίνακας περιεχομένων:

Virtual Peephole: 4 βήματα (με εικόνες)
Virtual Peephole: 4 βήματα (με εικόνες)

Βίντεο: Virtual Peephole: 4 βήματα (με εικόνες)

Βίντεο: Virtual Peephole: 4 βήματα (με εικόνες)
Βίντεο: Too Hot For Youtube: Panorama Pin-Ups # 15 - A Vintage Tease Loop 2024, Νοέμβριος
Anonim
Image
Image

Υπάρχουν περίπου 770 εκατομμύρια κάμερες παρακολούθησης σε όλο τον κόσμο. Ορισμένα από αυτά εξακολουθούν να έχουν τον προεπιλεγμένο κωδικό πρόσβασής τους, καθιστώντας τα εύκολα προσβάσιμα, από οποιονδήποτε έχει σύνδεση στο Διαδίκτυο.

Αυτή η εικονική ματιά είναι μια συσκευή για να παρακολουθείτε μερικές από αυτές τις μη ασφαλείς κάμερες. Κάθε φορά που ανοίγει η ματιά, εμφανίζεται μια διαφορετική κάμερα.

Προμήθειες

  • 1 Arduino Micro
  • 1 Αντίσταση φωτογραφίας
  • 1 Raspberry Pi 3 Μοντέλο Β
  • 1 οθόνη Raspberry Pi
  • 1 Ξύλινο κουτί
  • 1 Πόρτα Μάτι
  • Τρυπάνι
  • Κατσαβίδι

Βήμα 1: Ρύθμιση Raspberry Pi και Arduino

Raspberry Pi και Arduino Setup
Raspberry Pi και Arduino Setup

Η εικονική ματάκι αποτελείται από 2 ξεχωριστά μέρη: ένα Raspberry Pi (με μικρή οθόνη) και ένα Arduino Micro. Το Raspberry Pi είναι συνδεδεμένο στο διαδίκτυο και εμφανίζει έναν ιστότοπο, ο οποίος δείχνει μια τυχαία τροφοδοσία κάμερας. Υπάρχει ένας αισθητήρας φωτός στο εσωτερικό της προκοπής, για να ανιχνεύσει εάν είναι ανοιχτός ή κλειστός. Κάθε φορά που η κλειδαριά είναι κλειστή, αποστέλλεται ένα σήμα στο Raspberry Pi (μέσω του Arduino Micro) και ο ιστότοπος μεταβαίνει σε άλλη ροή κάμερας. Τα δεδομένα της κάμερας που χρησιμοποίησα για αυτό το έργο αποκόπηκαν από την Insecam, έναν ιστότοπο που καταγράφει πάνω από 73.000 κάμερες χωρίς ασφάλεια.

Ο ιστότοπος προς εμφάνιση

Για την εικονική μου ματιά, έχω δημιουργήσει έναν ιστότοπο με τα δεδομένα που συνέλεξα από την insecam. Μπορείτε κάλλιστα να δημιουργήσετε τον δικό σας ιστότοπο, αλλά αυτό είναι εκτός του αντικειμένου αυτού του ανελέητου. Εάν δεν θέλετε να δημιουργήσετε τον δικό σας ιστότοπο, μπορείτε να χρησιμοποιήσετε αυτόν τον σύνδεσμο (αλλάζει κάμερα web κάθε φορά που πατάτε το πλήκτρο διαστήματος. Θα ενεργοποιήσουμε αργότερα αυτό το κλειδί από το arduino) ή δείτε τον πηγαίο κώδικα.

Ρύθμιση του Raspberry pi

  1. Βεβαιωθείτε ότι το Raspberry Pi λειτουργεί και ρυθμίζεται (δείτε αυτόν τον οδηγό εάν είστε νέοι στο raspberry pi)
  2. Συνδέστε την οθόνη LCD στο Raspberry Pi
  3. Βάλτε το raspberry pi να ανοίξει μια ιστοσελίδα κατά την εκκίνηση

Ρύθμιση του Arduino

Προσοχή: για να γίνει αυτό το έργο, ο πίνακας Arduino πρέπει να υποστηρίζει τη βιβλιοθήκη πληκτρολογίου Όπως αναφέρεται στη σελίδα της βιβλιοθήκης:

Υποστηριζόμενα μοντέλα είναι οι πίνακες με βάση 32u4 και SAMD (Leonardo, Esplora, Zero, Due και MKR Family)

  1. Συνδέστε τον αισθητήρα φωτός στο Arduino
  2. Ανεβάστε τον κώδικα στο Arduino. Ο κωδικός θα εκτελέσει πρώτα τη βαθμονόμηση για 5 δευτερόλεπτα (κατά τη διάρκεια της οποίας θα καταχωρηθεί η ελάχιστη και η μέγιστη τιμή του φωτοαισθητήρα) και, στη συνέχεια, θα στείλει ένα σήμα κλειδιού "διάστημα" κάθε φορά που η τιμή φωτός είναι κάτω από τη θήκη (που σημαίνει ότι η προκοπή είναι κλειστή).

previousMillis = 0

// επειδή το φως ποικίλλει πάντα, θα βαθμονομούμε τον φωτοσώστη σε κάθε εκκίνηση. μακρύς χρόνος βαθμονόμησης = 5000; long startMillis = 0; // η μέγιστη τιμή για έναν αναλογικό αισθητήρα είναι 1024 int sensorMin = 1024; int sensorMax = 0; int μέσο = 0; int κατώφλι = 5; bool lastState = true; bool isClosed = true; void setup () {Serial.begin (9600); // ανοίξτε τη σειριακή θύρα Keyboard.begin (); // εκκίνηση της βιβλιοθήκης πληκτρολογίου startMillis = millis (); // ξεκινήστε τον μετρητή} void loop () {// σταθεροποιήστε την ένδειξη στα πρώτα 5 δευτερόλεπτα //, στη συνέχεια, εντοπίστε μια παραλλαγή στη σταθεροποίηση. ανυπόγραφο μακρύ ρεύμαMillis = millis (); // ορίστε millis ως την τρέχουσα ώρα int sensorValue = analogRead (A0); // διαβάστε τον αισθητήρα εάν (currentMillis-startMillis <calibrationtime) {// εφόσον βρισκόμαστε στον χρόνο βαθμονόμησης // κατά τη διάρκεια αυτού του χρόνου βαθμονόμησης, ανοίξτε και κλείστε την προκοπή για να τη βαθμονομήσετε. int elapsedtime = currentMillis - startMillis; Serial.println (παρέλευση χρόνου); Serial.println (sensorMin); Serial.println (sensorMax); εάν (sensorValue sensorMax) {sensorMax = sensorValue; μέσος όρος = (sensorMin + sensorMax)/2; } καθυστέρηση (100); // καθυστέρηση} else {// εάν η βαθμονόμηση γίνει εάν (sensorValue> μέσο + κατώφλι) {// ανιχνεύσει εάν η κλειδαριά είναι ανοιχτή ή κλειστή isClosed = false; if (lastState! = isClosed) {}} else {isClosed = true; if (lastState! = isClosed) {Keyboard.print (""); // στείλτε ένα σήμα κλειδιού εάν η οπή είναι ανοιχτή}} lastState = isClosed; καθυστέρηση (100)? }}

Βήμα 2: Ρυθμίστε το κουτί

Ρυθμίστε το κουτί
Ρυθμίστε το κουτί
Ρυθμίστε το κουτί
Ρυθμίστε το κουτί
Ρυθμίστε το κουτί
Ρυθμίστε το κουτί
Ρυθμίστε το κουτί
Ρυθμίστε το κουτί
  • Τρυπήστε μια τρύπα στο μάτι της πόρτας, για να χωρέσει ο φωτοαισθητήρας (αυτό θα εντοπίσει εάν η οπτική σας οπή ανοίγει ή κλείνει και στη συνέχεια ενεργοποιεί την αλλαγή της κάμερας).
  • Τρυπήστε μια τρύπα στο κουτί, ώστε να χωρέσετε στο μάτι της πόρτας
  • Μπροστά από το μάτι της πόρτας, ασφαλίστε το raspberry pi με την οθόνη (χρησιμοποίησα velcro)
  • Συνδέστε το arduino:

    • Συνδέστε τον φωτοαισθητήρα στο arduino
    • Τοποθετήστε ένα καλώδιο USB μεταξύ του Rpi και του Arduino. Το arduino θα λειτουργεί σαν πληκτρολόγιο και θα στέλνει σήματα κλειδιών στο raspberry pi.

Βήμα 3: Ξεκινήστε την εικονική ματιά

Image
Image
Ξεκινήστε την Εικονική Προστατευτική Τρύπα
Ξεκινήστε την Εικονική Προστατευτική Τρύπα

Αφού βάλετε τα πάντα στο κουτί, είστε πλέον έτοιμοι να εκτελέσετε την εικονική σας ματιά.

  • Τοποθετήστε την εικονική ματιά σε έναν τοίχο
  • Συνδέστε το Rapsberry pi στο ρεύμα
  • Θα έχετε τώρα 5 δευτερόλεπτα για να βαθμονομήσετε τον φωτοαισθητήρα που βρίσκεται στο μάτι της πόρτας, ανοίγοντας και κλείνοντάς τον πολλές φορές.

Η εικονική ματιά θα πρέπει τώρα να λειτουργεί!

Απολαμβάνω!

Βήμα 4:

Διαγωνισμός Raspberry Pi 2020
Διαγωνισμός Raspberry Pi 2020
Διαγωνισμός Raspberry Pi 2020
Διαγωνισμός Raspberry Pi 2020

Δευτέρα στο Raspberry Pi Contest 2020

Συνιστάται: