Բովանդակություն:
- Քայլ 1. Arduino- ի և RFID RC-522- ի կարգավորում (ֆիզիկական միացում)
- Քայլ 2: Arduino կոդ:,
- Քայլ 3: MySQL- ի կարգավորում
- Քայլ 4: IDE մշակման կարգավորում
- Քայլ 5: Exeրագրի կատարում
- Քայլ 6: Եզրակացություն
Video: Պարզ սուպերմարկետի ծրագիր ՝ օգտագործելով RFID RC-522 և Arduino Mega ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Ուրախ եմ ձեզ նորից տեսնել այստեղ, իմ մեկ այլ ձեռնարկում: Այստեղ ես կօգնեմ ձեզ ստեղծել պարզ սուպերմարկետի ծրագիր `օգտագործելով RFID RC-522 և Arduino- ն Processing- ով` պարզ GUI ստեղծելու համար:
Նշում. Մի մշակեք Arduino- ի սերիական մոնիտորը մշակման կոդը գործարկելիս, քանի որ նավահանգստի կոնֆլիկտը տեղի կունենա, քանի որ երկուսն էլ պետք է օգտագործեն նույն նավահանգիստը
Քեզ պետք է:
- Arduino Mega կամ Arduino Uno (ես օգտագործել եմ Mega)
- RFID-RC522
- 7 արականից իգական jumper լարեր
- Որոշ ID քարտեր (ըստ ցանկության)
- RFID գրադարան (պարտադիր է, ստորև բերված հղումը)
- Wamp սերվեր
- IDE 2.2.1 -ի մշակում (դրանից ավելի մեծ մի օգտագործեք)
- BezierSQLib-0.2.0 գրադարան մշակման համար (ներբեռնման հղումը ստորև)
Այնուհետև ներբեռնեք ստորև բերված RFID գրադարանը և ավելացրեք այն ձեր Arduino IDE- ին ՝ կտտացնելով Էսքիզ-> Ներառել գրադարան-> Ավելացնել. Zip Գրադարան ֆայլերի ընտրացանկում
Քայլ 1. 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- ի կարգավորում
- Տեղադրեք Wamp սերվեր MySQL- ի համար և կազմաձևեք ՝ տվյալները պահելու համար (
- Գործարկեք wamp serveropen MySQL վահանակը
- ընտրել տվյալների բազան
- Այնուհետեւ ստեղծեք ձեր տվյալների աղյուսակը
ստեղծել աղյուսակ rfid (ID int (8), նշան int (1), Անուն varchar (20), Գումարը int (4));
Այժմ դիտեք այս հղումը ՝ սովորելու համար, թե ինչպես ստանալ ձեր RFID պիտակի արժեքը, այնուհետև օգտագործեք ստորև նշված կոդը ՝ տվյալները տեղադրելու համար: մի մոռացեք ID- ի արժեքը փոխարինել ձեր RFID պիտակի արժեքով
տեղադրեք rfid արժեքների մեջ (3756178, 1, «Մատիտ», 20);
նշանի արժեքը օգտագործեք 1 -ով, որպեսզի պիտակի արժեքը առաջին անգամ կարդալուց հետո այն ինքնաբերաբար փոխվի 2 -ի, DB- ում չդրված քարտը կարդալիս նշանի արժեքի համար մի՛ օգտագործեք 0 -ը, այն կհատկացնի 0 -ը, այն կցուցադրի որպես Անհայտ քարտ:.
Քայլ 4: IDE մշակման կարգավորում
- Ներբեռնեք և տեղադրեք Processing IDE 2.2.1
- Վերևից տրված ZIP- ը հանեք MyDocument/Processing/Libraries
- Այժմ բացեք մշակման IDE- ն և ստուգեք, որ գրադարանը տեղադրված է ճիշտ, թե ոչ, ինչպես վերը նշված պատկերում
- Այնուհետև պատճենեք ստորև նշված ծածկագիրը մշակման համար և անվանեք այն ձեր սեփականը
ներմուծում 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րագրի կատարում
Գործարկեք ծրագիրը `կտտացնելով գործարկման կոճակին, մի փակեք բացվող պատուհանը, որի փակումը կդադարեցնի կատարումը, իսկ հարցմանը ներքև ՝ MySQL- ում պահված տվյալները դիտելու համար …
Քայլ 6: Եզրակացություն
Ես կցանկանայի շնորհակալություն հայտնել ձեզ իմ ձեռնարկը կարդալու համար: Ես կգնահատեի, եթե դա օգտակար համարեիք և թողնեիք լայքը (նախընտրածը) կամ որևէ բան ինձ հարցնեիք, քանի որ դա ինձ դրդում էր կատարել այս հրահանգները: ազատ զգալ տվեք ցանկացած հարց, որը պետք է իմանաք…
Շնորհավոր կոդավորում Arduino…
Խորհուրդ ենք տալիս:
Պարզ տան ավտոմատացում (հարմարեցված Bluetooth ծրագիր) ՝ 6 քայլ
Պարզ տան ավտոմատացում (հարմարեցված Bluetooth ծրագիր). Այս ձեռնարկում ես ձեզ ցույց կտամ, թե ինչպես կարելի է կառուցել տան պարզ ավտոմատացում (այսինքն ՝ մենք կարող ենք վերահսկել մեր տան սարքավորումները մեր սմարթֆոնով)
Պարզ լրացման ծրագիր Շեքսպիրի ծրագրավորման լեզվով ՝ 18 քայլ
Շեքսպիրի ծրագրավորման լեզվի պարզ հավելման ծրագիր. Շեքսպիրի ծրագրավորման լեզուն (SPL) էզոթերիկ ծրագրավորման լեզվի օրինակ է, որը, թերևս, հետաքրքիր է սովորելն ու օգտագործելը զվարճալի է, բայց հատկապես օգտակար չէ իրական կյանքի ծրագրերում: SPL- ն այն լեզուն է, որտեղ աղբյուրի կոդը r
Ստեղծեք պարզ ծրագիր ձեր սմարթֆոնի համար (կոդավորման կարիք չկա). 10 քայլ
Սմարթֆոնի համար պատրաստեք պարզ ծրագիր (կարիք չկա կոդավորելու). ԹԱՐՄԱՆԵԼ. Այս տեխնիկան հնացել է, այժմ հավելված ստեղծելու տարբեր այլ եղանակներ կան: սա այլևս չի կարող աշխատել: Իմ առաջին հրապարակված ծրագիրը հասանելի է ներբեռնման համար Android հավելվածում: Շուկա այստեղ: Ստորև բերված է արագ ձեռնարկ, թե ինչպես գործնականում ցանկացած
Պարզ IOS ծրագիր BLE մոդուլների համար. 4 քայլ
Պարզ IOS հավելված BLE մոդուլների համար. Այս հրահանգը ցույց է տալիս, թե ինչպես կարող եք ստեղծել iOS ծրագիր ՝ շատ հիմնական ֆունկցիոնալությամբ: Այս Instructable- ը չի անցնի iOS BLE հավելված պատրաստելու ամբողջ գործընթացով: Այն միայն բարձր մակարդակի ակնարկ կտա որոշ կարևոր տարրերի հետ
Ինչպես կատարել պարզ զրույցի ծրագիր Visual Basic- ում ՝ օգտագործելով Microsoft Winsock Control- ը. 7 քայլ
Ինչպես պատրաստել պարզ զրուցարան Visual Basic- ում ՝ Microsoft Winsock Control- ի միջոցով. Ես կանդրադառնամ, թե ինչ է անում ամբողջ կոդը, այնպես որ դուք կսովորեք այն պատրաստելիս, և վերջում ես ձեզ ցույց կտամ, թե ինչպես օգտագործել այն