תוכן עניינים:
וִידֵאוֹ: ארנק אלקטרוני: 3 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
הערה: יש לי כעת הוראות המציעות קוד Arduino עבור RC522 ו- PN532.
בפוסט הקודם פירטתי את היסודות לתקשורת עם מודולי RFID MFRC522 ו- PN532 לקריאה/כתיבה של נתונים מתגי Mifare Classic 1k. בפוסט הזה אני לוקח את זה צעד אחד קדימה ומראה כיצד להשתמש במודולים אלה כדי ליצור ארנק אלקטרוני מתוך התגים. כמו בפוסט הקודם, זה מוצג כהטמעה בסיסית אך אמור להוות בסיס למגוון יישומים הדורשים פונקציות להגדלה/הפחתה או מדד.
שלב 1: שלמות הנתונים
בארנק אלקטרוני תמיד יש חשש שמישהו יכול להוסיף זיכויים מבלי לשלם עבורם. קיים גם חשש שהזיכויים על התג עלולים להיפגם בטעות במהלך כתיבת נתונים. גישות לנתונים מחייבות שימוש במפתח התג ולכן יש צורך לשנות את מפתח ברירת המחדל בעת האתחול הראשון של התג. יש מאמרים ברשת שמדברים על איך לפרוץ תג גם אם אינך יודע את המפתח אך הטכניקה אינה טריוויאלית. לא הייתי ממליץ להשתמש בתגים אלה עבור חשבון הבנק שלך, אך הם מספיק טובים להרבה יישומים פחות מסוכנים.
ההסתברות לשחיתות נתונים קטנה יחסית אך התוכנה אמורה להיות מסוגלת לפחות לטפל במקרה הבסיסי. תהליך זה כולל שני שלבים כאשר השלב הראשון הוא פשוט לזהות את השחיתות. בפרויקט זה המטופל על ידי אחסון הן ערך האשראי והן השלמת 1 של ערך האשראי. זה מאפשר השוואה פשוטה של הערכים. השלב השני הוא אחסון גרסת גיבוי של ערך האשראי ושל השלמתו. זה מאפשר פעולת שחזור אם מערכת הזיכויים הראשונה נפגמת. אם שתי הסטים פגומים אז התוכנה מנסה לאתחל את התג מחדש וכתוצאה מכך אובדן כל הזיכויים.
שלב 2: חומרה
חיבורי החומרה מוצגים בתרשים למעלה. זהו אותו התקנה כמו ההודעה הקודמת עם תוספת של שני מתגים ונגד משיכה. מתג אחד אינו דורש נגד משיכה מכיוון שהוא נמצא על קלט PIC בעל יכולת משיכה חלשה מובנית. בפועל שני המתגים יוסתרו מכיוון שהם משמשים להוספת נקודות זכות ולאתחול תג. מתג האתחול הוא אופציונלי (לביצוע אפס אשראי ידני) מכיוון שהתוכנה יכולה לזהות ולאתח תג חדש בעצמה. ניתן להשתמש בסיכות מגשר במקום מתגים.
שלב 3: תוכנה
תוספות ללולאה הראשית בתוכנה בוצעו על מנת לאפשר קריאה של שני המתגים ולאיתור מצב הדורש אתחול תגים. כפי שצוין בסעיף החומרה, ניתן לשלוט באופן ידני באתחול תגים באמצעות מתג. התוכנה יכולה גם לפקוד על אתחול תגים בשני מקרים אחרים. ראשית, אם הוא מזהה תג או מגזר נתונים חדש ושני, אם שתי קבוצות נתוני האשראי פגומות.
אימות תגים דורש שימוש ב"מפתח A "לתחום נתוני היעד. מפתח ברירת המחדל של תגי Mifare Classic 1k הוא "FF FF FF FF FF FF" אך יש לשנותו עבור היישום שלך. התוכנה מספקת הגדרות הן למפתח ברירת המחדל והן למפתח חדש ("My_Key"). פשוט חבר את הערכים שאתה רוצה לתוך "My_Key". התוכנה תמיד מנסה לאמת את התג הראשון באמצעות "My_Key". אם זה נכשל, השגרה לאתחול התג נקראת ומפתח ברירת המחדל משמש לאימות. שגרת האתחול משנה את המפתח ל- "My_Key" ומגדירה את הזיכויים לאפס. אם יש לך תג עם מפתח שאינו ברירת מחדל ואינך יודע מהו, לא ניתן לאמת את התג. אם זה קורה, ייתכן שתרצה לבדוק סקטורי נתונים אחרים באמצעות מקש ברירת המחדל כדי לראות אם אחד זמין. בלוק הטריילר, בלוק הנתונים וגיבוי מוגדרים כולם בתחילת רישום התוכנה, כך שתוכל לשנות אותם בקלות.
פורמט הנתונים המאוחסנים בתג עבור יישום זה משתמש במספרים חיוביים בלבד (אין אפשרות לגירעונות) והערכים מאוחסנים כארבעה בתים של BCD ארוז (בינארי מקודד עשרוני). זה מאפשר טווח אשראי בין 0 ל 99, 999, 999 (שתי ספרות לבייט). ערך האשראי והשלמת ה -1 שלו משתמשים רק ב- 8 מתוך 16 בתים בבלוק נתונים יחיד והשאר מרופדים באפסים. יש מקום באותו בלוק נתונים לעותק הגיבוי אך החלטתי שיהיה בטוח יותר לשים את הגיבוי בבלוק נתונים נפרד. בלוק הגיבוי נמצא באותו סקטור כמו בלוק הנתונים ולכן אין צורך באימות נפרד. כדי להיות בטוח עוד יותר, ייתכן שתשקול לשים את הגיבוי במגזר נתונים אחר, אך יהיה צורך בשלב אימות נפרד כדי לגשת לנתונים אלה.
כאשר מתבצעת קריאה של הזיכויים נקרא גם הערך המשלים ואז השניים מושווים זה לזה. אם יש חוסר התאמה, אז ערכת הגיבוי של ערך/השלמה נקראת ומשווה. אם הם תואמים, ההנחה היא שהגיבוי נכון והוא משמש לתיקון הנתונים הפגומים. אם עותקי הגיבוי אינם תואמים התגית נחשבת גרועה ונעשה לאתחל אותה מחדש.
ערכי התוספת וההקטנה מוגדרים בסמוך לחזית הרישום וצפויים להיות ב BCD ארוז. השגרה שעושה את ההגדלה וההורדה עושה זאת ביעילות במספר 32 סיביות. המתמטיקה היא פשוטה מאוד אך דורשת שימוש בשגרה כדי להתאים את התוצאות לנשיאות בתוך כל בית BCD ארוז ומבית אחד למשנהו. זה מושג על ידי שימוש במאקרו DAA (Add Decimal Addition) ו- DAS (Decimal Adjust Subtraction). פקודות מאקרו אלה מוודאות שכל ספרת BCD של 4 סיביות נשארת תמיד בטווח של 0-9.
בנוסף להודעות התצוגה בפוסט הקודם, יישום זה מכיל הודעות להרבה מהשלבים הנוספים - במיוחד אם יש שגיאות נתונים ו/או צריך לתקן או לאתחל את התג. הזיכויים מוצגים גם לפני ואחרי שלב תוספת/הפחתה, כך שתוכל לראות את הערכים משתנים.
זהו הפוסט הזה. בדוק את פרויקטי האלקטרוניקה האחרים שלי בכתובת: www.boomerrules.wordpress.com
מוּמלָץ:
RFID הגנה על ארנק Tyvek: 7 שלבים
RFID הגנה על ארנק Tyvek: אני משתמש בסוג זה (מותג) של ארנק במשך כ 6 שנים. כשמצאתי את הארנק המסוים הזה, החלטתי להוסיף לו מיגון RFID בעזרת סרט אלומיניום. סרט זה משמש לאיטום צינורות חימום מכיוון שהוא עמיד יותר מבד מבוסס ושאלות
צילום דואר אלקטרוני ודואר אלקטרוני בתנועה: 6 שלבים
לכידת תמונות ודוא"ל באמצעות Motion Triggered: אנו בונים על הפרויקטים הקודמים של ESP32-CAM ובונים מערכת לכידת תמונות המופעלת באמצעות תנועה ששולחת גם הודעת דוא"ל עם התמונה כקובץ מצורף. מבנה זה משתמש בלוח ESP32-CAM יחד עם מודול חיישן PIR המבוסס על AM312
ארנק IoT (ארנק חכם עם Firebeetle ESP32, Arduino IDE וגיליון אלקטרוני של Google): 13 שלבים (עם תמונות)
ארנק IoT (ארנק חכם עם Firebeetle ESP32, Arduino IDE וגיליון אלקטרוני של Google): פרס ראשון בתחרות בגודל כיס Instructables!: אם השקעת קצת כסף במטבעות קריפטוגרפיים, אתה בטח כבר יודע שהם מאוד תנודתיים. הם משתנים בין לילה ואתה אף פעם לא יודע הרבה כסף 'אמיתי' שעדיין יש לך בוול שלך
ארנק פאלק מילניום DIY: 26 שלבים (עם תמונות)
ארנק פאלק DIY של מילניום: כמו הרבה אנשים אחרים בגלקסיה, ביליתי חלק ניכר משנת 2015 ברעד בציפייה לקראת צאת הסרט החדש הראשון של מלחמת הכוכבים, The Force Awakens. כמובן שניסיתי לאזן את ההתרגשות שלי עם מנה בריאה של ספקנות, מחדש
הכנת ארנק חומרה קריפטו משלי של Trezor: 5 שלבים (עם תמונות)
הכנת ארנק חומרה קריפטו משלי של Trezor: בפרויקט זה אני מכין ארנק חומרה קריפטוגרפי משלי של Trezor, כולל מארז. זה אפשרי מכיוון שטרזור הוא קוד פתוח ולכן השתמשתי בקבצים שהם מספקים ב- github שלהם כדי לבנות מכשיר משלי בפחות מ -40 $. היו כמה