אבטחה היא עניין מרכזי בחיי היום יום שלנו, ומנעולים דיגיטליים הפכו לחלק חשוב ממערכות האבטחה הללו. ישנם סוגים רבים של מערכות אבטחה הזמינות להבטחת מקומנו. כמה דוגמאות הן מערכת אבטחה מבוססת PIR, מערכת אבטחה מבוססת RFID, מערכת נעילה דיגיטלית, מערכות ביו-מטריצות, נעילת קוד אלקטרוניקה. בהודעה זו, תן לנו לבנות מנעול דלת זיהוי דפיקות סודי באמצעות ארדואינו שיכול לזהות את דפוס הדפיקות שלך בדלת ויפתח את המנעול רק אם דפוס הדפיקה תואם לתבנית הנכונה. לקבלת הדגמה נכונה, בדוק את הסרטון בסוף.
רכיבים:
- ארדואינו אונו
- לחץ על הכפתור
- זַמזָם
- נגד 1M
- כּוֹחַ
- חוטי חיבור
- קופסא
- מנוע סרוו
הסבר מעגל:
דיאגרמת המעגל של גלאי דפוסי דפיקות זה היא פשוטה מאוד המכילה ארדואינו לשליטה בתהליך הפרויקט כולו, כפתור לחיצה, זמזם ומנוע סרוו. Arduino שולט בתהליכים המלאים כמו לקיחת סיסמה באמצעות זמזם או חיישן, השוואת דפוסים, הובלת סרוו לפתיחה וסגירה של השער ושמירת התבנית לארדואינו.
כפתור הלחיצה מחובר ישירות לסיכה D7 של ארדואינו ביחס לקרקע. וגם זמזם מחובר ב A0 סיכה האנלוגי של Arduino ביחס לקרקע ועם התנגדות 1M בין A0 ו קרקע גם. מנוע סרוו קשור גם PWM סיכה D3 של Arduino.
הזנת דפוסי דפיקות בארדואינו:
במעגל זה השתמשנו ב- Buzzer או ב- Peizo Sensor כדי לקחת דפוס קלט לדפיקה במערכת. כאן אנו משתמשים בלחצן לחיצה כדי לאפשר לקחת קלט מהחיישן וגם לשמור את זה בארדואינו. מערכת זו תוכננה על ידי לקיחת רעיון מתבנית קוד מורס אך לא בדיוק דומה לזה.
כאן השתמשנו בתיבת לוח קלפים לצורך הדגמה. כדי לקבל קלט אנו מפילים את הלוח לאחר לחיצה על כפתור הלחיצה. כאן דפקנו על ידי שמירה על פרק זמן שהוא 500ms. 500ms זה בגלל שתיקנו אותו בקוד ותבנית הקלט תלויה בו. פרק זמן זה של 500ms יגדיר שהקלט היה 1 או 0. בדוק את הקוד שלמטה כדי להבין את הדבר הזה.
כשאנחנו דופקים אותו, Arduino מתחיל לעקוב אחר זמן הדפיקה הראשונה לדפיקה השנייה ולשים את זה במערך. כאן במערכת זו אנו לוקחים 6 דפיקות. זה אומר שנקבל 5 פרקי זמן.
כעת אנו בודקים את פרק הזמן אחד אחד. ראשית, אנו בודקים פרק זמן בין דפיקה ראשונה לדפיקה שנייה אם הפרש הזמן בין אלה פחות מ 500 ms אז הוא יהיה 0 ואם גדול מ 500 ms הוא יהיה 1 והוא יישמר במשתנה. עכשיו אחרי זה, אנו בודקים פרק זמן בין דפיקה שנייה לדפיקה שלישית וכן הלאה.
לבסוף נקבל פלט בן 5 ספרות בפורמט 0 ו- 1 (בינארי).
הסבר עבודה:
העבודה של פרויקט Smart Lock מבוסס Knock היא פשוטה. ראשית עלינו לשמור תבנית במערכת. אז עלינו ללחוץ לחיצה ארוכה על כפתור הלחיצה עד שנקיש 6 פעמים. כאן בפרויקט זה השתמשתי ב -6 דפיקות אך המשתמש עשוי לשנות זאת כרצונו. לאחר שש פעמים דופק, ארדואינו מוצא את דפוס הדפיקה ושומר זאת ב- EEPROM. כעת לאחר שמירת דפוס הקלט, לחץ ושחרר מייד את כפתור הלחיצה להעברת קלט מהחיישן לארדואינו כדי לפתוח את הנעילה. עכשיו אנחנו צריכים לדפוק 6 פעמים. אחריו, ארדואינו מפענח אותו ומשווה לתבנית שמורה. אם מתרחשת התאמה אז ארדואינו פותח את השער באמצעות מנוע סרוו.
הערה: כאשר אנו לוחצים או לוחצים לחיצה ארוכה על כפתור הלחיצה Arduino מתחילים טיימר של 10 שניות כדי לקחת את כל 6 הדפיקה. פירוש הדבר שהמשתמש צריך לדפוק תוך זמן זה של 10 שניות. והמשתמש עשוי לפתוח צג סידורי כדי לראות את היומן.
הסבר על תכנות:
בתוכנית קודם כל אנו כוללים את קובץ הכותרת ומגדיר סיכת קלט ופלט ומגדיר את המקרו והמשתנים המוצהרים כפי שניתן לראות בסעיף הקוד המלא בקוד למטה.
לאחר מכן, בפונקציית ההתקנה , אנו נותנים כיוון לסיכה מוגדרת ויוזמים מנוע סרוו.
הגדרת חלל () {pinMode (sw, INPUT_PULLUP); myServo.attach (servoPin); myServo.write (180); Serial.begin (9600); }
אחריה, אנו לוקחים קלט ושומרים את תבנית הקלט או נקישת זמן במערך.
לולאה בטלה () {int i = 0; אם (digitalRead (sw) == LOW) {Serial.println ("התחל"); עיכוב (1000); stt ארוך = מילי (); בעוד (מיליס () <(stt + patternInputTime)) {int temp = analogRead (A0); אם (temp> רגישות && דגל == 0 && i <= patternLenth) {…………..
אחריה אנו מפענחים את דפוס הקלט
עבור (int i = 0; i
ואז שמור אם לחצן הלחיצה עדיין נלחץ
אם (digitalRead (sw) == 0) {עבור (int i = 0; i
ואם לחצן הלחיצה עדיין לא נלחץ אז Arduino ישווה דפוס מפוענח קלט לתבנית שמורה.
אחרת {אם (knok == 1) {עבור (int i = 0; i
אם סיסמא כלשהי תואמת, סרוו יפתח את השער אחרת שום דבר לא קרה אבל המשתמש עשוי לראות תוצאה על צג סדרתי.
Serial.println (acceptFlag); אם (acceptFlag> = patternLenth-1) {Serial.println ("מקובל"); myServo.write (openGate); עיכוב (5000); myServo.write (closeGate); } אחר Serial.println ("נדחה"); }
אתה יכול לבדוק את הקוד השלם למטה באמצעות סרטון הדגמה.