Turinys:

Paprasta prekybos centro programa naudojant RFID RC-522 ir „Arduino Mega“: 6 žingsniai
Paprasta prekybos centro programa naudojant RFID RC-522 ir „Arduino Mega“: 6 žingsniai

Video: Paprasta prekybos centro programa naudojant RFID RC-522 ir „Arduino Mega“: 6 žingsniai

Video: Paprasta prekybos centro programa naudojant RFID RC-522 ir „Arduino Mega“: 6 žingsniai
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Liepa
Anonim
Paprasta prekybos centro programa naudojant RFID RC-522 ir „Arduino Mega“
Paprasta prekybos centro programa naudojant RFID RC-522 ir „Arduino Mega“

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:

  1. „Arduino Mega“arba „Arduino Uno“(aš naudojau „Mega“)
  2. RFID-RC522
  3. 7 jungiamieji laidai nuo patelių iki moterų
  4. Kai kurios asmens tapatybės kortelės (neprivaloma)
  5. RFID biblioteka (būtina, nuoroda žemiau)
  6. „Wamp“serveris
  7. Apdorojamas IDE 2.2.1 (nenaudokite daugiau nei tai)
  8. „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

„Arduino“ir RFID RC-522 (fizinis ryšys) nustatymas
„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“

„MySQL“nustatymas
„MySQL“nustatymas
  1. Įdiekite „Wamp“serverį, skirtą „MySQL“, ir sukonfigūruokite jį saugoti duomenis (
  2. Paleiskite „wamp“serverio atidarytą „MySQL“konsolę
  3. pasirinkti duomenų bazę
  4. 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

Apdorojimo IDE nustatymas
Apdorojimo IDE nustatymas
  1. Atsisiųskite ir įdiekite apdorojimo IDE 2.2.1
  2. Išskleiskite aukščiau pateiktą ZIP failą į „MyDocuments“/„Processing/Libraries“
  3. Dabar atidarykite apdorojimo IDE ir patikrinkite, ar biblioteka įdiegta teisingai, ar ne, kaip parodyta aukščiau esančiame paveikslėlyje
  4. 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

Programos vykdymas
Programos vykdymas
Programos vykdymas
Programos vykdymas
Programos vykdymas
Programos vykdymas
Programos vykdymas
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: