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

Έξυπνη κλειδαριά αναγνώρισης προσώπου με LTE Pi HAT: 4 βήματα
Έξυπνη κλειδαριά αναγνώρισης προσώπου με LTE Pi HAT: 4 βήματα

Βίντεο: Έξυπνη κλειδαριά αναγνώρισης προσώπου με LTE Pi HAT: 4 βήματα

Βίντεο: Έξυπνη κλειδαριά αναγνώρισης προσώπου με LTE Pi HAT: 4 βήματα
Βίντεο: AxxonSoft Face Recognition - Σύστημα Αυτόματης Αναγνώρισης Προσώπων 2024, Δεκέμβριος
Anonim
Smart Lock αναγνώρισης προσώπου με LTE Pi HAT
Smart Lock αναγνώρισης προσώπου με LTE Pi HAT

Η αναγνώριση προσώπου γίνεται όλο και πιο ευρέως, μπορούμε να την χρησιμοποιήσουμε για να φτιάξουμε μια έξυπνη κλειδαριά.

Βήμα 1: Πράγματα που χρησιμοποιούνται σε αυτό το έργο

Συστατικά υλικού

  • Raspberry Pi 3 Μοντέλο Β
  • Raspberry Pi Camera Module V2
  • Grove - Relay
  • LTE Cat 1 Pi HAT (Ευρώπη)
  • Οθόνη 10,1 ιντσών 1200x1980 HDMI IPS LCD

Εφαρμογές λογισμικού και διαδικτυακές υπηρεσίες

  • WinSCP
  • Σημειωματάριο ++

Βήμα 2: Σύνδεση υλικού

Σύνδεση υλικού
Σύνδεση υλικού

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

Έτσι, πρέπει να συνδέσετε μια κάμερα στη διεπαφή κάμερας του Raspberry Pi και να εγκαταστήσετε την κεραία και το καπέλο Grove - Relay to LTE Pi και, στη συνέχεια, να συνδέσετε το HAT στο Pi σας. Η οθόνη μπορεί να συνδεθεί στο Raspberry Pi μέσω καλωδίου HDMI, μην ξεχάσετε να συνδέσετε την τροφοδοσία στην οθόνη σας και το Pi.

Βήμα 3: Προγραμματισμός λογισμικού

Αναγνώριση προσώπου

Ευχαριστούμε για τον Adam Geitgey και το έργο αναγνώρισης προσώπου, μπορούμε να χρησιμοποιήσουμε την πιο απλή βιβλιοθήκη αναγνώρισης προσώπου στον κόσμο στο Raspberry Pi. Τα παρακάτω βήματα θα σας δείξουν πώς να ρυθμίσετε την αναγνώριση προσώπου στο Pi.

Βήμα 1. Χρησιμοποιήστε το raspi-config για να διαμορφώσετε τη μνήμη της κάμερας και της GPU.

sudo raspi-config

Επιλέγοντας Επιλογές διεπαφής - Κάμερα για ενεργοποίηση της φωτογραφικής μηχανής, στη συνέχεια επιλογή Επιλογές για προχωρημένους - Διαίρεση μνήμης για ρύθμιση της μνήμης GPU, θα πρέπει να αλλάξει σε 64. Αφού τελειώσετε, επανεκκινήστε το Raspberry Pi.

Βήμα 2. Εγκαταστήστε τις απαιτούμενες βιβλιοθήκες.

sudo apt-get ενημέρωση

sudo apt-get upgrade sudo apt-get install build-essential / cmake / gfortran / git / wget / curl / graphicsmagick / libgraphicsmagick1-dev / libatlas-dev / libavcodec-dev / libavformat-dev / libboost-all-dev / libgtk2. 0-dev / libjpeg-dev / liblapack-dev / libswscale-dev / pkg-config / python3-dev / python3-numpy / python3-picamera / python3-pip / zip sudo apt-get clean

Βήμα 3. Δημιουργήστε πίνακα υποστηρίξεων picamerea.

sudo pip3 install -αναβάθμιση picamera [array]

Βήμα 4. Εγκαταστήστε το dlib και την αναγνώριση προσώπου.

sudo pip3 εγκατάσταση dlib

sudo pip3 εγκατάσταση face_recognition

Βήμα 5. Λήψη και εκτέλεση παραδείγματος αναγνώρισης προσώπου

git clone-μονόκλαδο

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

ΕΙΔΟΠΟΙΗΣΗ: Εάν έχετε ImportError: libatlas.so.3: δεν μπορείτε να ανοίξετε το αρχείο κοινόχρηστου αντικειμένου: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος, εκτελέστε την ακόλουθη εντολή για να το διορθώσετε.

Αναμετάδοση

Όταν η αναγνώριση προσώπου είναι έτοιμη, μπορούμε να συνεχίσουμε να προσθέτουμε επιπλέον δυνατότητες. Συνδέσαμε το Grove - Relay στο LTE Cat 1 Pi HAT, αλλά χρησιμοποιεί ψηφιακή θύρα και όχι θύρα I2C.

Αυτό είναι pin-out για το Raspberry Pi 3B, μπορούμε να δούμε την καρφίτσα SDA και την καρφίτσα SCL που βρίσκονται στην ακίδα 3 και στον πείρο 5 του πίνακα.

Εικόνα
Εικόνα

Έτσι μπορούμε να ελέγξουμε το ρελέ με εξόδους ψηφιακού σήματος στο pin 5. Εκτελέστε ακολουθώντας το πρόγραμμα python στο Raspberry Pi σας, αν δεν πάει κάτι στραβά, θα ακούσετε ένα Ti-Ta από ρελέ.

εισαγωγή RPi. GPIO ως GPIO

RELAY_PIN = 5 GPIO.setmode (GPIO. BOARD) GPIO.setup (RELAY_PIN, GPIO. OUT) GPIO.output (RELAY_PIN, GPIO. HIGH)

Ορίστε λοιπόν η ιδέα, φορτώνουμε γνωστά πρόσωπα από ένα φάκελο, αναγνωρίζουμε πρόσωπα που συλλαμβάνονται από την picamera, αν το πρόσωπο στο φάκελο, ρελέ ελέγχου για να ξεκλειδώσει την πόρτα. Μπορούμε να τα συσκευάσουμε σε μια κλάση, εδώ είναι η μέθοδος load_known_faces () και η μέθοδος ξεκλειδώματος (), το ολοκληρωμένο πρόγραμμα μπορεί να μεταφορτωθεί στο τέλος αυτού του άρθρου.

def load_known_faces (self):

γνωστο_προσωπα = os.listdir (αυτο._ γνωστο_προσωπο_διαδρομο) για γνωστο_προσωπο σε γνωστο_προσωπο: εαυτο._ γνωστο_προσωπο_ονομα.προσαρμογη (γνωστο_προσωπο [0: len (γνωστο_προσωπο] - len ('. jpg')]) γνωστο_προσωπο_εικονια = face_recognition.load_image_file (self_) αυτο._ GPIO. HIGH) εκτύπωση («Πόρτα ανοιχτή») time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True self._ retry_count += 1 print ('Please try again… { } '. format (self._ retry_count)) return False

Σκεφτείτε υπερβατικά, μπορούμε να δείξουμε την εικόνα που αναγνώρισε, οι βιβλιοθήκες PIL και matplotlib μπορεί να είναι χρήσιμες, μεταξύ αυτών, το matplotlib πρέπει να εγκατασταθεί χειροκίνητα, εκτελέστε αυτήν την εντολή στο τερματικό του Raspberry Pi.

sudo pip3 εγκαταστήστε το matplotlib

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

img = Image.open ('{}/{}. jpg'.format (self._ γνωστό_faces_path, self._ γνωστό_faces_name [0]))

plt.imshow (img) plt.ion () GPIO.output (self._ relay_pin, GPIO. HIGH) print ('πόρτα άνοιξε') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True

Τώρα, αν αναγνωριστεί ένα πρόσωπο, η εικόνα στο φάκελο θα εμφανιστεί στην οθόνη.

Εικόνα
Εικόνα

γραπτό μήνυμα

Μερικές φορές θέλουμε να μάθουμε ποιος είναι στο δωμάτιό μας και τώρα υπάρχει μια θέση για το LTE Cat 1 Pi HAT. Συνδέστε μια κάρτα SIM σε αυτήν και ακολουθήστε τα παρακάτω βήματα για να ελέγξετε εάν λειτουργεί ή όχι.

Βήμα 1. Ενεργοποιήστε το UART0 στο Raspberry Pi

Χρησιμοποιήστε το nano για να επεξεργαστείτε το config.txt στο /boot

sudo nano /boot/config.txt

προσθέστε dtoverlay = pi3-disable-bt στο κάτω μέρος του και απενεργοποιήστε την υπηρεσία hciuart

sudo systemctl απενεργοποιήστε το hciuart

στη συνέχεια διαγράψτε την κονσόλα = serial0, 115200 στο cmdline.txt στο /boot

sudo nano /boot/cmdline.txt

Αφού γίνουν όλα, θα πρέπει να επανεκκινήσετε το Raspberry Pi.

Βήμα 2. Κατεβάστε το παράδειγμα και εκτελέστε το.

Ανοίξτε ένα τερματικό στο Raspberry Pi, πληκτρολογήστε αυτές τις εντολές σε αυτήν γραμμή προς γραμμή.

cd

git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py install cd test sudo python test01.py

Εάν δείτε αυτές τις εξόδους στο τερματικό σας, το LTE Cat 1 Pi HAT λειτουργεί καλά.

Εντοπίστηκε κεφαλίδα GPIO 40 ακίδων

Ενεργοποίηση CTS0 και RTS0 σε GPIO 16 και 17 rts cts κατά την αφύπνιση … όνομα μονάδας: LARA-R211 RSSI: 3

Τώρα γνωρίζαμε ότι το HAT λειτουργεί καλά, πώς να το χρησιμοποιήσετε για να στείλετε SMS; Το πρώτο πράγμα που πρέπει να γνωρίζετε είναι ότι το Raspberry Pi επικοινωνεί με το HAT μέσω εντολών αποστολής AT από την UART. Μπορείτε να στείλετε εντολές AT στο LTE HAT εκτελώντας αυτόν τον κωδικό σε python

από εισαγωγή ublox_lara_r2 *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Close debug massage u.debug = Λάθος u.sendAT ('')

Η εντολή AT για αποστολή SMS έχει ως εξής

AT+CMGF = 1

AT+CMGS =

εδώ είναι η _send_sms () μέθοδος:

def _send_sms (self):

if self._ phonenum == Καμία: επιστροφή False for unlocker in self._ αναγνώριση_προσωπικών_ονομάτων (): if self._ ublox.sendAT ('AT+CMGF = 1 / r / n'): print (self._ ublox.response) if self. _ublox.sendAT ('AT+CMGS = "{}" / r / n'.format (self._ phonenum)): print (self._ ublox.response) if self._ ublox.sendAT (' {} enter the room. / x1a'.format (unlocker)): εκτύπωση (self._ ublox.response)

ΕΙΔΟΠΟΙΗΣΗ: Η βιβλιοθήκη του LTE Cat 1 Pi HAT που γράφτηκε από την python2, η οποία δεν είναι πολύ συμβατή με την python3, αν θέλετε να τη χρησιμοποιήσετε με αναγνώριση προσώπου, κατεβάστε την από το σύνδεσμο στο τέλος αυτού του άρθρου.

Συνιστάται: