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

אפליקציית סופרמרקט פשוטה באמצעות RFID RC-522 ו- Arduino Mega: 6 שלבים
אפליקציית סופרמרקט פשוטה באמצעות RFID RC-522 ו- Arduino Mega: 6 שלבים

וִידֵאוֹ: אפליקציית סופרמרקט פשוטה באמצעות RFID RC-522 ו- Arduino Mega: 6 שלבים

וִידֵאוֹ: אפליקציית סופרמרקט פשוטה באמצעות RFID RC-522 ו- Arduino Mega: 6 שלבים
וִידֵאוֹ: CommPact מדריך התקנה 2024, נוֹבֶמבֶּר
Anonim
אפליקציית סופרמרקט פשוטה באמצעות RFID RC-522 ו- Arduino Mega
אפליקציית סופרמרקט פשוטה באמצעות RFID RC-522 ו- Arduino Mega

טוב לראות אתכם שוב כאן בהדרכה נוספת שלי, הנה אני עומד לעזור לכם ליצור יישום סופרמרקט פשוט באמצעות RFID RC-522 וארדואינו עם עיבוד ליצירת GUI פשוט.

הערה: אל תפעיל את הצג הטורי של Arduino בעת הפעלת קוד העיבוד מכיוון שיתקיים התנגשות ביציאות מכיוון ששניהם צריכים להשתמש באותה יציאה

אתה צריך:

  1. Arduino Mega או Arduino Uno (השתמשתי במגה)
  2. RFID-RC522
  3. 7 חוטי מגשר בין זכר לנקבה
  4. כמה תעודות זהות (אופציונלי)
  5. ספריית RFID (חובה, קישור למטה)
  6. שרת Wamp
  7. עיבוד IDE 2.2.1 (אל תשתמש יותר מזה)
  8. ספריית BezierSQLib-0.2.0 לעיבוד (קישור הורדה למטה)

לאחר מכן הורד את ספריית ה- RFID למטה והוסף אותה ל- IDE Arduino שלך על ידי לחיצה על סקיצה-> כלול ספרייה-> הוסף ספריית zip בתפריט הקבצים.

שלב 1: הגדרת Arduino ו- RFID RC-522 (חיבור פיזי)

הגדרת Arduino ו- RFID RC-522 (חיבור פיזי)
הגדרת Arduino ו- RFID RC-522 (חיבור פיזי)

פשוט חבר את הארדואינו עם RFID-RC522 כפי שמוצג בתמונה למעלה. אזהרה: אספקת 3.3V בלבד אחרת המודול יישרף

הצמד עבור אונו/ננו ומגה

מודול RC522 Uno/Nano MEGASDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ N/A N/A GND GND GND RST D9 D8 3.3V 3.3V 3.3V

שלב 2: קוד Arduino.,

העתק את הקוד להלן ולאחר מכן העלה אותו ל- Arduino שלך

/*PINOUT: מודול RC522 Uno/Nano MEGA SDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ N/AN/A GND GND GND RST D9 D8 3.3V 3.3V 3.3V*//*כלול את ספריית ה- Arduino SPI הסטנדרטית */ #include/ *כלול את ספריית ה- RFID */ #include

/* הגדר את ה- DIO המשמש לסיכות SDA (SS) ו- RST (אפס). */

#הגדר SDA_DIO 9 #הגדר RESET_DIO 8

/ * צור מופע של ספריית ה- RFID */

RFID RC522 (SDA_DIO, RESET_DIO); קורא int = 0;

הגדרת חלל ()

{Serial.begin (9600); / * הפעל את ממשק SPI */ SPI.begin (); / * אתחל את קורא ה- RFID */ RC522.init (); }

לולאת חלל ()

{ / * מונה לולאה זמני * / בייט i;

/* האם זוהה כרטיס? */

if (RC522.isCard ()) { / * אם כן אז קבל את המספר הסידורי שלו * / RC522.readCardSerial ();

/ * פלט את המספר הסידורי ל- UART */ for (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum , HEX); } Serial.print (","); Serial.print (קורא ++); Serial.println (); } עיכוב (1000); }

שלב 3: הגדרת MySQL

הגדרת MySQL
הגדרת MySQL
  1. התקן את שרת Wamp עבור MySQL והגדר אותו לאחסון נתונים (
  2. הפעל את שרת wamp פתח את קונסולת MySQL
  3. בחר מסד נתונים
  4. לאחר מכן צור את הטבלה עבור הנתונים שלך

צור טבלה rfid (מזהה int (8), int אסימון (1), שם varchar (20), סכום int (4));

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

הכנס לערכי rfid (3756178, 1, 'Pencil', 20);

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

שלב 4: הגדרת עיבוד IDE

הגדרת עיבוד IDE
הגדרת עיבוד IDE
  1. הורד והתקן את מזהה העיבוד 2.2.1
  2. חלץ את ה- ZIP הנתון לעיל ל- MyDocuments/Processing/Libraries
  3. כעת פתח את עיבוד IDE ובדוק שהספרייה מותקנת כראוי או לא כמו בתמונה למעלה
  4. לאחר מכן העתק את הקוד שלהלן לעיבוד ושמו אותו בעצמך

יבוא de.bezier.data.sql.*; ייבוא עיבוד. סדרה.*; // יבוא java.math. BigInteger;

// נוצר 2005-05-10 על ידי fjenett

// עודכן fjenett 20080605

חיבור MySQL dbconnection;

מחרוזת s = ""; int Wheight = 700; int Width = 1200; תעודת זהות ארוכה; int token; int סכום; int סה"כ = 0;

מחרוזת a = {"NULL", "NULL"};

int int = 10; // המספר 10 הוא ASCII עבור linefeed (סוף של serial.println), מאוחר יותר נחפש זאת כדי לפרק הודעות בודדות מחרוזת סידורי; // להכריז על מחרוזת חדשה בשם 'סדרתי'. מחרוזת היא רצף של תווים (סוג הנתונים המכונה "char") יציאה טורית; Curr string, prev, name; PFont f;

הגדרת חלל ()

{// גודל (רוחב, משקל); גודל (700, 500); f = createFont ("Arial", 24, true); // דוגמה זו מניחה שאתה מפעיל את שרת // mysql באופן מקומי (ב- "localhost"). // // להחליף-שם משתמש--,-סיסמא-- עם חשבון mysql שלך. // משתמש מחרוזת = "root"; מעבר מחרוזת = ""; // שם מסד הנתונים לשימוש // מסד נתונים מחרוזת = "IOT_Database"; // שם הטבלה שתיווצר טבלת מחרוזות = ""; // התחבר למסד הנתונים של השרת "localhost" dbconnection = MySQL חדש (זה, "localhost", מסד נתונים, משתמש, מעבר); port = new Serial (this, Serial.list () [0], 9600); // אתחול האובייקט על ידי הקצאת יציאה וקצב שידור (חייב להתאים לזה של Arduino) port.clear (); // פונקציה מספרייה טורית שזורקת את הקריאה הראשונה, למקרה שהתחלנו לקרוא באמצע מחרוזת מתוך Arduino serial = port.readStringUntil (סוף); // פונקציה שקוראת את המחרוזת מיציאה טורית עד להדפסה ולאחר מכן מקצה מחרוזת למשתנה המחרוזת שלנו (שנקרא 'סדרתי') serial = null; } צייר חלל () {רקע (255); textFont (f, 24); מילוי (0); טקסט ("סכום כולל:", 400, 400); טקסט (סה"כ, 585, 400); נתונים(); בעוד (port.available ()> 0) {// כל עוד יש נתונים שמגיעים מיציאה טורית, קרא אותם ושמור אותם serial = port.readStringUntil (סוף); } אם (סדרתי! = null) {prev = curr; curr = a [1]; a = פיצול (סדרתי, ','); // מערך חדש (הנקרא 'א') המאחסן ערכים לתאים נפרדים (מופרדים בפסיקים המצוינים בתוכנית Arduino שלך) אם ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("הקודם", הקודם); פוּנקצִיָה(); }}}

פונקציית חלל ()

{if (dbconnection.connect ()) {// עכשיו קראו אותו בחזרה // dbconnection.query ("SELECT * מ- rfid שבו מזהה ="+a [0]+""); while (dbconnection.next ()) {ID = dbconnection.getInt ("מזהה"); token = dbconnection.getInt ("אסימון"); סכום = dbconnection.getInt ("סכום"); } if (אסימון == 0) {println ("אישור"); textFont (f, 54); מילוי (255, 0, 0, 160); טקסט ("פריט לא ידוע זוהה", 50, 300); עיכוב (2000); } אחרת אם (אסימון == 1) {סה"כ = סה"כ+סכום; dbconnection.query ("עדכון אסימון ערכת rfid = 2 שבו מזהה ="+a [0]+""); println ("אישור"); textFont (f, 24); מילוי (255, 0, 0, 160); // טקסט ("פריט נוסף", 10, 30); עיכוב (1000); } אחרת אם (אסימון == 2) {סה"כ = סה"כ-סכום; dbconnection.query ("עדכון אסימון קבוצה rfid = 1 שבו מזהה ="+a [0]+""); println ("אישור"); textFont (f, 24); מילוי (255, 0, 0, 160); // טקסט ("פריט הוסר", 10, 30); עיכוב (1000); } אחר {} dbconnection.close (); } אחר {// החיבור נכשל! }}

נתוני ריק ()

{מיקום int = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * מ- rfid איפה אסימון = 2"); while (dbconnection.next ()) {Name = dbconnection.getString ("שם"); סכום = dbconnection.getInt ("סכום"); textFont (f, 24); מילוי (0, 0, 255, 160); טקסט (שם, 10, מיקום); מילוי (0, 0, 0, 160); טקסט (כמות, 215, מיקום); מיקום = מיקום+30; }} dbconnection.close (); }

שלב 5: ביצוע התוכנית

ביצוע התוכנית
ביצוע התוכנית
ביצוע התוכנית
ביצוע התוכנית
ביצוע התוכנית
ביצוע התוכנית
ביצוע התוכנית
ביצוע התוכנית

הפעל את התוכנית על ידי לחיצה על כפתור ההפעלה אל תסגור את סגירת חלון המוקפץ תפסיק את הביצוע ומתחת לשאילתה כדי להציג נתונים מאוחסנים ב- MySQL …

שלב 6: מסקנה

ברצוני להודות לך על קריאת ההדרכה שלי. אודה לך אם תמצא את זה שימושי ותוריד לייק (מועדף) או תשאל אותי כל דבר מכיוון שזה נותן לי מוטיבציה לעשות את ההוראות האלה. אל תהסס לשאול כל שאלה שאתה צריך לדעת …

קידוד שמח Arduino…

מוּמלָץ: