תוכן עניינים:

נעילת דלתות RFID Arduino: 5 שלבים (עם תמונות)
נעילת דלתות RFID Arduino: 5 שלבים (עם תמונות)

וִידֵאוֹ: נעילת דלתות RFID Arduino: 5 שלבים (עם תמונות)

וִידֵאוֹ: נעילת דלתות RFID Arduino: 5 שלבים (עם תמונות)
וִידֵאוֹ: arduino apriporta con rfid + NeXT implant !! 2024, יולי
Anonim
נעילת דלת RFID של Arduino
נעילת דלת RFID של Arduino
נעילת דלת RFID של Arduino
נעילת דלת RFID של Arduino
נעילת דלת RFID של Arduino
נעילת דלת RFID של Arduino
נעילת דלת RFID של Arduino
נעילת דלת RFID של Arduino

*** עודכן 8/9/2010 *** רציתי לעשות דרך קלה ומאובטחת להיכנס למוסך שלי. RFID הייתה הדרך הטובה ביותר לפתוח את הדלת שלי, אפילו בידיים מלאות אני יכול לפתוח את הדלת ולדחוף אותה לפתוח! בניתי מעגל פשוט עם שבב ארדואינו בסיסי ATMega 168 וקורא RFID ID-20 לשליטה במנעול דלת אלקטרוני. המעגל מורכב משלושה חלקים נפרדים, קורא לקריאת תגי RFID, בקר לקבל נתונים מהקורא ולשלוט על הפלט של ה- RGB LED ומנעול הדלת החשמלית. מנעול הדלת מותקן לראשונה בדלת ונבדק עם סוללת 9V כדי להבטיח התקנה נכונה. ברוב המקרים אתה רוצה מעגל פתוח בדרך כלל על מנעול הדלת, או נכשל מאובטח. המשמעות היא שהדלת נשארת נעולה כשאין זרם עובר דרכה. כאשר 12VDC מועבר דרך האלקטרומגנט במנעול הדלת, צלחת במנעול מפנה את מקומה ומאפשרת לדחוף את הדלת בחופשיות. הקורא ממוקם בצד החיצוני של הדלת ונפרד מהבקר מבפנים, כך שאף אחד לא יכול לעקוף את האבטחה על ידי שבירת הקורא וניסיון לקצר את הקורא. הבקר מקבל נתונים סדרתיים מהקורא ושולט על הלוג RGB ומנעול הדלת. במקרה זה שמתי את שניהם על לוחות לחם נפרדים לבדיקה. להלן סקירה כללית של המערכת בפעולה המשך לקרוא כדי לראות כיצד לבנות אחת לעצמך! ** עדכון ** כל העיצובים של הקוד, התרשימים וה- PCB נבדקו ושופצו. כולם מתפרסמים כאן החל מה- 8/9/2010 סרטון מעודכן של המערכת הסופית המותקנת ועובדת.

שלב 1: יש צורך בחלקים

דרושים חלקים
דרושים חלקים

להלן רשימת חלקים וקישורים ל- SparkFun.com בהם קניתי אותם. זוהי קבוצת החלקים הבסיסית שאתה צריך לבנות וארדואינו ומעגל לקריאת תגי RFID לתוך הארדואינו. אני מניח שכבר יש לך לוח לחם, ספק כוח וחוטי חיבור.

חומר ארדואינו

ATmega168 עם מטען אתחול Arduino 4.95 $

קריסטל 16MHz $ 1.50

קבלים קרמיקה 22pF $ 0.25 (x2)

התנגדות 10k אוהם 1/6 ואט PTH $ 0.25

מתג כפתור מיני 0.35 $

תפוקת LED משולשת RGB - מפוזר 1.95 $

חומר RFID

לאחד מאלה, ל -20 יש טווח טוב יותר, 12 קטן יותר מזהה קורא RFID-12 $ 29.95 RFID Reader ID-20 $ 34.95

פריצת קורא RFID 0.95 $

כותרות פרידה - ישר $ 2.50

תג RFID - 125kHz $ 1.95

אַחֵר

טרנזיסטור TIP31A (צריף רדיו/חנות אלקטרוניקה מקומית 1.50 $)

מנעול הדלת הוא מ- ebay. כשל בדלת בקרת כניסה מאובטחת Electric Strike v5 ללא $ 17.50 (kawamall, מפרץ)

שלב 2: בנה את בקר Arduino

בנה את בקר Arduino
בנה את בקר Arduino
בנה את בקר Arduino
בנה את בקר Arduino
בנה את בקר Arduino
בנה את בקר Arduino

השלב הראשון לבניית מנעול דלת RFID עם ארדואינו בסיסי הוא ללוח ארדואינו בסיסי לעבודה. רוב שבבי ה- ATMega 168 המונפצים מראש של Arduino מגיעים עם תוכנית ברירת המחדל של המהבהב המותקנת מראש. חבר נורית ליציאה דיגיטלית 13 וודא שהכל פועל.

