Բովանդակություն:

Պարզ սուպերմարկետի ծրագիր ՝ օգտագործելով RFID RC-522 և Arduino Mega ՝ 6 քայլ
Պարզ սուպերմարկետի ծրագիր ՝ օգտագործելով RFID RC-522 և Arduino Mega ՝ 6 քայլ

Video: Պարզ սուպերմարկետի ծրագիր ՝ օգտագործելով RFID RC-522 և Arduino Mega ՝ 6 քայլ

Video: Պարզ սուպերմարկետի ծրագիր ՝ օգտագործելով RFID RC-522 և Arduino Mega ՝ 6 քայլ
Video: Խանութի ծրագիր 2024, Նոյեմբեր
Anonim
Պարզ սուպերմարկետի ծրագիր ՝ օգտագործելով RFID RC-522 և Arduino Mega
Պարզ սուպերմարկետի ծրագիր ՝ օգտագործելով RFID RC-522 և Arduino Mega

Ուրախ եմ ձեզ նորից տեսնել այստեղ, իմ մեկ այլ ձեռնարկում: Այստեղ ես կօգնեմ ձեզ ստեղծել պարզ սուպերմարկետի ծրագիր `օգտագործելով RFID RC-522 և Arduino- ն Processing- ով` պարզ GUI ստեղծելու համար:

Նշում. Մի մշակեք Arduino- ի սերիական մոնիտորը մշակման կոդը գործարկելիս, քանի որ նավահանգստի կոնֆլիկտը տեղի կունենա, քանի որ երկուսն էլ պետք է օգտագործեն նույն նավահանգիստը

Քեզ պետք է:

  1. Arduino Mega կամ Arduino Uno (ես օգտագործել եմ Mega)
  2. RFID-RC522
  3. 7 արականից իգական jumper լարեր
  4. Որոշ ID քարտեր (ըստ ցանկության)
  5. RFID գրադարան (պարտադիր է, ստորև բերված հղումը)
  6. Wamp սերվեր
  7. IDE 2.2.1 -ի մշակում (դրանից ավելի մեծ մի օգտագործեք)
  8. BezierSQLib-0.2.0 գրադարան մշակման համար (ներբեռնման հղումը ստորև)

Այնուհետև ներբեռնեք ստորև բերված RFID գրադարանը և ավելացրեք այն ձեր Arduino IDE- ին ՝ կտտացնելով Էսքիզ-> Ներառել գրադարան-> Ավելացնել. Zip Գրադարան ֆայլերի ընտրացանկում

Քայլ 1. Arduino- ի և RFID RC-522- ի կարգավորում (ֆիզիկական միացում)

Arduino- ի և RFID RC-522- ի կարգավորում (ֆիզիկական միացում)
Arduino- ի և RFID RC-522- ի կարգավորում (ֆիզիկական միացում)

պարզապես միացրեք arduino- ն RFID-RC522- ի հետ, ինչպես ցույց է տրված վերևում նկարում:

Ամրացրեք Uno/Nano- ի և Mega- ի համար

RC522 ՄՈԴՈLEԼ 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 MODULE 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 (); }

դատարկ շրջան ()

{ / * Opամանակավոր հանգույցի հաշվիչ * / բայթ 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 serveropen MySQL վահանակը
  3. ընտրել տվյալների բազան
  4. Այնուհետեւ ստեղծեք ձեր տվյալների աղյուսակը

ստեղծել աղյուսակ rfid (ID int (8), նշան int (1), Անուն varchar (20), Գումարը int (4));

Այժմ դիտեք այս հղումը ՝ սովորելու համար, թե ինչպես ստանալ ձեր RFID պիտակի արժեքը, այնուհետև օգտագործեք ստորև նշված կոդը ՝ տվյալները տեղադրելու համար: մի մոռացեք ID- ի արժեքը փոխարինել ձեր RFID պիտակի արժեքով

տեղադրեք rfid արժեքների մեջ (3756178, 1, «Մատիտ», 20);

նշանի արժեքը օգտագործեք 1 -ով, որպեսզի պիտակի արժեքը առաջին անգամ կարդալուց հետո այն ինքնաբերաբար փոխվի 2 -ի, DB- ում չդրված քարտը կարդալիս նշանի արժեքի համար մի՛ օգտագործեք 0 -ը, այն կհատկացնի 0 -ը, այն կցուցադրի որպես Անհայտ քարտ:.

Քայլ 4: IDE մշակման կարգավորում

IDE մշակման կարգավորում
IDE մշակման կարգավորում
  1. Ներբեռնեք և տեղադրեք Processing IDE 2.2.1
  2. Վերևից տրված ZIP- ը հանեք MyDocument/Processing/Libraries
  3. Այժմ բացեք մշակման IDE- ն և ստուգեք, որ գրադարանը տեղադրված է ճիշտ, թե ոչ, ինչպես վերը նշված պատկերում
  4. Այնուհետև պատճենեք ստորև նշված ծածկագիրը մշակման համար և անվանեք այն ձեր սեփականը

ներմուծում de.bezier.data.sql.*; ներմուծման մշակում. սերիալ:*; // ներմուծում java.math. BigInteger;

// ստեղծված 2005-05-10 fjenett- ի կողմից

// թարմացվել է fjenett 20080605

MySQL db միացում;

Տող s = ""; int Քաշ = 700; int Լայնություն = 1200; երկար ID; int նշան; int Գումարը; int Ընդամենը = 0;

Լար a = {"NULL", "NULL"};

int վերջ = 10; // համարը 10 -ը ASCII է linefeed- ի համար (serial.println- ի վերջը), հետագայում մենք դա կփնտրենք առանձին հաղորդագրություններ String սերիալ բաժանելու համար; // հայտարարեք նոր տող, որը կոչվում է «սերիա»: Լարը նիշերի հաջորդականություն է (տվյալների տեսակը հայտնի է որպես «char») Սերիական նավահանգիստ; Լարային curr, prev, Name; PFont f;

դատարկ կարգավորում ()

{// չափը (Լայնություն, Քաշ); չափը (700, 500); f = createFont («Arial», 24, ճշմարիտ); // այս օրինակը ենթադրում է, որ դուք // mysql սերվերը գործարկում եք տեղայնորեն («localhost» - ի վրա): // // փոխարինել --username--, --password-- ձեր mysql- հաշիվով: // Լարային օգտվող = "արմատ"; Լարային փոխանցում = ""; // օգտագործվող տվյալների բազայի անվանումը // String database = "IOT_Database"; // այն սեղանի անունը, որը կստեղծվի Լարային աղյուսակ = ""; // միանալ սերվերի տվյալների բազային "localhost" dbconnection = new MySQL (սա, «localhost», տվյալների բազա, օգտվող, անցում); նավահանգիստ = նոր Սերիա (սա, Serial.list () [0], 9600); // օբյեկտի նախաստորագրում `պորտ և բաուդ արագություն նշանակելով (պետք է համապատասխանի Arduino- ին) նավահանգստին: հստակ (); // սերիական գրադարանի գործառույթը, որը դուրս է թողնում առաջին ընթերցումը, այն դեպքում, երբ մենք սկսել ենք կարդալ Arduino serial = port.readStringUntil- ի տողի միջից (վերջ); // ֆունկցիա, որը տողը կարդում է սերիական նավահանգստից մինչև println, այնուհետև տող է վերագրում մեր տողերի փոփոխականին (կոչվում է «սերիա») serial = null; } void draw () {background (255); textFont (f, 24); լրացնել (0); տեքստ («Ընդհանուր գումարը Rs:», 400, 400); տեքստ (Ընդհանուր, 585, 400); տվյալներ (); while (port.available ()> 0) {// քանի դեռ սերիական նավահանգստից եկող տվյալներ կան, կարդացեք և պահեք դրանք serial = port.readStringUntil (վերջ); } if (սերիալ! = null) {prev = curr; curr = a [1]; a = պառակտում (սերիա, ','); // նոր զանգված (կոչվում է «a»), որը արժեքները պահում է առանձին բջիջների մեջ (առանձնացված են ձեր Arduino ծրագրում նշված ստորակետներով), եթե ((curr).հավասար է (նախորդ)) {//} else {// println ("curr ", curr); // println («Նախորդ», նախորդ); գործառույթ (); }}}

դատարկ գործառույթ ()

{if (dbconnection.connect ()) {// այժմ նորից կարդացեք այն // dbconnection.query ("SELECT * from rfid where ID ="+a [0]+""); while (dbconnection.next ()) {ID = dbconnection.getInt («ID»); նշան = dbconnection.getInt («նշան»); Գումար = dbconnection.getInt («Գումար»); } if (նշան == 0) {println ("Ok"); textFont (f, 54); լրացնել (255, 0, 0, 160); տեքստ («Անհայտ տարրը հայտնաբերվել է», 50, 300); ուշացում (2000); } else if (նշան == 1) {Ընդհանուր = Ընդհանուր+Գումար; dbconnection.query ("Update rfid set token = 2 where ID ="+a [0]+""); println («Լավ»); textFont (f, 24); լրացնել (255, 0, 0, 160); // տեքստ («Ավելացված տարրը», 10, 30); ուշացում (1000); } else if (նշան == 2) {Total = Total-Amount; dbconnection.query ("Update rfid set token = 1 where ID ="+a [0]+""); println («Լավ»); textFont (f, 24); լրացնել (255, 0, 0, 160); // տեքստ («Նյութը հանված է», 10, 30); ուշացում (1000); } else {} dbconnection.close (); } else {// կապը ձախողվեց: }}

անվավեր տվյալներ ()

{int դիրքը = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * from rfid where token = 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: Exeրագրի կատարում

Cutրագրի կատարում
Cutրագրի կատարում
Cutրագրի կատարում
Cutրագրի կատարում
Cutրագրի կատարում
Cutրագրի կատարում
Cutրագրի կատարում
Cutրագրի կատարում

Գործարկեք ծրագիրը `կտտացնելով գործարկման կոճակին, մի փակեք բացվող պատուհանը, որի փակումը կդադարեցնի կատարումը, իսկ հարցմանը ներքև ՝ MySQL- ում պահված տվյալները դիտելու համար …

Քայլ 6: Եզրակացություն

Ես կցանկանայի շնորհակալություն հայտնել ձեզ իմ ձեռնարկը կարդալու համար: Ես կգնահատեի, եթե դա օգտակար համարեիք և թողնեիք լայքը (նախընտրածը) կամ որևէ բան ինձ հարցնեիք, քանի որ դա ինձ դրդում էր կատարել այս հրահանգները: ազատ զգալ տվեք ցանկացած հարց, որը պետք է իմանաք…

Շնորհավոր կոդավորում Arduino…

Խորհուրդ ենք տալիս: