ዝርዝር ሁኔታ:

RFID RC-522 እና Arduino Mega: 6 ደረጃዎች በመጠቀም ቀላል የሱፐርማርኬት መተግበሪያ
RFID RC-522 እና Arduino Mega: 6 ደረጃዎች በመጠቀም ቀላል የሱፐርማርኬት መተግበሪያ

ቪዲዮ: RFID RC-522 እና Arduino Mega: 6 ደረጃዎች በመጠቀም ቀላል የሱፐርማርኬት መተግበሪያ

ቪዲዮ: RFID RC-522 እና Arduino Mega: 6 ደረጃዎች በመጠቀም ቀላል የሱፐርማርኬት መተግበሪያ
ቪዲዮ: Arduino Interrupt 2024, ህዳር
Anonim
RFID RC-522 እና Arduino Mega ን በመጠቀም ቀላል የሱፐርማርኬት መተግበሪያ
RFID RC-522 እና Arduino Mega ን በመጠቀም ቀላል የሱፐርማርኬት መተግበሪያ

እኔ በሌላ መማሪያዬ ላይ እዚህ እንደገና እርስዎን ማየቱ ጥሩ ነው ፣ እዚህ ቀለል ያለ GUI ለመፍጠር በማቀናበር RFID RC-522 ን እና አርዱዲኖን በመጠቀም ቀላል የሱፐርማርኬት መተግበሪያን ለመፍጠር እረዳዎታለሁ።

ማሳሰቢያ -የማቀናበሪያ ኮድ በሚሠራበት ጊዜ የአርዲኖን ተከታታይ ማሳያ አያሂዱ ምክንያቱም የወደብ ግጭት ስለሚከሰት ሁለቱም ተመሳሳይ ወደብ መጠቀም አለባቸው

ትፈልጋለህ:

  1. አርዱዲኖ ሜጋ ወይም አርዱዲኖ ኡኖ (ሜጋን እጠቀም ነበር)
  2. RFID-RC522
  3. 7 ከወንድ እስከ ሴት ዝላይ ሽቦዎች
  4. አንዳንድ የመታወቂያ ካርዶች (አማራጭ)
  5. የ RFID ቤተ -መጽሐፍት (የግድ ፣ ከዚህ በታች ያለው አገናኝ)
  6. Wamp አገልጋይ
  7. IDE ን በማቀናበር ላይ 2.2.1 (ከዚያ በላይ አይጠቀሙ)
  8. BezierSQLib-0.2.0 ቤተ-መጽሐፍትን ለማቀናበር (ከዚህ በታች ያለውን አገናኝ ያውርዱ)

ከዚያ ከዚህ በታች ያለውን የ RFID ቤተ-መጽሐፍትን ያውርዱ እና Sketch-> ቤተ-መጽሐፍትን ያካትቱ->. Zip ቤተ-መጽሐፍትን በፋይል ምናሌ ውስጥ ጠቅ በማድረግ ወደ አርዱዲኖ አይዲኢ ያክሉት።

ደረጃ 1: Arduino እና RFID RC-522 (አካላዊ ግንኙነት) ማቀናበር

አርዱዲኖ እና RFID RC-522 (አካላዊ ግንኙነት) ማቀናበር
አርዱዲኖ እና RFID RC-522 (አካላዊ ግንኙነት) ማቀናበር

ከላይ ባለው ምስል ላይ እንደሚታየው በቀላሉ አርዱዲኖውን ከ RFID-RC522 ጋር ያገናኙ። ማስጠንቀቂያ-አቅርቦት 3.3 ቪ ብቻ ካልሆነ ሞጁሉ ይቃጠላል።

ለኡኖ/ናኖ እና ሜጋ ፒን ያውጡ

RC522 MODULE 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 - የአርዲኖ ኮድ።

ከዚህ በታች ያለውን ኮድ ይቅዱ እና ከዚያ በአርዱኖዎ ላይ ይስቀሉት

* */ #ያካትቱ/ *የ RFID ቤተ -መጽሐፍትን ያካትቱ */ #ያካትቱ

/* ለ 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 (); }

ባዶነት loop ()

{ / * ጊዜያዊ ሉፕ ቆጣሪ * / ባይት i;

/* ካርድ ተገኝቷል? */

