Სარჩევი:

მარტივი სუპერმარკეტის აპლიკაცია RFID RC-522 და Arduino Mega გამოყენებით: 6 ნაბიჯი
მარტივი სუპერმარკეტის აპლიკაცია RFID RC-522 და Arduino Mega გამოყენებით: 6 ნაბიჯი

ვიდეო: მარტივი სუპერმარკეტის აპლიკაცია RFID RC-522 და Arduino Mega გამოყენებით: 6 ნაბიჯი

ვიდეო: მარტივი სუპერმარკეტის აპლიკაცია RFID RC-522 და Arduino Mega გამოყენებით: 6 ნაბიჯი
ვიდეო: Silk Go-ზე რეგისტრაცია კიდევ უფრო გამარტივდა 2024, ნოემბერი
Anonim
მარტივი სუპერმარკეტის აპლიკაცია RFID RC-522 და Arduino Mega გამოყენებით
მარტივი სუპერმარკეტის აპლიკაცია RFID RC-522 და Arduino Mega გამოყენებით

კარგია, რომ თქვენ კვლავ გნახავთ ჩემს სხვა გაკვეთილზე, აქ მე დაგეხმარებით მარტივი სუპერმარკეტის პროგრამის შექმნაში RFID RC-522 და Arduino დამუშავებით მარტივი 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 ბიბლიოთეკა და დაამატეთ იგი თქვენს Arduino IDE- ში დაწკაპუნებით Sketch-> Include Library-> Add. Zip Library ფაილის მენიუში

ნაბიჯი 1: Arduino და RFID RC-522 (ფიზიკური კავშირი) დაყენება

Arduino და RFID RC-522 (ფიზიკური კავშირი) დაყენება
Arduino და RFID RC-522 (ფიზიკური კავშირი) დაყენება

უბრალოდ დაუკავშირეთ arduino– ს RFID-RC522– ით, როგორც ეს მოცემულია ზემოთ მოცემულ სურათზე. გაფრთხილება: მიაწოდეთ მხოლოდ 3.3V, წინააღმდეგ შემთხვევაში მოდული დაიწვება

დააფიქსირეთ Uno/Nano და Mega

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

ნაბიჯი 2: 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 (); }

ბათილი მარყუჟი ()

{ / * მარყუჟის დროებითი მრიცხველი * / ბაიტი i;

/* ბარათი აღმოჩენილია? */

if (RC522.isCard ()) { / * თუ ასეა მაშინ მიიღეთ მისი სერიული ნომერი * / RC522.readCardSerial ();

/ * სერიული ნომერი UART– ში */ for (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); // სერიული. ბეჭდვა (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 -ში, არ გამოიყენოთ 0 ნიშნის მნიშვნელობისათვის ბარათის წაკითხვისას, რომელიც არ არის ჩასმული DB– ში, ის მიანიჭებს 0 – ს, შემდეგ აჩვენებს მას უცნობ ბარათად. რა

ნაბიჯი 4: IDE დამუშავების დაყენება

IDE დამუშავების დაყენება
IDE დამუშავების დაყენება
  1. ჩამოტვირთეთ და დააინსტალირეთ დამუშავების IDE 2.2.1
  2. ამოიღეთ ზემოთ მოცემული ZIP MyDocuments/დამუშავება/ბიბლიოთეკები
  3. ახლა გახსენით დამუშავების IDE და შეამოწმეთ ბიბლიოთეკა არის დაინსტალირებული სწორად თუ არა როგორც ზემოთ სურათზე
  4. შემდეგ დააკოპირეთ ქვემოთ მოყვანილი კოდი დამუშავებისათვის და დაასახელეთ იგი თქვენივე

იმპორტი de.bezier.data.sql.*; იმპორტის დამუშავება. სერიალი.*; // java.math. BigInteger;

// შექმნილია 2005-05-10 ფენეტის მიერ

// განახლებულია fjenett 20080605

MySQL db კავშირი;

სიმებიანი s = ""; int წონა = 700; int სიგანე = 1200; გრძელი პირადობის მოწმობა; int ნიშანი; int თანხა; int სულ = 0;

სიმებიანი a = {"NULL", "NULL"};

int ბოლოს = 10; // ნომერი 10 არის ASCII for linefeed (სერიის დასასრული. println), მოგვიანებით ჩვენ ამას ვეძებთ ცალკეული შეტყობინებების დაშლის მიზნით სიმებიანი სერიალი; // გამოაცხადეთ ახალი სტრიქონი სახელწოდებით "სერიული". სტრიქონი არის სიმბოლოების თანმიმდევრობა (მონაცემთა ტიპი ცნობილია როგორც "char") სერიული პორტი; სიმებიანი curr, prev, Name; PFont f;

ბათილად დაყენება ()

{// ზომა (სიგანე, წონა); ზომა (700, 500); f = createFont ("Arial", 24, ჭეშმარიტი); // ეს მაგალითი ვარაუდობს, რომ თქვენ იყენებთ // mysql სერვერს ადგილობრივად ("localhost" - ზე). // // შეცვალეთ --username--, --password-- თქვენი mysql ანგარიშით. // სიმებიანი მომხმარებელი = "root"; სიმებიანი პასი = ""; // მონაცემთა ბაზის დასახმარებლად // სიმებიანი მონაცემთა ბაზა = "IOT_Database"; // ცხრილის სახელი, რომელიც შეიქმნება სიმებიანი ცხრილი = ""; // სერვერის მონაცემთა ბაზასთან დაკავშირება "localhost" dbconnection = new MySQL (ეს, "localhost", მონაცემთა ბაზა, მომხმარებელი, პასი); პორტი = ახალი სერიალი (ეს, Serial.list () [0], 9600); // ობიექტის ინიციალიზაცია პორტისა და baud განაკვეთის მინიჭებით (უნდა ემთხვეოდეს არდუინოს) port.clear (); // ფუნქცია სერიული ბიბლიოთეკიდან, რომელიც გამოტოვებს პირველ წაკითხვას, იმ შემთხვევაში, თუ ჩვენ დავიწყეთ კითხვა სტრიქონის შუაგულში Arduino serial = port.readStringUntil (დასასრული); // ფუნქცია, რომელიც კითხულობს სტრიქონს სერიული პორტიდან println– მდე და შემდეგ ანიჭებს სტრიქონს ჩვენს სტრიქონის ცვლადს (სახელდება „სერიული“) serial = null; } void draw () {ფონი (255); textFont (f, 24); შევსება (0); ტექსტი ("მთლიანი თანხა Rs:", 400, 400); ტექსტი (სულ, 585, 400); მონაცემები (); while (port.available ()> 0) {// სანამ სერიული პორტიდან მოდის მონაცემები, წაიკითხეთ და შეინახეთ სერიული = port.readStringUntil (დასასრული); } if (სერიული! = null) {წინა = curr; curr = a [1]; a = გაყოფა (სერიული, ','); // ახალი მასივი (სახელწოდებით 'a'), რომელიც ინახავს მნიშვნელობებს ცალკეულ უჯრედებში (გამოყოფილია თქვენს Arduino პროგრამაში მითითებული მძიმეებით), თუ ((curr). უდრის (წინა)) {//} სხვას {// 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 ("კარგი"); textFont (f, 54); შევსება (255, 0, 0, 160); ტექსტი ("უცნობი ერთეული აღმოჩენილია", 50, 300); დაგვიანება (2000); } else if (ნიშანი == 1) {სულ = სულ+თანხა; dbconnection.query ("განახლება rfid მითითებული ნიშანი = 2 სადაც ID ="+a [0]+""); println ("კარგი"); textFont (f, 24); შევსება (255, 0, 0, 160); // ტექსტი ("დამატებულია პუნქტი", 10, 30); დაგვიანება (1000); } else if (ნიშანი == 2) {სულ = სულ-თანხა; dbconnection.query ("განახლება rfid მითითებული ნიშანი = 1 სადაც 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 * rfid from 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: პროგრამის შესრულება

პროგრამის შესრულება
პროგრამის შესრულება
პროგრამის შესრულება
პროგრამის შესრულება
პროგრამის შესრულება
პროგრამის შესრულება
პროგრამის შესრულება
პროგრამის შესრულება

გაუშვით პროგრამა გაშვების ღილაკზე დაჭერით არ დახუროთ ამომხტარი ფანჯრის დახურვა შეწყვეტს შესრულებას და ქვემოთ მოთხოვნას MySQL– ში შენახული მონაცემების სანახავად…

ნაბიჯი 6: დასკვნა

მინდა მადლობა გადაგიხადოთ ჩემი გაკვეთილის წაკითხვისთვის. მადლობელი ვიქნები, თუკი ის თქვენთვის სასარგებლო აღმოჩნდება და მოიწონებთ ლაიქს (ფავორიტს) ან მკითხავთ რამეს, რაც მე მაძლევს მოტივაციას ამ ინსტრუქციების შესრულებაში. მოგერიდებათ დაუსვათ ნებისმიერი შეკითხვა, რომელიც უნდა იცოდეთ…

ბედნიერი კოდირება Arduino…

გირჩევთ: