בכך פרויקט מערכת נוכחות RFID מבוססת, נסביר לכם איך אנחנו יכולים לסמוך נוכחות אוטומטית באמצעות כרטיסי RFID. טכנולוגיית RFID (זיהוי וגילוי תדרי רדיו) משמשת בדרך כלל בבתי ספר, מכללות, משרדים ותחנות למטרות שונות כדי לעקוב באופן אוטומטי אחר מעקב אחר אנשים. כאן נספור את הנוכחות של אדם מורשה באמצעות RFID.
אנו יכולים לחלק את מערכת הנוכחות השלמה לחלקים שונים: קטע קוראים, קטע בקרה, קטע נהג וקטע תצוגה. התפקיד של כל קטע מוצג בתרשים הבלוקים להלן:
מדור הקוראים
חלק זה מכיל RFID, שהוא מכשיר אלקטרוניקה בעל שני חלקים - האחד הוא RFID Reader והשני הוא RFID תג או כרטיס. כאשר אנו מציבים תג RFID קרוב לקורא ה- RFID, הוא קורא את נתוני התגים באופן סדרתי. תג RFID כולל קוד תווים בן 12 ספרות בסליל. RFID זה עובד בקצב שידור של 9600 bps. RFID משתמש באלקטרומגנט כדי להעביר נתונים מקורא לתג או לתג לקורא.
מדור בקרה:
מיקרו-בקר 8051 משמש לבקרת התהליך המלא של פרויקט זה. כאן באמצעות 8051 אנו מקבלים נתוני RFID ושולחים סטטוס או הודעות ל LCD.
קטע תצוגה:
בפרויקט זה נעשה שימוש ב- LCD בגודל 16x2 להצגת הודעות עליו.
מדור נהג:
בחלק זה יש נהג מנוע L293D לפתיחת שער וזמזם עם טרנזיסטור NPN BC547 לאינדיקציות.
עובד
כאשר אדם שם את תג ה- RFID שלו לקורא ה- RFID אז ה- RFID קורא את נתוני התג ושולח אותם למיקרו-בקר 8051 ואז המיקרו-בקר משווה נתונים אלה עם נתונים או מידע מוגדרים. אם נתונים מותאמים לנתונים מוגדרים, אז המיקרו-בקר מגדיל את הנוכחות על ידי אחד מאנשי התג, ואם ההתאמה לא מתרחשת, המיקרו-בקר מראה כרטיס לא חוקי על גבי ה- LCD והמזמזם מצפצף ברציפות במשך זמן מה.
תרשים מעגלים עבור פרויקט מערכת נוכחות בבסיס RFID מוצג לעיל. במעגל, LCD מחובר במצב של ארבע סיביות עם מיקרו-בקר 8051. פינים של RS, RW ו- EN של LCD מחוברים ישירות במספר PORT 1 פינים P1.0, P1.1 ו- P1.2. סיכות D4, D5, D6 ו- D7 של LCD מחוברות ישירות בסיכה P1.4, P1.5, P1.6 ו- P1.7 של יציאה 1. מנהל התקן המנוע מחובר במספר PORT P2.4 ו- P2.5. וזמזם מחובר ב- P2.6 ב- PORT2.
הסבר לתוכנית
כדי לתכנת למערכת עמידה מבוססת RFID, ראשית עלינו לכלול קבצי כותרת ומגדירים סיכת קלט ופלט ומשתנים.
#לִכלוֹל
אחרי זה עלינו ליצור פונקציה לעיכוב.
עיכוב חלל (int itime) {int i, j; עבור (i = 0; i
ואז אנו מבצעים פונקציה כלשהי עבור LCD ומאתחלים את הפונקציה של LCD,
בטל lcd_init (בטל) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x0e); lcdcmd (0x01); }
הנה לנו פונקציה כלשהי בה השתמשנו בתוכנית שלנו. בזה הגדרנו קצב שידור 9600bps בתדר קריסטל 11.0592MHz. אנו עוקבים אחר רישום SBUF לקבלת נתונים.
בטל uart_init () {TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; } char rxdata () {while (! RI); ch = SBUF; RI = 0; החזר ch; }
אחרי זה בתוכנית הראשית, ביצענו אתחול ל- lcd ו- UART ואז אנו קוראים את הפלט של RFID כאשר כל אחד מתג עליו. אנו שומרים מחרוזת זו במערך ואז מתאימים לנתוני מערך שהוגדרו מראש.
lcdcmd (1); lcdstring ("מקום כרטיסך:"); lcdcmd (0xc0); i = 0; עבור (i = 0; i <12; i ++) rfid = rxdata (); rfid = '\ 0'; lcdcmd (1);
אם מתרחשת התאמה, הבקר מגדיל את הנוכחות באחת. זמזום צפצוף אחר פועל ברציפות ו- LCD מראה כרטיס לא חוקי.
אם (strncmp (rfid, "160066A5EC39", 12) == 0) {count1 ++; lcdcmd (1); lcdstring ("נוכחות"); lcdcmd (0xc0); lcdstring ("רשום"); עיכוב (200); lcdcmd (1); lcdstring ("סטודנט 1"); lcdcmd (0xc0); lcdstring ("מס 'מס':"); sprintf (תוצאה, "% d", count1); מיתרי lcd (תוצאה);
פריסת PCB
להלן פריסת ה- PCB עבור מערכת נוכחות מבוססת RFID: