- רכיבים בשימוש:
- חיבור לוח מקשים 4x4 עם פטל פטל באמצעות ריבוב:
- תיאור המעגל:
- הסבר עבודה:
- הסבר על תכנות:
אבטחה היא עניין מרכזי בחיי היום יום שלנו, ומנעולים דיגיטליים הפכו לחלק חשוב ממערכות האבטחה הללו. ישנם סוגים רבים של טכנולוגיות הזמינות לאבטחת מקומנו, כמו מערכות אבטחה מבוססות PIR, מערכת אבטחה מבוססת RFID, אזעקות אבטחה בלייזר, מערכות ביו-מטריצות וכו '.
בנינו בעבר נעילה דיגיטלית עם סיסמה באמצעות Arduino ובאמצעות 8051, כאן אנו הולכים לבנות את המנעול הדיגיטלי הזה באמצעות Raspberry Pi עם סיסמה מוגדרת על ידי המשתמש. לאחר הגדרת הסיסמה, המשתמש יכול לגשת לדלת רק באמצעות סיסמה נכונה.
אם אינך מכיר את Raspberry Pi, יצרנו סדרת מדריכים ללמוד Raspberry Pi, עם ממשק עם כל הרכיבים הבסיסיים וכמה פרויקטים פשוטים מלכתחילה, עשה לבדוק.
רכיבים בשימוש:
- פטל פי (עם כרטיס SD אתחול)
- מודול לוח המקשים
- זַמזָם
- LCD בגודל 16x2
- סיר 10k
- חבילת נגד 10k (משיכה)
- לד
- נגד 1k
- לוח לחם
- עגלת CD / DVD כשער
- הספק 5 וולט
- נהג מנוע L293D
- סוללה 12 וולט
- חוטי חיבור
חיבור לוח מקשים 4x4 עם פטל פטל באמצעות ריבוב:
במעגל זה השתמשנו בטכניקת ריבוב כדי לממשק את לוח המקשים להזנת הסיסמה במערכת. כאן אנו משתמשים בלוח מקשים מרובי-4X4 עם 16 מקשים. בדרך כלל אם אנו רוצים להשתמש ב -16 מקשים אז אנו זקוקים ל -16 פינים לחיבור לארדואינו אך בטכניקת ריבוב אנו זקוקים ל 8 פינים בלבד לצורך ממשק 16 מקשים. כך שזו דרך חכמה לממשק מודול לוח מקשים. למידע נוסף על טכניקת ריבוב ועבודה במנעול דיגיטלי זה באמצעות 8051.
טכניקת ריבוב היא דרך יעילה מאוד להפחית את מספר הפינים המשמשים את המיקרו-בקר לצורך קלט או סיסמה או מספרים. בעיקרון משתמשים בטכניקה זו בשתי דרכים - האחת היא סריקת שורה והשנייה סריקת עמודות. אם אנו משתמשים בספריית לוח המקשים (#include
אך כאן, בפרויקט זה, יישמנו דרך קצרה לקידוד לאותה לוח מקשים, ללא שימוש בספריית המקשים. אנא עיין בסעיף התכנות להלן.
תיאור המעגל:
המעגל של נעילת הדלת הדיגיטלית של פטל זה פשוט מאוד המכיל פטל פי 3, מודול לוח מקשים, זמזם, עגלה DVD / CD כשער ו- LCD. כאן Raspberry Pi שולט בתהליך השלם כמו לקיחת מודול לוח מקשים בטופס סיסמה, השוואת סיסמאות, נהיגת זמזם, פתיחה / סגירה של השער ושליחת מצב לתצוגת LCD. לוח המקשים משמש להזנת סיסמה. זמזם משמש לאינדיקציות ומונע על ידי טרנזיסטור NPN מובנה. LCD משמש להצגת סטטוס או הודעות עליו.
סיכות העמודה של מודול המקשים מחוברות ישירות לסיכת GPIO 22, 23, 24, 25 וסיכות השורה מחוברות ל 21, 14, 13, 12 של סיכות ה- wringPi של Raspberry Pi. LCD 16x2 מחובר עם Pi פטל במצב 4 סיביות. סיכת הבקרה של ה- LCD RS, RW ו- En מחוברים ישירות לסיכת GPIO 11, GND ו- 10. סיכות נתונים D4-D7 מחוברות לסיכות GPIO 6, 15, 4 ו- 1. זמזם אחד מחובר בסיכה GPIO 8. ומנהל התקן מנוע L293D מחובר ב- GPIO pin 28 ו- 29 של Raspberry Pi. סוללת 12 וולט מחובר ב פיני 8 של L293D ביחס לקרקע.
הסבר עבודה:
העבודה של פרויקט זה פשוטה. כאשר המשתמש מריץ את הקוד ב- Raspberry Pi, LCD מציג הודעת ברכה כלשהי ואחריו מופיע "A- קלט סיסמה" ובשורה השנייה B- שנה סיסמה ". כעת המשתמש יכול לבחור את בחירתם על ידי לחיצה על A ו- B בלוח המקשים.
כעת, אם המשתמש רוצה לפתוח את השער, עליו ללחוץ על 'A' בלוח המקשים ואז המערכת תבקש סיסמה. סיסמת ברירת המחדל היא "1234". כעת המשתמש צריך להזין את הסיסמה ולאחר שמערכת זו תבדוק את הסיסמה, בין אם היא חוקית ובין אם לא:
1. אם המשתמש מזין סיסמה נכונה אז המערכת תפתח את השער.
2. אם המשתמש מזין סיסמה שגויה המערכת תשלח פקודה לזמזם כדי לצפצף ומראה "גישה נדחתה" על גבי ה- LCD.
עכשיו נניח שהמשתמש רוצה לשנות את הסיסמה ואז הוא / היא צריכים ללחוץ על 'B' בלוח המקשים ואז המשתמש יתבקש "סיסמה נוכחית" או "סיסמה נוכחית". כעת המשתמש צריך להזין את הסיסמה הנוכחית, ואז המערכת תבדוק את נכונותה ותבצע אחת מהמשימות הנתונות.
1. אם המשתמש מזין את הסיסמה הנכונה, המערכת תבקש "סיסמה חדשה" וכעת המשתמש יכול לשנות את הסיסמה על ידי הזנת סיסמה חדשה.
2. ואם המשתמש מזין את הסיסמה הלא נכונה, המערכת תניע את הבאזר ותראה "סיסמה שגויה: על גבי LCD.
כעת המשתמש צריך לחזור על כל התהליך שוב כדי לשנות סיסמה.
ביסודו של דבר, פתיחה וסגירה של השער אינן אלא לסובב את השעון המוטורי נגד כיוון השעון כדי לפתוח ולסגור את הדלת. לפרויקט קטן אתה יכול פשוט להוסיף מנוע DC כדי לפתוח ולסגור את הדלת. אנו יכולים גם להשתמש בסרוו או במנוע צעד, אך עלינו לשנות את הקוד בהתאם.
יתר על כן תוכלו להשתמש במנעול דלתות אלקטרוני תקין (זמין בקלות באינטרנט) במקום עגלת התקליטורים. יש לו מגנט אלקטרו השומר על הדלת נעולה כשאין זרם שעובר דרך המנעול (מעגל פתוח), וכאשר זרם כלשהו עובר דרכה, המנעול נעול וניתן לפתוח את הדלת. הקוד ישתנה בהתאם, בדוק גם סקירת פרויקט משותפת זו: Arduino RFID Lock Lock
הסבר על תכנות:
תכנות דומה הרבה לארדואינו. פונקציית Arduino משתמשת בשיעורים אך כאן עשינו קוד זה, באמצעות תכנות c, ללא שיעורים. התקנו גם ספריית wiringPi עבור GPIO.
עכשיו קודם כל עלינו לכלול ספריות נדרשות ואז להגדיר סיכות עבור LCD, זמזם, LED ומנוע.
#לִכלוֹל
אחרי זה מגדירים סיכות לשורה ועמודות של לוח המקשים ומגדירים מערך לאחסון מספרי סיסמאות ומקלדת.
מעבר צ'אר; char pass1 = {'1', '2', '3', '4'}; int n = 0; שורת חרוזים = {21, 14, 13, 12}; char col = {22, 23, 24, 25}; char num = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
אחריו כתבנו כמה פונקציות להנעת LCD:
פונקציה חלל lcdcmd משמשת לשליחת פקודה ל- LCD ופונקציית כתיבת חלל משמשת לשליחת נתונים ל- LCD.
פונקציית הדפסה ריק משמשת לשליחת מחרוזת ל- LCD.
בטל הדפסה (char * str) {בזמן (* str) {כתוב (* str); str ++; }}
פונקציית החלל ריק משמש הסמן להגדרת מיקום הסמן ב- LCD.
void setCursor (int x, int y) {int set = 0; אם (y == 0) set = 128 + x; אם (y == 1) set = 192 + x; lcdcmd (סט); }
פונקציה void clear () משמשת לניקוי LCD ו- Buid Buzzer () משמש לצפצוף על הבאזר.
פונקציה void gate_open (), void gate_stop () ו- void gate_close () משמשים לנהיגת השער (עגלת CD)
חלל gate_open () {digitalWrite (m1, LOW); digitalWrite (m2, HIGH); עיכוב (2000); } בטל gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LOW); עיכוב (2000); } בטל gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, LOW); עיכוב (2000); }
פונקציה נתונה משמשת לאתחול LCD במצב 4 סיביות.
החלל ריק (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
בהתחשב מקשי חלל () פונקציה משמשת ממשק מודול מקשה עם הפטל Pi עם "שיטה קצרה".
לוח מקשים ריק () {int i, j; int x = 0, k = 0; עיכוב (2000); ואילו (k <4) {עבור (i = 0; i <4; i ++) {digitalWrite (col, LOW); עבור (j = 0; j <4; j ++) {if (digitalRead (שורה) == 0) {setCursor (x, 1);…………………
בדוק את כל הפונקציות בקוד המלא שלמטה, הקוד קל ומובן מאליו.