אבטחה היא לכל היותר דאגה לכל אחד בימינו, בין אם זה אבטחת נתונים או אבטחה של הבית שלהם. עם התקדמות הטכנולוגיה והשימוש הגובר ב- IoT, מנעולי דלתות דיגיטליים הפכו נפוצים מאוד בימינו. נעילה דיגיטלית אינה דורשת שום מפתח פיזי אך היא משתמשת ב- RFID, טביעת אצבע, זיהוי פנים, סיכה, סיסמאות וכו 'כדי לשלוט על נעילת הדלת. בעבר, פיתחנו יישומי מנעול דלתות דיגיטליים רבים באמצעות טכנולוגיות שונות אלה. במדריך זה אנו בונים מערכת נעילת דלת דיגיטלית מבוקרת על ידי Face ID באמצעות ESP32-CAM.
מודול ה- AI-Thinker ESP32-CAM הוא לוח פיתוח בעלות נמוכה עם מצלמת OV2640 בגודל קטן מאוד וחריץ לכרטיס micro SD. יש לו שבב ESP32 S עם קישוריות Wi-Fi ו- Bluetooth מובנית, עם 2 מעבדי 32 סיביות LX6 ביצועים גבוהים, ארכיטקטורת צנרת בת 7 שלבים. בעבר הסברנו בפירוט על ESP32-CAM והשתמשנו בו לבניית פעמון דלת Wi-Fi. הפעם נשתמש ב- ESP32-CAM לבניית מערכת נעילת דלת מבוססת זיהוי פנים באמצעות מודול ממסר ומנעול סולנואיד.
רכיבים נדרשים
- מצלמת ESP32
- מועצת FTDI
- מודול ממסר
- נעילת סולנואיד
- חוטי מגשר
נעילת סולנואיד
מנעול סולנואיד עובד על מנגנון הנעילה האלקטרוני-מכני. למנעול מסוג זה שבלול עם חיתוך משופע ותושבת הרכבה טובה. כאשר מפעילים את הכוח, DC יוצר שדה מגנטי שמזיז את הקליע פנימה ושומר על הדלת במצב נעול. הקליע ישמור על מעמדו עד להסרת הכוח. כאשר הניתוק מנותק, הקליע נע החוצה ונועל את הדלת. הוא לא משתמש בכוח כלשהו במצב נעול. כדי להניע את נעילת הסולנואיד, תזדקק למקור חשמל שיכול לתת 12V @ 500mA.
בעבר השתמשנו במנעול סולנואיד לבניית מנעול דלתות RFID מבוסס ארדואינו.
תרשים מעגל
תרשים המעגל למערכת נעילת דלתות לזיהוי פנים של ESP32-CAM ניתן להלן:
המעגל לעיל בשילוב לוח FTDI, מודול ממסר ומנעול סולנואיד. לוח 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 |
TX |
UOT |
RX |
ESP32-CAM |
מודול ממסר |
5V |
VCC |
GND |
GND |
IO4 |
IN |
הערה: לפני העלאת הקוד, חבר את ה- IO0 לקרקע. IO0 קובע אם ה- ESP32 נמצא במצב מהבהב או לא. כאשר GPIO 0 מחובר ל- GND, ה- ESP32 נמצא במצב מהבהב.
לאחר חיבור החומרה לפי דיאגרמת המעגל, היא אמורה להיראות בערך כמו למטה:
התקן את לוח ESP32 ב- Arduino IDE
כאן Arduino IDE משמש לתכנות ESP32-CAM. לשם כך, ראשית, התקן את התוסף ESP32 ב- Arduino IDE.
להתקנת לוח ESP32 ב- Arduino IDE שלך, עבור אל קובץ> העדפות.
כעת העתיקו את הקישור שלהלן והדביקו אותו בשדה "כתובות אתרים נוספות של מנהל לוח", כפי שמוצג באיור למטה. לאחר מכן לחץ על כפתור "אישור":
https://dl.espressif.com/dl/package_esp32_index.json
כעת עבור אל כלים> לוח> מנהל לוחות
במנהל Board, חפש ESP32 והתקן את "ESP32 by Espressif Systems".
הסבר קוד
הסברנו על זיהוי פנים עם ESP32 במאמר הקודם; כאן נשנה את אותו קוד כדי לשלוט על נעילת דלת סולנואיד. הקוד השלם מחולק לארבעה חלקים. האחד הוא הקוד העיקרי עבור המצלמה ומודול הממסר שבו ה- ESP32 נועל או פותח את הדלת בהתאם לזיהוי פנים, ושלושת הקודים האחרים מיועדים לדף אינטרנט, אינדקס מצלמה וסיכות מצלמה. הקוד המלא ניתן בסוף עמוד זה. כאן אנו מסבירים כמה חלקים חשובים בקוד.
התחל את התוכנית על ידי הכללת כל קבצי הספרייה.
# כלול "esp_camera.h" # כלול
בשורה הבאה, בטל את ההערה של מודול המצלמה שבו אתה משתמש עם ESP32. בקוד מוגדרים חמישה דגמי מצלמה שונים. במקרה זה אנו משתמשים במודל AI-THINKER.
// # הגדר CAMERA_MODEL_WROVER_KIT // # הגדר CAMERA_MODEL_ESP_EYE // # הגדר CAMERA_MODEL_M5STACK_PSRAM // # הגדר CAMERA_MODEL_M5STACK_WIDE # הגדר CAMERA_MODEL_AI_THINKER
לאחר מכן, הכנס את אישורי הרשת שלך למשתנים הבאים:
const char * ssid = "שם Wi-Fi"; const char * password = "סיסמת Wi-Fi";
לאחר מכן הגדירו את הסיכה אליו מחובר מודול הממסר. נשתמש בפונקציה millis () כדי לנעול את הדלת לאחר פתיחתה בפרק זמן מוגדר, הנה זה 5 שניות.
#define ממסר 4 prevMillis ארוך = 0; מרווח int = 5000;
ב ההתקנה () הפונקציה, לאתחל את הצג הסידורי בקצב שידור של 115,200 למטרת איתור באגים. ואז בשורות הבאות, הגדירו את מצב הסיכה עבור מודול הממסר והגדרו את הממסר בתחילה במצב נמוך.
הגדרת חלל () {Serial.begin (115200); pinMode (ממסר, OUTPUT); digitalWrite (ממסר, LOW);
בתוך פונקציית loop () , בדוק אם הפנים תואמות את הפנים הרשומות. אם כן, נפתח את הדלת למשך 5 שניות ולאחר 5 שניות נעלה את הדלת שוב.
loop loop () {if (matchFace == true && activeRelay == false) {activeRelay = true; digitalWrite (ממסר, HIGH); prevMillis = מילי (); } אם (activeRelay == true && millis () - prevMillis> interval) {activeRelay = false; matchFace = false; digitalWrite (ממסר, LOW); }
בודקים את
לבסוף כדי להעלות את הקוד, חבר את לוח FDTI למחשב הנייד שלך, ובחר 'ESP32 Wrover Module' כלוח שלך. כמו כן, שנה את ההגדרות האחרות כפי שמוצג בתמונה למטה:
אל תשכח לחבר את סיכת ה- IO0 ל- GND לפני העלאת הקוד ולחץ גם על כפתור האיפוס ESP32 ואז לחץ על כפתור ההעלאה.
הערה: אם אתה מקבל שגיאות בעת העלאת הקוד, בדוק ש- IO0 מחובר ל- GND ובחרת בהגדרות הנכונות בתפריט כלים.
לאחר העלאת הקוד, הסר את הסיכה IO0 ו- GND. ואז פתח את המסך הטורי ושנה את קצב השידור ל 115200. לאחר מכן לחץ על כפתור האיפוס ESP32, הוא ידפיס את כתובת ה- IP של ה- ESP ואת מספר היציאה. בצג הסדרתי.
כעת נווט לדפדפן והזן את כתובת ה- IP של ESP המועתקת מהצג הסידורי כדי לגשת לזרמת המצלמה. זה יוביל אותך לדף הסטרימינג. כדי להתחיל את הזרמת הווידאו, לחץ על כפתור 'התחל זרם' בתחתית הדף.
כדי לזהות את הפרצופים עם ESP32-CAM, ראשית, עלינו לרשום את הפרצופים. לשם כך, הפעל את תכונות זיהוי הפנים וזיהוי מההגדרות ואז לחץ על כפתור הרשמת פנים. נדרשים מספר ניסיונות להצלת הפנים. לאחר שמירת הפנים, הוא מזהה את הפנים כנושא 0 כאשר אפס הוא מספר הפנים.
לאחר רישום הפרצופים, אם מזוהים פנים בפיד הווידאו, ESP32 יהפוך את מודול הממסר לגובה כדי לפתוח את הדלת.
אז ככה ניתן להשתמש ב- ESP32-CAM לבניית מערכת אבטחה מבוססת זיהוי פנים. ניתן להוריד את הקוד השלם מקישור זה והוא ניתן להלן יחד עם סרטון הדגמה.