Სარჩევი:
- ნაბიჯი 1: Arduino და RFID RC-522 (ფიზიკური კავშირი) დაყენება
- ნაბიჯი 2: Arduino კოდი.,
- ნაბიჯი 3: MySQL– ის დაყენება
- ნაბიჯი 4: IDE დამუშავების დაყენება
- ნაბიჯი 5: პროგრამის შესრულება
- ნაბიჯი 6: დასკვნა
ვიდეო: მარტივი სუპერმარკეტის აპლიკაცია RFID RC-522 და Arduino Mega გამოყენებით: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
კარგია, რომ თქვენ კვლავ გნახავთ ჩემს სხვა გაკვეთილზე, აქ მე დაგეხმარებით მარტივი სუპერმარკეტის პროგრამის შექმნაში RFID RC-522 და Arduino დამუშავებით მარტივი GUI- ის შესაქმნელად.
შენიშვნა: არ გაუშვათ Arduino– ს სერიული მონიტორი დამუშავების კოდის დროს, რადგან პორტის კონფლიქტი წარმოიქმნება, რადგან ორივემ უნდა გამოიყენოს ერთი და იგივე პორტი
Შენ გჭირდება:
- Arduino Mega ან Arduino Uno (მე მეგა გამოვიყენე)
- RFID-RC522
- 7 მამრობითი და მდედრობითი მხტუნავი მავთული
- ზოგიერთი პირადობის მოწმობა (სურვილისამებრ)
- RFID ბიბლიოთეკა (აუცილებელია, ბმული ქვემოთ)
- Wamp სერვერი
- IDE 2.2.1 დამუშავება (არ გამოიყენოთ ამაზე დიდი)
- BezierSQLib-0.2.0 ბიბლიოთეკა დამუშავებისათვის (გადმოსაწერი ბმული ქვემოთ)
შემდეგ გადმოწერეთ ქვემოთ RFID ბიბლიოთეკა და დაამატეთ იგი თქვენს Arduino IDE- ში დაწკაპუნებით Sketch-> Include Library-> Add. Zip Library ფაილის მენიუში
ნაბიჯი 1: 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– ის დაყენება
- დააინსტალირეთ Wamp სერვერი MySQL– ისთვის და დააკონფიგურირეთ მონაცემების შესანახად (
- გაუშვით wamp serveropen MySQL კონსოლი
- აირჩიეთ მონაცემთა ბაზა
- შემდეგ შექმენით ცხრილი თქვენი მონაცემებისთვის
შექმენით ცხრილი 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 2.2.1
- ამოიღეთ ზემოთ მოცემული ZIP MyDocuments/დამუშავება/ბიბლიოთეკები
- ახლა გახსენით დამუშავების IDE და შეამოწმეთ ბიბლიოთეკა არის დაინსტალირებული სწორად თუ არა როგორც ზემოთ სურათზე
- შემდეგ დააკოპირეთ ქვემოთ მოყვანილი კოდი დამუშავებისათვის და დაასახელეთ იგი თქვენივე
იმპორტი 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…
გირჩევთ:
Android აპლიკაცია ნაწილი 1: გაფრქვევის ეკრანი ფრაგმენტების გამოყენებით/კოტლინი: 5 ნაბიჯი
Android აპლიკაცია ნაწილი 1: Splash ეკრანი ფრაგმენტების გამოყენებით/კოტლინი: გამარჯობა კიდევ ერთხელ, დიდი ალბათობით თქვენ გაქვთ " უფასო " სახლში ყოფნა COVID19– ის გამო და შეგიძლიათ დაბრუნდეთ იმ თემების შესამოწმებლად, რომელთა სწავლაც გსურთ წარსულში. Android აპლიკაციის შემუშავება ჩემთვის ნამდვილად ერთ -ერთია და მე გადავწყვიტე რამდენიმე კვირის წინ მიმეცა
THINGSPEAK ტემპერატურისა და ტენიანობის აპლიკაცია ESP8266 გამოყენებით: 9 ნაბიჯი
THINGSPEAK ტემპერატურისა და ტენიანობის აპლიკაცია ESP8266- ის გამოყენებით: ჩემს ელექტრონულ ნივთებთან მუშაობისას, მე მივიღე ეს იდეა, რომ ვებგვერდზე შექმნილი ამინდის აპლიკაცია შემექმნა. ეს ვებ აპლიკაცია იყენებს SHT31 სენსორს რეალურ დროში ტემპერატურისა და ტენიანობის მონაცემების მისაღებად. ჩვენ განვათავსეთ ჩვენი პროექტი ESP8266 WiFi მოდულზე. ონლაინ თუ ოფლ
გააკეთეთ მარტივი აპლიკაცია თქვენი სმარტფონისთვის (კოდირება არ არის საჭირო): 10 ნაბიჯი
გააკეთეთ მარტივი აპლიკაცია თქვენი სმარტფონისთვის (კოდირება არ არის საჭირო): განახლება: ეს ტექნიკა მოძველებულია, ახლა არსებობს პროგრამის შექმნის სხვადასხვა სხვა გზა .. ეს შეიძლება აღარ იმუშაოს. ჩემი პირველი გამოქვეყნებული აპლიკაცია ხელმისაწვდომია Android აპლიკაციაში ჩამოსატვირთად ბაზარი აქ. ქვემოთ მოცემულია სწრაფი გაკვეთილი, თუ როგორ პრაქტიკულად ნებისმიერი
მარტივი IOS აპლიკაცია BLE მოდულებისთვის: 4 ნაბიჯი
მარტივი IOS აპლიკაცია BLE მოდულებისთვის: ეს არის ინსტრუქცია, თუ როგორ შეგიძლიათ შექმნათ iOS პროგრამა ძალიან ძირითადი ფუნქციონირებით. ეს ინსტრუქცია არ გაივლის iOS BLE აპის შექმნის მთელ პროცესს. ის მხოლოდ მაღალი დონის მიმოხილვას მისცემს ზოგიერთ მნიშვნელოვან ელემენტს
მართლაც მარტივი/მარტივი/არა რთული გზა ადამიანების/ადამიანების/ცხოველების/რობოტების გარეგნობის შესაქმნელად, მათ აქვთ მართლაც მაგარი/ნათელი სითბოს ხედვა (თქვენი არჩევანის ფერი) GIMP- ის გამოყენებით: 4 ნაბიჯი
მართლაც მარტივი/მარტივი/არა რთული გზა ადამიანების/ადამიანების/ცხოველების/რობოტების გარეგნობის შესაქმნელად, მათ მართლაც აქვთ მაგარი/ნათელი სითბოს ხედვა (თქვენი არჩევანის ფერი) GIMP- ის გამოყენებით: წაიკითხეთ … სათაური