חלק החומרה של קורא RFID זה יהיה פשוט מדי אם נשתמש בארדואינו רגיל עם מתכנת USB מובנה. מכיוון שאני מתכוון להכניס את זה לקיר ולא לגעת בו שוב אני לא רוצה להשתמש בלוח ארדואינו גדול של 30 $ כשאני יכול לקנות ATMega 168 $ 5 ולהכין PCB מותאם אישית בהרבה.

מכיוון שבחרתי ליצור מעגל ארדואינו בסיסי אני צריך מתכנת חיצוני USB-> סידורי FDIT. כללתי סכמות של Eagle של הבקר עם ספק כוח הבנוי מווסת מתח 7805. בבדיקה השתמשתי באספקת לוח לוח.

כדי להפעיל ארדואינו כל מה שאתה באמת צריך הוא ה- ATMega168 עם תוכנת הארדואינו שהבהבה עליו, 2 קבלים 22pF, קריסטל 16mhz, נגד 10k אוהם, כפתור לחיצה ולוח לחם. החיבור לכך ידוע אך צירפתי את כל סכמטי המעגל.

הארדואינו יפעיל 4 יציאות, אחת כל אחת עבור נוריות אדומות/ירוקות/כחולות, ואחת כדי להפעיל את TIP31A לשלוח 12 וולט למנעול הדלת. הארדואינו מקבל נתונים סדרתיים בקו ה- Rx שלו מקורא ה- RFID ID-20.

שלב 3: בנה את קורא ה- RFID

בנה את קורא ה- RFID
בנה את קורא ה- RFID
בנה את קורא ה- RFID
בנה את קורא ה- RFID
בנה את קורא ה- RFID
בנה את קורא ה- RFID

כעת, לאחר שלחם הארדואינו שלך לוח ועובד, אתה יכול להרכיב את חלק קורא ה- RFID במעגל שיכיל את מזהה 10 או ID-20 ו- RGB LED כדי לציין את מצב המעגל. זכור כי הקורא יהיה בחוץ ונפרד מהבקר בפנים כך שמישהו לא יוכל לפרוץ בקלות.

כדי לבנות זאת, אנו שולחים 5V/הקרקע מלוח הלחם הראשי ללוח לחם משני עליו אנו בונים את הקורא. שלח גם מעל 3 חוטים משלושה מסיכות הפלט של הארדואינו לשליטה ב- LED RGB, אחד לכל צבע. עוד חוט אחד, בראון בתמונות, יהווה חיבור סדרתי עבור מזהה 20 שידבר עם הקלט הסידורי Rx של הארדואינו. זהו מעגל פשוט מאוד לחיבור. נוריות LED מקבלים נגדים וכמה נקודות במזהה 20 קשורות לקרקע/5 וולט כדי לקבוע את המצב הנכון.

כדי להקל על הלוח, ID-10/ID-20 Sparkfun מוכר לוח פריצה המאפשר לך לצרף כותרות סיכות ארוכות יותר המרווחות כך שיתאימו ללוח לחם. חלק זה וסיכות הסיכה ורשום ברשימת החלקים.

התרשים צריך להיות קדימה וקל לעקוב.

שלב 4: תכנית

הגיע הזמן לתכנת את הארדואינו שלך. זה יכול להיות קצת מסובך באמצעות ארדואינו בסיסי, ייתכן שיהיה עליך ללחוץ על כפתור האיפוס מספר פעמים לפני ובמהלך החלק הראשון של ההעלאה. דבר חשוב מאוד לזכור, תקבל שגיאת העלאה אם לא תנתק זמנית את הקו הסידורי ID-20 לקו ה- Rx של הארדואינו. ל- ATMega168 יש רק קלט Rx אחד והוא משתמש בו להעלאת קוד כדי לדבר עם המתכנת. נתק את מזהה 20 בזמן התכנות ולאחר מכן חבר אותו שוב לאחר שתסיים. השתמשתי במתכנת FTDI המאפשר לך לתכנת את הארדואינו באמצעות USB עם 4 חוטים בלבד. סכמטי הבקר מציג חיבור לכותרת סיכה המאפשר לך לחבר אחד ישירות. Sparkfun מוכרת גם את החלק הזה, אבל אולי כבר יש אותו לרבים.

אתה יכול להעלות את הקוד שלי בקלות לארדואינו שלך ולעולם לא להסתכל אחורה אבל מה הכיף בזה? תן לי להסביר את הרעיון הבסיסי של איך זה עובד.

קודם כל, לא רציתי כפתורים/מתגים/חיצוניים חיצוניים ולא רציתי לתכנת מחדש את הארדואינו בכל פעם שרציתי להוסיף כרטיס חדש. לכן רציתי להשתמש רק ב- RFID לשליטה על פעולת המעגל כמו גם שליטה על מנעול הדלת.

