Turinys:
- 1 veiksmas: „Arduino“ir RFID RC-522 (fizinis ryšys) nustatymas
- 2 žingsnis: „Arduino“kodas
- 3 veiksmas: nustatykite „MySQL“
- 4 veiksmas: nustatykite apdorojimo IDE
- 5 žingsnis: programos vykdymas
- 6 žingsnis: Išvada
Video: Paprasta prekybos centro programa naudojant RFID RC-522 ir „Arduino Mega“: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Gera vėl jus matyti čia, mano kitoje pamokoje, čia aš padėsiu jums sukurti paprastą prekybos centro programą naudojant RFID RC-522 ir „Arduino with Processing“, kad būtų sukurta paprasta GUI.
Pastaba: paleiskite „Arduino“serijinį monitorių, kol vykdomas apdorojimo kodas, nes įvyks prievado konfliktas, nes abu turi naudoti tą patį prievadą
Tau reikia:
- „Arduino Mega“arba „Arduino Uno“(aš naudojau „Mega“)
- RFID-RC522
- 7 jungiamieji laidai nuo patelių iki moterų
- Kai kurios asmens tapatybės kortelės (neprivaloma)
- RFID biblioteka (būtina, nuoroda žemiau)
- „Wamp“serveris
- Apdorojamas IDE 2.2.1 (nenaudokite daugiau nei tai)
- „BezierSQLib-0.2.0“biblioteka apdorojimui (atsisiųskite nuorodą žemiau)
Tada atsisiųskite žemiau esančią RFID biblioteką ir pridėkite ją prie „Arduino IDE“spustelėdami Eskizas-> Įtraukti biblioteką-> Pridėti. Zip biblioteką failų meniu
1 veiksmas: „Arduino“ir RFID RC-522 (fizinis ryšys) nustatymas
tiesiog prijunkite arduino prie RFID-RC522, kaip parodyta aukščiau esančiame paveikslėlyje. Įspėjimas: maitinkite tik 3.3V, kitaip modulis sudegs
Prijunkite „Uno“/„Nano“ir „Mega“
RC522 MODULIS 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 žingsnis: „Arduino“kodas
Nukopijuokite žemiau esantį kodą, tada įkelkite jį į „Arduino“
/*PINOUT: RC522 MODULIS 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*//*Įtraukite standartinę „Arduino SPI“biblioteką */ #include/ *Įtraukti RFID biblioteką */ #include
/* Apibrėžkite DIO, naudojamą SDA (SS) ir RST (atstatymo) kaiščiams. */
#define SDA_DIO 9 #define RESET_DIO 8
/ * Sukurkite RFID bibliotekos egzempliorių */
RFID RC522 (SDA_DIO, RESET_DIO); int skaitytuvas = 0;
negaliojanti sąranka ()
{Serial.begin (9600); / * Įgalinti SPI sąsają */ SPI.begin (); / * Inicijuokite RFID skaitytuvą */ RC522.init (); }
tuštumos kilpa ()
{ / * Laikinas kilpos skaitiklis * / baitas i;
/* Ar aptikta kortelė? */
if (RC522.isCard ()) { / * Jei taip, gaukite jos serijos numerį * / RC522.readCardSerial ();
/ * Išveskite serijos numerį į UART */ for (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); // serijinis atspaudas (RC522.serNum, HEX); } Serial.print (","); Serial.print (skaitytuvas ++); Serial.println (); } uždelsimas (1000); }
3 veiksmas: nustatykite „MySQL“
- Įdiekite „Wamp“serverį, skirtą „MySQL“, ir sukonfigūruokite jį saugoti duomenis (
- Paleiskite „wamp“serverio atidarytą „MySQL“konsolę
- pasirinkti duomenų bazę
- Tada sukurkite savo duomenų lentelę
sukurti lentelę rfid (ID int (8), token int (1), Name varchar (20), Amount int (4));
Dabar peržiūrėkite šią nuorodą, kad sužinotumėte, kaip gauti savo RFID žymos vertę, tada naudokite žemiau esantį kodą duomenims įterpti. Nepamirškite pakeisti ID vertės savo RFID žymos verte
įterpti į rfid reikšmes (3756178, 1, 'Pencil', 20);
naudokite žetono reikšmę kaip 1, kad pirmą kartą perskaičius žymos reikšmę ji automatiškai pasikeistų į 2, nenaudokite 0 simbolio reikšmei, kai skaitote kortelę, kuri nėra įdėta į DB, ji priskirs 0, tada parodys ją kaip nežinomą kortelę..
4 veiksmas: nustatykite apdorojimo IDE
- Atsisiųskite ir įdiekite apdorojimo IDE 2.2.1
- Išskleiskite aukščiau pateiktą ZIP failą į „MyDocuments“/„Processing/Libraries“
- Dabar atidarykite apdorojimo IDE ir patikrinkite, ar biblioteka įdiegta teisingai, ar ne, kaip parodyta aukščiau esančiame paveikslėlyje
- Tada nukopijuokite žemiau esantį kodą į apdorojimą ir pavadinkite jį savo
importuoti de.bezier.data.sql.*; importuoti apdorojimą.serial.*; // importuoti java.math. BigInteger;
// sukūrė 2005-05-10 fjenett
// atnaujinta fjenett 20080605
MySQL dbconnection;
Eilutė s = ""; int Ratas = 700; int Plotis = 1200; ilgas ID; int žetonas; int Kiekis; int Iš viso = 0;
Eilutė a = {"NULL", "NULL"};
int galas = 10; // skaičius 10 yra ASCII linijiniam tiekimui (serijos pabaiga.println), vėliau ieškosime to, kad suskaidytume atskirus pranešimus String serial; // paskelbti naują eilutę pavadinimu „serial“. Eilutė yra simbolių seka (duomenų tipas žinomas kaip „char“) Serijinis prievadas; String curr, ankstesnis, pavadinimas; PFontas f;
negaliojanti sąranka ()
{// dydis (plotis, ratas); dydis (700, 500); f = createFont ("Arial", 24, tiesa); // šiame pavyzdyje daroma prielaida, kad // mysql serverį naudojate vietoje („localhost“). // // pakeiskite --username--, --password-- savo mysql paskyra. // Styginių vartotojas = "root"; Eilutės leidimas = ""; // naudojamos duomenų bazės pavadinimas // String database = "IOT_Database"; // sukurtos lentelės pavadinimas String table = ""; // prisijungti prie serverio "localhost" duomenų bazės dbconnection = naujas MySQL (tai, "localhost", duomenų bazė, vartotojas, leidimas); prievadas = naujas serijinis (šis, serijinis sąrašas () [0], 9600); // objekto inicijavimas priskiriant prievadą ir duomenų perdavimo spartą (turi atitikti „Arduino“) port.clear (); // funkcija iš serijinės bibliotekos, kuri išmeta pirmąjį skaitymą, jei pradėtume skaityti eilutės viduryje iš „Arduino“serial = port.readStringUntil (end); // funkcija, kuri nuskaito eilutę iš nuoseklaus prievado iki println ir tada priskiria eilutę mūsų eilutės kintamajam (vadinamam „serial“) serial = null; } void draw () {fonas (255); textFont (f, 24); užpildyti (0); tekstas („Bendra suma Rs:“, 400, 400); tekstas (iš viso, 585, 400); duomenys (); while (port.available ()> 0) {// kol yra duomenų iš serijinio prievado, perskaitykite ir išsaugokite serial = port.readStringUntil (pabaiga); } if (serijinis! = nulis) {prev = curr; curr = a [1]; a = padalintas (serijinis, ','); // naujas masyvas (vadinamas „a“), kuris saugo vertes į atskirus langelius (atskirtus kableliais, nurodytais jūsų „Arduino“programoje), jei ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Ankstesnis", ankstesnis); funkcija(); }}}
negaliojanti funkcija ()
{if (dbconnection.connect ()) {// dabar perskaitykite atgal // dbconnection.query ("SELECT * iš rfid, kur ID ="+a [0]+""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); žetonas = dbconnection.getInt ("žetonas"); Amount = dbconnection.getInt ("Suma"); } if (žetonas == 0) {println ("Gerai"); textFont (f, 54); užpildyti (255, 0, 0, 160); tekstas („Aptiktas nežinomas daiktas“, 50, 300); vėlavimas (2000 m.); } else if (žetonas == 1) {Iš viso = iš viso+suma; dbconnection.query ("atnaujinti RFID rinkinio žetoną = 2, kur ID ="+a [0]+""); println („Gerai“); textFont (f, 24); užpildyti (255, 0, 0, 160); // tekstas ("Elementas pridėtas", 10, 30); vėlavimas (1000); } else if (žetonas == 2) {Iš viso = visa suma; dbconnection.query ("update rfid set token = 1 kur ID ="+a [0]+""); println („Gerai“); textFont (f, 24); užpildyti (255, 0, 0, 160); // tekstas ("Elementas pašalintas", 10, 30); vėlavimas (1000); } else {} dbconnection.close (); } else {// nepavyko prisijungti! }}
negaliojantys duomenys ()
{int pozicija = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * from rfid where token = 2"); while (dbconnection.next ()) {Vardas = dbconnection.getString ("Vardas"); Amount = dbconnection.getInt ("Suma"); textFont (f, 24); užpildyti (0, 0, 255, 160); tekstas (Vardas, 10, pozicija); užpildyti (0, 0, 0, 160); tekstas (suma, 215, pozicija); pozicija = pozicija+30; }} dbconnection.close (); }
5 žingsnis: programos vykdymas
Vykdykite programą spustelėdami mygtuką Vykdyti, neuždarykite iššokančio lango uždarymo, bus sustabdytas vykdymas, o žemiau pateikta užklausa - peržiūrėti saugomus duomenis „MySQL“…
6 žingsnis: Išvada
Norėčiau padėkoti, kad perskaitėte mano vadovėlį. Būčiau dėkingas, jei jums tai būtų naudinga ir pamestumėte mėgstamą (mėgstamiausią) arba ko nors paklaustumėte, nes tai mane motyvuoja daryti šiuos nurodymus. nedvejodami užduokite visus klausimus, kuriuos turite žinoti…
Laimingas kodavimas Arduino…
Rekomenduojamas:
Kaip padaryti paprastą IOT naudojant telegramos programą: 5 žingsniai
Kaip sukurti paprastą IOT naudojant telegramos programą: dabartinės kartos internetas yra viskas. Daiktų internetas vaidina svarbų vaidmenį dabartiniame pasaulyje. Negaišdami daug laiko, galime pereiti prie praktinio IOT darbo. Čia mes valdysime LED ir taip pat
„Pasidaryk pats“PCB gamyba naudojant UV spausdintuvą (ir gaukite pagalbos iš vietinio prekybos centro): 5 žingsniai
„Pasidaryk pats“PCB gamyba naudojant UV spausdintuvą (ir gaukite pagalbos iš vietinio prekybos centro): norite pagaminti PCB, bet nenorite laukti savaičių iš Kinijos. „Pasidaryk pats“atrodo vienintelė galimybė, tačiau iš patirties žinai, kad dauguma variantų yra nepatogūs. Dažų perkėlimas niekada neišeina, ar ne? Fotolitografija namuose yra labai sudėtinga
Paprasta paprasta LED grandinė (kaip naudoti šviesos diodus): 4 žingsniai
Paprasta pagrindinė šviesos diodų grandinė (kaip naudoti šviesos diodus): šioje instrukcijoje nurodoma, kaip naudoti šviesos diodus ir kaip sukurti paprastas pagrindines šviesos diodų grandines, kurias srovės ribojimo rezistorius gali naudoti 3V, 6V, 9V ir šviesos diodams valdyti. 12V. Šviesos diodas yra svarbus elektronikos komponentas, jis naudojamas keletui
Kaip sukurti paprastą pokalbių programą „Visual Basic“naudojant „Microsoft Winsock Control“: 7 žingsniai
Kaip sukurti paprastą pokalbių programą naudojant „Visual Basic“naudojant „Microsoft Winsock Control“: šioje nesuderinamoje programoje aš jums parodysiu, kaip sukurti paprastą „Visual Basic“pokalbių programą. Aš peržiūrėsiu, ką daro visas kodas, kad jūs mokytumėtės jį kurdami, o pabaigoje parodysiu, kaip juo naudotis
„XBOX Case Mod **“paprasta ir paprasta; Spalvingas **: 5 žingsniai
„XBOX Case Mod **“paprasta ir paprasta; Spalvinga **: tai mano pirmasis pamokomas hmmm. gana paprastas LED korpuso modas, naudojant lengvai randamas dalis. šis „Instructable“yra visiškai grįžtamas, jei jis neplanuoja … (tai praktiškai yra garantija po kai kurių dalykų, kuriuos mačiau)