- Απαιτούμενα στοιχεία
- Κλείδωμα σωληνοειδών
- Διάγραμμα κυκλώματος
- Εγκαταστήστε το ESP32 Board στο Arduino IDE
- Επεξήγηση κώδικα
- Δοκιμή του
Η ασφάλεια ανησυχεί περισσότερο για όλους σήμερα, είτε πρόκειται για την ασφάλεια δεδομένων είτε για την ασφάλεια του σπιτιού τους. Με την πρόοδο της τεχνολογίας και την αυξανόμενη χρήση του IoT, οι ψηφιακές κλειδαριές πορτών έχουν γίνει πολύ συχνές αυτές τις μέρες. Το ψηφιακό κλείδωμα δεν απαιτεί φυσικό κλειδί, αλλά χρησιμοποιεί RFID, δακτυλικό αποτύπωμα, αναγνωριστικό προσώπου, καρφίτσα, κωδικούς πρόσβασης κ.λπ. για τον έλεγχο της κλειδαριάς της πόρτας. Στο παρελθόν, έχουμε αναπτύξει πολλές εφαρμογές ψηφιακών κλειδαριών πορτών χρησιμοποιώντας αυτές τις διάφορες τεχνολογίες. Σε αυτό το σεμινάριο χτίζουμε ένα σύστημα ψηφιακής κλειδαριάς με ελεγχόμενη ταυτότητα προσώπου χρησιμοποιώντας το ESP32-CAM.
Η μονάδα AI-Thinker ESP32-CAM είναι ένας πίνακας ανάπτυξης χαμηλού κόστους με κάμερα OV2640 πολύ μικρού μεγέθους και υποδοχή κάρτας micro SD. Διαθέτει τσιπ ESP32 S με ενσωματωμένο Wi-Fi και συνδεσιμότητα Bluetooth, με 2 επεξεργαστές LX6 32-bit υψηλής απόδοσης, αρχιτεκτονική αγωγών 7 σταδίων. Έχουμε εξηγήσει στο παρελθόν το ESP32-CAM λεπτομερώς και το χρησιμοποιούσαμε για την κατασκευή ενός κουδουνιού βίντεο πόρτας Wi-Fi. Αυτή τη φορά θα χρησιμοποιήσουμε το ESP32-CAM για να δημιουργήσουμε ένα σύστημα κλειδώματος πόρτας που βασίζεται στην αναγνώριση προσώπου χρησιμοποιώντας μια μονάδα ρελέ και κλειδαριά σωληνοειδών.
Απαιτούμενα στοιχεία
- Κάμερα ESP32
- Διοικητικό Συμβούλιο FTDI
- Μονάδα ρελέ
- Κλείδωμα σωληνοειδών
- Καλώδια αλτών
Κλείδωμα σωληνοειδών
Μια ηλεκτρομαγνητική κλειδαριά λειτουργεί στον ηλεκτρονικό μηχανικό μηχανισμό κλειδώματος. Αυτός ο τύπος κλειδαριάς διαθέτει γυμνοσάλιαγκες με κεκλιμένη κοπή και καλό στήριγμα στήριξης. Όταν εφαρμόζεται η ισχύς, το DC δημιουργεί ένα μαγνητικό πεδίο που μετακινεί το γυμνόσχημο μέσα και διατηρεί την πόρτα σε ξεκλείδωτη θέση. Ο γυμνοσάλιαγκας θα διατηρήσει τη θέση του έως ότου αφαιρεθεί το ρεύμα. Όταν αποσυνδεθεί το ρεύμα, ο γυμνοσάλιαγκας κινείται έξω και κλειδώνει την πόρτα. Δεν χρησιμοποιεί καμία ισχύ σε κατάσταση κλειδώματος. Για να οδηγήσετε το κλείδωμα της ηλεκτρομαγνητικής βαλβίδας, θα χρειαστείτε μια πηγή ισχύος που μπορεί να δώσει 12V @ 500mA.
Χρησιμοποιήσαμε προηγουμένως μια κλειδαριά σωληνοειδών για να χτίσουμε μια κλειδαριά πόρτας RFID με βάση το Arduino.
Διάγραμμα κυκλώματος
Το διάγραμμα κυκλώματος για το σύστημα κλειδώματος πορτών αναγνώρισης προσώπου ESP32-CAM δίνεται παρακάτω:
Το παραπάνω κύκλωμα συνδυάζεται με πλακέτα FTDI, Relay Module και Solenoid Lock. Η πλακέτα FTDI χρησιμοποιείται για να αναβοσβήνει τον κωδικό σε ESP32-CAM καθώς δεν διαθέτει υποδοχή USB, ενώ η μονάδα ρελέ χρησιμοποιείται για την ενεργοποίηση ή απενεργοποίηση της κλειδαριάς Στερεοειδούς. Οι ακίδες VCC και GND της πλακέτας FTDI και της μονάδας ρελέ συνδέονται με τον πείρο Vcc και GND του ESP32-CAM. Τα TX και RX της πλακέτας FTDI συνδέονται με RX και TX του ESP32 και ο πείρος IN της μονάδας ρελέ συνδέεται με το IO4 του ESP32-CAM.
ESP32-CAM |
Διοικητικό Συμβούλιο FTDI |
5V |
VCC |
GND |
GND |
UOR |
ΤΧ |
ΟΥΤ |
RX |
ESP32-CAM |
Μονάδα ρελέ |
5V |
VCC |
GND |
GND |
IO4 |
ΣΕ |
Σημείωση: Πριν ανεβάσετε τον κωδικό, συνδέστε το IO0 στο έδαφος. Το IO0 καθορίζει εάν το ESP32 βρίσκεται σε λειτουργία αναβοσβήνει ή όχι. Όταν το GPIO 0 είναι συνδεδεμένο στο GND, το ESP32 βρίσκεται σε λειτουργία αναβοσβήνει.
Αφού συνδέσετε το υλικό σύμφωνα με το διάγραμμα κυκλώματος, θα πρέπει να μοιάζει παρακάτω:
Εγκαταστήστε το ESP32 Board στο Arduino IDE
Εδώ το Arduino IDE χρησιμοποιείται για τον προγραμματισμό ESP32-CAM. Για αυτό, πρώτα, εγκαταστήστε το πρόσθετο ESP32 στο Arduino IDE.
Για να εγκαταστήσετε την πλακέτα ESP32 στο Arduino IDE, μεταβείτε στο Αρχείο> Προτιμήσεις.
Τώρα αντιγράψτε τον παρακάτω σύνδεσμο και επικολλήστε τον στο πεδίο "Πρόσθετες διευθύνσεις διευθύνσεων πλακέτας" όπως φαίνεται στο παρακάτω σχήμα. Στη συνέχεια, κάντε κλικ στο κουμπί "OK":
https://dl.espressif.com/dl/package_esp32_index.json
Τώρα μεταβείτε στα Εργαλεία> Πίνακας> Διαχείριση πινάκων
Στο Board Manager, αναζητήστε το ESP32 και εγκαταστήστε το "ESP32 by Espressif Systems".
Επεξήγηση κώδικα
Εξηγήσαμε την αναγνώριση προσώπου με ESP32 στο προηγούμενο άρθρο. Εδώ θα τροποποιήσουμε τον ίδιο κωδικό για να ελέγξουμε μια κλειδαριά σωληνοειδούς πόρτας. Ο πλήρης κωδικός χωρίζεται σε τέσσερα μέρη. Ο ένας είναι ο κύριος κωδικός για τη μονάδα κάμερας και ρελέ, όπου το ESP32 κλειδώνει ή ξεκλειδώνει την πόρτα σύμφωνα με την αναγνώριση προσώπου και οι άλλοι τρεις κωδικοί είναι για ιστοσελίδα, ευρετήριο κάμερας και καρφίτσες κάμερας. Ο πλήρης κωδικός δίνεται στο τέλος αυτής της σελίδας. Εδώ εξηγούμε ορισμένα σημαντικά μέρη του κώδικα.
Ξεκινήστε το πρόγραμμα συμπεριλαμβάνοντας όλα τα αρχεία της βιβλιοθήκης.
# συμπερίληψη "esp_camera.h" #include
Στην επόμενη γραμμή, αποσυνδέστε τη μονάδα κάμερας που χρησιμοποιείτε με το ESP32. Στον κώδικα ορίζονται πέντε διαφορετικά μοντέλα κάμερας. Σε αυτήν την περίπτωση, χρησιμοποιούμε το μοντέλο AI-THINKER.
// # define CAMERA_MODEL_WROVER_KIT // # define CAMERA_MODEL_ESP_EYE // # define CAMERA_MODEL_M5STACK_PSRAM // # define CAMERA_MODEL_M5STACK_WIDE # ορίστε CAMERA_MODEL_AI_THINKER
Μετά από αυτό, εισαγάγετε τα διαπιστευτήρια του δικτύου σας στις ακόλουθες μεταβλητές:
const char * ssid = "Όνομα Wi-Fi"; const char * password = "κωδικός πρόσβασης Wi-Fi";
Στη συνέχεια, ορίστε τον πείρο όπου είναι συνδεδεμένη η μονάδα ρελέ. Θα χρησιμοποιήσουμε τη λειτουργία millis () για να κλειδώσουμε την πόρτα αφού την ξεκλειδώσουμε σε καθορισμένο χρονικό διάστημα, εδώ είναι 5 δευτερόλεπτα.
#define ρελέ 4 long prevMillis = 0; διάστημα int = 5000;
Στη λειτουργία setup () , αρχικοποιήστε το Serial Monitor με ρυθμό baud 115200 για σκοπούς εντοπισμού σφαλμάτων. Στη συνέχεια, στις επόμενες γραμμές, ορίστε τη λειτουργία ακίδων για τη μονάδα ρελέ και επίσης ρυθμίστε αρχικά το ρελέ σε χαμηλή θέση.
άκυρη ρύθμιση () {Serial.begin (115200); pinMode (ρελέ, ΕΞΟΔΟΣ); digitalWrite (ρελέ, LOW);
Μέσα στη συνάρτηση loop () , ελέγξτε αν το πρόσωπο ταιριάζει με το εγγεγραμμένο πρόσωπο. Εάν ναι, ξεκλειδώστε την πόρτα για 5 δευτερόλεπτα και μετά από 5 δευτερόλεπτα κλειδώστε ξανά την πόρτα.
void loop () {if (matchFace == true && activeRelay == false) {activeRelay = true; digitalWrite (ρελέ, ΥΨΗΛΟ); prevMillis = millis (); } if (activeRelay == true && millis () - prevMillis> διάστημα) {activeRelay = false; matchFace = false; digitalWrite (ρελέ, LOW); }
Δοκιμή του
Τέλος, για να ανεβάσετε τον κωδικό, συνδέστε την πλακέτα FDTI με τον φορητό σας υπολογιστή και επιλέξτε το «ESP32 Wrover Module» ως πίνακά σας. Επίσης, αλλάξτε τις άλλες ρυθμίσεις όπως φαίνεται στην παρακάτω εικόνα:
Μην ξεχάσετε να συνδέσετε την καρφίτσα IO0 στο GND πριν ανεβάσετε τον κωδικό και επίσης πατήστε το κουμπί επαναφοράς ESP32 και μετά κάντε κλικ στο κουμπί αποστολής.
Σημείωση: Εάν λάβετε σφάλματα κατά τη μεταφόρτωση του κώδικα, βεβαιωθείτε ότι το IO0 είναι συνδεδεμένο στο GND και έχετε επιλέξει τις σωστές ρυθμίσεις στο μενού Εργαλεία.
Αφού ανεβάσετε τον κωδικό, αφαιρέστε τον πείρο IO0 και GND. Στη συνέχεια, ανοίξτε τη σειριακή οθόνη και αλλάξτε το ρυθμό baud σε 115200. Μετά από αυτό, πατήστε το κουμπί επαναφοράς ESP32, θα εκτυπώσει τη διεύθυνση IP ESP και τη θύρα αρ. στη σειριακή οθόνη.
Τώρα μεταβείτε στο πρόγραμμα περιήγησης και εισαγάγετε τη διεύθυνση IP ESP που αντιγράφεται από τη σειριακή οθόνη για πρόσβαση στη ροή της κάμερας. Θα σας μεταφέρει στη σελίδα ροής. Για να ξεκινήσετε τη ροή βίντεο, κάντε κλικ στο κουμπί "Έναρξη ροής" στο κάτω μέρος της σελίδας.
Για να αναγνωρίσουμε τα πρόσωπα με ESP32-CAM, πρώτα, πρέπει να εγγράψουμε τα πρόσωπα. Για αυτό, ενεργοποιήστε τις δυνατότητες αναγνώρισης και ανίχνευσης προσώπου από τις ρυθμίσεις και, στη συνέχεια, κάντε κλικ στο κουμπί Εγγραφή προσώπου. Χρειάζονται αρκετές προσπάθειες για να σώσει το πρόσωπο. Αφού σώσει το πρόσωπο, ανιχνεύει το πρόσωπο ως θέμα 0 όπου το μηδέν είναι ο αριθμός προσώπου.
Μετά την εγγραφή των προσώπων, εάν ένα πρόσωπο αναγνωρίζεται στη ροή βίντεο, το ESP32 θα ανεβάσει τη μονάδα ρελέ για να ξεκλειδώσει την πόρτα.
Έτσι, έτσι μπορεί να χρησιμοποιηθεί το ESP32-CAM για τη δημιουργία ενός συστήματος ασφαλείας που βασίζεται στην αναγνώριση προσώπου. Μπορείτε να κατεβάσετε τον πλήρη κώδικα από αυτόν τον σύνδεσμο και δίνεται παρακάτω μαζί με ένα βίντεο επίδειξης.