התוכנית מדליקה את הנורית הכחולה כדי לציין שהיא מוכנה לקרוא כרטיס חדש. כאשר קוראים את הכרטיס הוא מחליט אם הוא כרטיס תקף או לא על ידי השוואת מה שהוא קרא לרשימת כרטיסים תקפים. אם המשתמש תקף, הארדואינו מכבה את הנורית הכחולה ומדליק את הנורית הירוקה למשך 5 שניות. הוא גם מדליק עוד פלט גבוה למשך 5 שניות. פלט זה מחובר לטרנזיסטור TIP31A ומאפשר לארדואינו הזעיר לשלוט על מנעול דלת 12v 300mA גדול בהרבה מבלי להיפגע. לאחר 5 שניות נעילת הדלת ננעלת מחדש והנורית חוזרת לכחול כדי לחכות לקריאת כרטיס נוסף. אם הכרטיס אינו חוקי הנורית מתחלפת לאדום למשך מספר שניות וחזרה לכחול כדי לחכות לכרטיס אחר.

חשוב שנעילת הדלת עדיין תעבוד גם אם הארדואינו מאבד חשמל בן לילה או מתאפס. לכן כל מזהי הכרטיס התקפים מאוחסנים בזיכרון EEPROM. ל- ATMega168 יש 512 בתים של זיכרון EEPROM. לכל כרטיס RFID יש מספר סידורי של 5 הקס וסכום בדיקת 1 הקס בתים שנוכל להשתמש בו כדי לוודא שלא היו שגיאות בשידור בין מזהה 20 לבין הארדואינו.

כרטיסים תקפים מאוחסנים ב- EEPROM באמצעות הבייט הראשון כמונה. לדוגמה, אם יש 3 כרטיסים תקפים המאוחסנים הבייט הראשון ב- EEPROM יהיה 3. EEPROM.read (0); = 3. בידיעה זו, והעובדה שכל מזהה באורך של 5 בתים אנו יודעים כי 1-5 הוא כרטיס אחד, 6-10 הוא כרטיס 2 ו-11-15 הוא כרטיס 3. אנו יכולים ליצור לולאה שמסתכלת דרך ה- EEPROM 5 בתים בכל פעם ומנסה למצוא את הכרטיס שקרא אותו הקורא.

אבל איך נוכל להוסיף כרטיסים חדשים ל- EEPROM לאחר התקנת המעגל ?? קראתי באחד מכרטיסי ה- RFID שיש לי וקודדתי אותו ככרטיס ה- RFID הראשי. כך שגם אם כל ה- EEPROM יימחק, כרטיס המאסטר עדיין יפעל. בכל פעם שקוראים כרטיס, הוא בודק קודם כל אם הוא כרטיס המאסטר, אם לא, אז הוא ממשיך לראות אם הוא כרטיס תקף או לא. אם הכרטיס הוא כרטיס המאסטר יש לנו את הארדואינו להיכנס ל"מצב תכנות "שבו הוא מהבהב RGB ומחכה לקריאת תג חוקי נוסף. התגית הבאה שנקראת מתווספת למקום הפנוי הבא ב- EEPROM והמודד מצטבר 1 אם הכרטיס אינו קיים עדיין בזיכרון EEPROM. לאחר מכן הקורא חוזר למצב רגיל ומחכה לקריאת כרטיס חדש.

נכון לעכשיו לא תיכננתי דרך למחוק כרטיס מכיוון שהסיבות למחיקת כרטיס הן ככל הנראה שהוא אבד או נגנב. מכיוון שסביר להניח שזה ישמש עם 1-10 אנשים הדבר הקל ביותר היה לתכנת קשה כרטיס מחיקת מאסטר שימחק את כל הקלפים מה- EEPROM ואז יוסיף את כולם מחדש, וזה לוקח רק כמה שניות. הוספתי קוד כדי למחוק את ה- EEPROM אך עדיין לא יישמתי תכונה זו..

הקוד מצורף בקובץ טקסט יחד עם עותק של רשימת החלקים.

שלב 5: הרחב

זה רק חלק מהדברים המגניבים שאתה יכול לעשות עם RFID. אתה יכול להרחיב את זה הרבה יותר עם פלט LCD, רישום של מי נכנס ומתי, חיבור רשת/טוויטר וכו '. אני מתכנן ליצור גרסת PCB מוגמרת של המעגל הזה. מעולם לא יצרתי PCB אז אני עדיין עובד על העיצוב והפריסה של החלקים. ברגע שאשלים אותם אפרסם גם אותם. אני ממליץ לכל אחד לקחת את הקוד שכתבתי ולשנות אותו לעשות דברים מגניבים עוד יותר!

פיינליסטית בתחרות ארדואינו

מוּמלָץ: