- רכיבים נדרשים:
- תרשים מעגל והסבר:
- התקנת ספרייה לחיישן הדפסת אצבע:
- הפעלת חיישן טביעות אצבע עם פטל פטל:
- תכנות פיתון:
חיישן טביעות אצבע, שאותו היינו רואים בחדשות Sci-Fi לפני כמה שנים, נפוץ כיום מאוד לאימות זהותו של אדם למטרות שונות. בזמן הנוכחי אנו יכולים לראות מערכות מבוססות טביעות אצבע בכל מקום בחיי היומיום שלנו כמו נוכחות במשרדים, אימות עובדים בבנקים, משיכת מזומנים או הפקדות בכספומטים, לאימות זהות במשרדי ממשלה וכו '. כבר התממשקנו עם Arduino היום אנו הולכים לממשק חיישן FingerPrint עם Raspberry Pi. באמצעות מערכת Ringerberry Pi FingerPrint, אנו יכולים לרשום טביעות אצבע חדשות במערכת ונוכל למחוק את טביעות האצבע שכבר הוזנו. העבודה המלאה של המערכת הוצגה בסרטון הווידיאו שניתן בסוף המאמר.
רכיבים נדרשים:
- פאי פטל
- ממיר USB לטורי
- מודול טביעות אצבע
- ללחוץ על כפתורים
- LCD בגודל 16x2
- סיר 10k
- לוח לחם או PCB (הוזמן מ- JLCPCB)
- חוטי מגשר
- LED (אופציונלי)
- נגד 150 אוהם -1 k אוהם (אופציונלי)
תרשים מעגל והסבר:
בכך טביעות אצבע הפטל Pi חיישן ממשק פרויקט, השתמשנו לחצני 4: אחד עבור רשמת pring האצבע החדשה, אחד עבור מחיקת טביעות האצבע הנמאסת כבר ולנוח שני עבור תוספת / הפחתת עמדת טביעות אצבע נמאסת כבר. LED משמש אינדיקציה כי חיישן טביעות אצבע הוא מוכן לקחת את אצבע על התאמה. כאן השתמשנו במודול טביעות אצבע שעובד ב- UART. אז הנה ממשקנו את מודול טביעות האצבע הזה עם Raspberry Pi באמצעות ממיר USB לסידורי.
אז ראשית כל, עלינו ליצור את כל החיבורים הנדרשים כפי שמוצג בתרשים המעגל להלן. החיבורים פשוטים, הרגע חיברנו את מודול טביעות האצבע ליציאת USB של Raspberry Pi באמצעות ממיר USB לסידורי. LCD 16x2 משמש להצגת כל ההודעות. סיר 10k משמש גם עם LCD לשליטה על הניגודיות של אותו. סיכות LCD 16x2 RS, EN, d4, d5, d6 ו- d7 מחוברות עם GPIO Pin 18, 23, 24, 25, 8 ו- 7 של Raspberry Pi בהתאמה. ארבעה כפתורי לחיצה מחוברים לפין 5, 6, 13 ו -19 של GPIO פטל. נורית LED מחוברת גם בסיכה 26 של RPI.
התקנת ספרייה לחיישן הדפסת אצבע:
לאחר ביצוע כל החיבורים אנו זקוקים להפעלת Raspberry Pi ולהכין אותו עם מסוף פתוח. כעת עלינו להתקין את ספריית טביעות האצבע עבור Raspberry Pi בשפת פיתון על ידי ביצוע השלבים הבאים.
שלב 1: להתקנת ספרייה זו, נדרשות הרשאות שורש. אז ראשית אנו נכנסים לשורש על ידי פקודה נתונה:
סודו באש
שלב 2: לאחר מכן הורד כמה חבילות נדרשות באמצעות פקודות נתונות:
wget –O - http://apt.pm-codeworks.de/pm-codeworks.de.gpg - הוסף apt-key - wget http://apt.pm-codeworks.de/pm-codeworks.list -P / etc / apt / sources.list.d /
שלב 3: לאחר מכן, עלינו לעדכן את ה- Raspberry pi ולהתקין את ספריית חיישני טביעת האצבע שהורדת:
sudo apt-get עדכן sudo apt-get להתקין טביעת אצבע פייתון –כן
שלב 4: לאחר התקנת הספרייה כעת עלינו לבדוק את יציאת ה- USB שעליה מחובר חיישן טביעת האצבע שלך, באמצעות הפקודה:
ls / dev / ttyUSB *
כעת החלף את יציאת ה- USB מס ', עם יציאת ה- USB שעברת על המסך והחלף אותה בקוד הפיתון. קוד פייתון מלא ניתן בסוף פרויקט זה.
הפעלת חיישן טביעות אצבע עם פטל פטל:
התפעול של פרויקט זה פשוט, פשוט הפעילו את קוד הפיתון ויהיו כמה הודעות מבוא על גבי LCD ואז המשתמש יתבקש למקם אצבע על חיישן הדפסת האצבע. כעת על ידי הצבת אצבע מעל מודול טביעות אצבע, אנו יכולים לבדוק אם טביעות האצבעות שלנו כבר שמורות או לא. אם טביעת האצבע שלך מאוחסנת אז LCD יציג את ההודעה עם מיקום האחסון של טביעת האצבע כמו ' Fount at Pos: 2' אחרת היא תראה 'No Match Found' .
כעת כדי לרשום הדפסת אצבע , המשתמש צריך ללחוץ על כפתור ההרשמה ופעל לפי הודעות ההוראות במסך LCD.
אם המשתמש רוצה למחוק טביעות אצבע כלשהן, המשתמש צריך ללחוץ על כפתור המחיקה. לאחר מכן, LCD יבקש את המיקום של טביעת האצבע שתמחק. כעת על ידי שימוש בלחיצת כפתור נוספת לשני הגדלה והקטנה, המשתמש יכול לבחור את המיקום של הדפסת האצבע השמורה ולחץ על כפתור ההרשמה (בשלב זה כפתור ההרשמה מתנהג ככפתור אישור) כדי למחוק את טביעת האצבע. להבנה רבה יותר הסתכלו בסרטון שניתן בסוף הפרויקט.
תכנות פיתון:
פייתון לממשק חיישן הדפסת אצבע עם RPi קל באמצעות פונקציות ספריית טביעות אצבע. אבל אם המשתמש רוצה לממשק אותו בעצמו, זה יהיה קצת קשה בפעם הראשונה. בגליונות הנתונים של חיישני טביעת אצבע, כל מה שנדרש לצורך ממשק לאותו מודול. קוד GitHub זמין לבדיקת ה- Raspberry pi שלך עם חיישן הדפסת אצבע.
כאן השתמשנו בספרייה אז אנחנו רק צריכים להתקשר לפונקציית הספריה. בקוד, ראשית עלינו לייבא ספריות כמו טביעת אצבע, GPIO וזמן, ואז עלינו להגדיר סיכות עבור כפתורי LCD, LED ולחצנים.
זמן ייבוא מטביעת אצבע.טביעת אצבע יבוא PyFingerprint ייבוא RPi.GPIO כ- gpio RS = 18 EN = 23 D4 = 24 D5 = 25 D6 = 8 D7 = 7 הירשם = 5 מחק = 6 inc = 13 dec = 19 led = 26 HIGH = 1 LOW = 0
אחרי זה, עלינו לאתחל ולתת כיוון לסיכות שנבחרו
gpio.set אזהרות (שקר) gpio.setmode (gpio.BCM) gpio.setup (RS, gpio.OUT) gpio.setup (EN, gpio.OUT) gpio.setup (D4, gpio.OUT) gpio.setup (D5, gpio.OUT) gpio.setup (D6, gpio.OUT) gpio.setup (D7, gpio.OUT) gpio.setup (הירשם, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (מחק, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (inc, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (dec, gpio.IN, pull_up_down = gpio.PUD_UP) gpio.setup (led, gpio.OUT)
עכשיו יש לנו אתחול חיישן טביעות האצבע
נסה: f = PyFingerprint ('/ dev / ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) אם (f.verifyPassword () == False): העלה את ValueError ('סיסמת חיישן טביעות האצבע הנתונה שגויה!') למעט חריג כמו e: הדפס ('הודעת חריג:' + str (e)) יציאה (1)
כתבנו פונקציה כלשהי כדי לאתחל ולהניע את ה- LCD, בדוק את הקוד השלם למטה בסעיף הקוד:
def להתחיל (), def lcdcmd (ch), def lcdwrite (ch), def lcdprint (Str), def setCursor (x, y)
לאחר שכתבנו את כל הפונקציות של מנהל התקן ה- LCD, הצבנו פונקציות לרישום, חיפוש ומחיקה של טביעות אצבע.
הפונקציה def enrolFinger () משמשת לרישום או שמירת טביעות האצבעות החדשות.
פונקציית def searchFinger () משמשת לחיתוך טביעות האצבע שכבר אוחסנו
def deleteFinger () פונקציות משמש לציור טביעת האצבע שכבר נשמרה על ידי לחיצה על כפתור הלחצן המתאים.
כל הקוד של הפונקציה שלמעלה מקבל את קוד הפיתון המופיע להלן.
אחרי זה, סוף סוף, עלינו לאתחל את המערכת עד תוך לולאה אחת על ידי בקשה למקם אצבע על חיישן טביעת האצבע ואז המערכת תבדוק אם אצבע זו הדפיסה אותה בתוקף או לא ותציג את התוצאות בהתאם.
התחל () lcdcmd (0x01) lcdprint ("FingerPrint") lcdcmd (0xc0) lcdprint ("ממשק") זמן. שינה (3) lcdcmd (0x01) lcdprint ("Circest Digest") lcdcmd (0xc0) lcdprint ("ברוך הבא") time.sleep (3) דגל = 0 lcdclear () בעוד 1: gpio.output (led, HIGH) lcdcmd (1) lcdprint ("מקום אצבע") אם gpio.input (הרשמה) == 0: gpio.output (led, LOW)rollFinger () elif gpio.input (מחק) == 0: gpio.output (led, LOW) בעוד gpio.input (מחק) == 0: time.sleep (0.1) deleteFinger () אחר: searchFinger ()
קוד פייתון מלא וסרטון עבודה מופיע להלן.