ከሆነ (RC522.isCard ()) { / * እንደዚያ ከሆነ የመለያ ቁጥሩን * / RC522.readCardSerial ();

/ * የመለያ ቁጥሩን ወደ UART */ ለ (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. ለ MySQL የ Wamp አገልጋይ ይጫኑ እና ውሂብ ለማከማቸት ያዋቅሩት (
  2. የ wamp serveropen MySQL ኮንሶልን ያሂዱ
  3. የውሂብ ጎታ ይምረጡ
  4. ከዚያ ለውሂብዎ ሰንጠረዥን ይፍጠሩ

ሰንጠረዥ rfid (መታወቂያ int (8) ፣ ማስመሰያ int (1) ፣ ስም ቫርቻር (20) ፣ መጠን int (4)) መፍጠር ፤

የ RFID መለያ እሴትዎን እንዴት ማግኘት እንደሚችሉ ለመማር አሁን ይህንን አገናኝ ይመልከቱ እና ውሂብ ለማስገባት ከዚህ በታች ያለውን ኮድ ይጠቀሙ። የመታወቂያ እሴትን በ RFID መለያ እሴት መተካትዎን አይርሱ።

ወደ rfid እሴቶች ያስገቡ (3756178 ፣ 1 ፣ ‘እርሳስ’ ፣ 20);

የመለያ እሴቱን ለመጀመሪያ ጊዜ ካነበቡ በኋላ በራስ -ሰር ወደ 2 ይቀየራል ፣ በዲቢ ውስጥ ያልገባውን ካርድ ሲያነቡ 0 ን አይጠቀምም 0 ይመድባል ከዚያም እንደ ያልታወቀ ካርድ ያሳያል።.

ደረጃ 4 - IDE ን ማቀናበር

ማቀናበር IDE ን ማቀናበር
ማቀናበር IDE ን ማቀናበር
  1. የሂደቱን አይዲኢ ያውርዱ እና ይጫኑ 2.2.1
  2. ከላይ የተሰጠውን ዚፕ ወደ 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 ወርድ = 1200; ረጅም መታወቂያ; int ማስመሰያ; int መጠን; int ጠቅላላ = 0;

ሕብረቁምፊ a = {"NULL" ፣ "NULL"};

int መጨረሻ = 10; // ቁጥር 10 ASCII ለ linefeed (የ serial.println መጨረሻ) ነው ፣ በኋላ እኛ የግል መልእክቶችን ለማፍረስ ይህንን እንፈልጋለን ሕብረቁምፊ ተከታታይ; // ‹ተከታታይ› የተባለ አዲስ ሕብረቁምፊ ያውጁ። ሕብረቁምፊ የቁምፊዎች ቅደም ተከተል ነው (የውሂብ ዓይነት “ቻር” በመባል ይታወቃል) ተከታታይ ወደብ; ሕብረቁምፊ ከርር ፣ ቀዳሚ ፣ ስም; PFont f;

ባዶነት ማዋቀር ()

{// መጠን (ስፋት ፣ ወርድ); መጠን (700, 500); f = createFont ("Arial", 24, true); // ይህ ምሳሌ የ // mysql አገልጋዩን በአከባቢ (በ ‹አካባቢያዊhost› ላይ) እያሄዱ እንደሆኑ ያስባል። // // ይተካሉ-የተጠቃሚ ስም-፣-የይለፍ ቃል-በ mysql- መለያዎ። // ሕብረቁምፊ ተጠቃሚ = "ሥር"; ሕብረቁምፊ ማለፊያ = ""; የሚጠቀምበት የውሂብ ጎታ ስም // ሕብረቁምፊ የውሂብ ጎታ = "IOT_Database"; / የተፈጠረውን የጠረጴዛ ስም/ String table = ""; // ከአገልጋይ የውሂብ ጎታ ጋር ይገናኙ "localhost" dbconnection = new MySQL (ይህ ፣ “localhost” ፣ የውሂብ ጎታ ፣ ተጠቃሚ ፣ ማለፊያ); ወደብ = አዲስ ተከታታይ (ይህ ፣ Serial.list () [0] ፣ 9600); // ወደብ እና የባውድ መጠን (ከአርዱዲኖ ጋር መዛመድ አለበት) ወደብ.ኩላር () ጋር በመመደብ ዕቃውን ማስጀመር። የመጀመሪያውን ንባብ ከሚጥለው ተከታታይ ቤተ -መጽሐፍት/ ተግባር ፣ እኛ ከአርዱዲኖ ተከታታይ = port.readStringUntil (መጨረሻ) በሕብረቁምፊ መሃል ማንበብ ከጀመርን። // ሕብረቁምፊውን ከተከታታይ ወደብ እስከ ህትመት ድረስ የሚያነብ እና ከዚያ ሕብረቁምፊ ተለዋዋጭ (‹ተከታታይ› ተብሎ የሚጠራው) ተከታታይ = ባዶ ነው። } ባዶ ባዶ () (ዳራ (255)); textFont (ረ, 24); መሙላት (0); ጽሑፍ ("ጠቅላላ መጠን Rs:", 400, 400); ጽሑፍ (ጠቅላላ ፣ 585 ፣ 400); ውሂብ (); ሳለ (port.available ()> 0) {// ከተከታታይ ወደብ የሚመጣ ውሂብ እስካለ ድረስ ያንብቡት እና ያከማቹት ተከታታይ = port.readStringUntil (መጨረሻ); } ከሆነ (ተከታታይ! = ባዶ) {prev = curr; ከር = ሀ [1]; ሀ = መከፋፈል (ተከታታይ ፣ '፣'); // ((curr).equals (prev)) {//} ሌላ {// println ("curr "፣ ኩር); // println (“ቀዳሚ” ፣ ቀዳሚ); ተግባር (); }}}

ባዶ ተግባር ()

{ከሆነ (dbconnection.connect ()) {// አሁን መልሰው ያንብቡት // dbconnection.query ("መታወቂያ ="+a [0]+"") ከ "rfid ይምረጡ"); ሳለ (dbconnection.next ()) {ID = dbconnection.getInt («መታወቂያ»); token = dbconnection.getInt ("ማስመሰያ"); መጠን = dbconnection.getInt ("መጠን"); } ከሆነ (ማስመሰያ == 0) {println («እሺ»); textFont (ረ, 54); መሙላት (255 ፣ 0 ፣ 0 ፣ 160); ጽሑፍ ("ያልታወቀ ንጥል ተገኝቷል", 50, 300); መዘግየት (2000); } ሌላ ከሆነ (ማስመሰያ == 1) {ጠቅላላ = ጠቅላላ+መጠን ፤ dbconnection.query ("ዝማኔ rfid set token = 2 የት ID ="+a [0]+""); println ("እሺ"); textFont (ረ, 24); መሙላት (255 ፣ 0 ፣ 0 ፣ 160); // ጽሑፍ (“ንጥል ታክሏል” ፣ 10 ፣ 30); መዘግየት (1000); } ሌላ ከሆነ (ማስመሰያ == 2) {ጠቅላላ = ጠቅላላ-መጠን; dbconnection.query ("ዝማኔ rfid set token = 1 የት መታወቂያ ="+ሀ [0]+""); println ("እሺ"); textFont (ረ, 24); መሙላት (255 ፣ 0 ፣ 0 ፣ 160); // ጽሑፍ (“ንጥል ተወግዷል” ፣ 10 ፣ 30); መዘግየት (1000); } ሌላ {} dbconnection.close (); } ሌላ {// ግንኙነት አልተሳካም! }}

ባዶ ውሂብ ()

{int position = 100; ከሆነ (dbconnection.connect ()) {dbconnection.query ("SELECT * from rfid token = 2"); ሳለ (dbconnection.next ()) {ስም = dbconnection.getString ("ስም")); መጠን = dbconnection.getInt ("መጠን"); textFont (ረ, 24); መሙላት (0 ፣ 0 ፣ 255 ፣ 160); ጽሑፍ (ስም ፣ 10 ፣ አቀማመጥ); መሙላት (0 ፣ 0 ፣ 0 ፣ 160); ጽሑፍ (መጠን ፣ 215 ፣ አቀማመጥ); አቀማመጥ = አቀማመጥ+30; }} dbconnection.close (); }

ደረጃ 5 - ፕሮግራሙን ማከናወን

ፕሮግራሙን ማከናወን
ፕሮግራሙን ማከናወን
ፕሮግራሙን ማከናወን
ፕሮግራሙን ማከናወን
ፕሮግራሙን ማከናወን
ፕሮግራሙን ማከናወን
ፕሮግራሙን ማከናወን
ፕሮግራሙን ማከናወን

የአሂድ አዝራሩን ጠቅ በማድረግ ፕሮግራሙን ያሂዱ የብቅ ባይ መስኮቱ መዘጋት በ MySQL ውስጥ የተከማቸ መረጃን ለማየት መገደልን ያቆማል።

ደረጃ 6 መደምደሚያ

ትምህርቴን ስላነበባችሁ ላመሰግናችሁ እወዳለሁ። ጠቃሚ ሆኖ ካገኙት እና መውደድን (ተወዳጅ) ቢጥሉ ወይም እነዚህን ትምህርት ሰጪዎች ለማድረግ እንድነሳሳ ስለሚያደርግኝ ማንኛውንም ነገር ቢጠይቁኝ አደንቃለሁ። ማወቅ ያለብዎትን ማንኛውንም ጥያቄ ለመጠየቅ ነፃነት ይሰማዎ…

መልካም ኮድ አርዱዲኖ…

የሚመከር: