Kazalo:

Preprosta aplikacija za supermarket z uporabo RFID RC-522 in Arduino Mega: 6 korakov
Preprosta aplikacija za supermarket z uporabo RFID RC-522 in Arduino Mega: 6 korakov

Video: Preprosta aplikacija za supermarket z uporabo RFID RC-522 in Arduino Mega: 6 korakov

Video: Preprosta aplikacija za supermarket z uporabo RFID RC-522 in Arduino Mega: 6 korakov
Video: Мои ОШИБКИ в Японии. Как японцы меня обманывали... 2024, November
Anonim
Preprosta aplikacija za supermarket z uporabo RFID RC-522 in Arduino Mega
Preprosta aplikacija za supermarket z uporabo RFID RC-522 in Arduino Mega

Lepo vas je spet videti na moji drugi vadnici, tukaj vam bom pomagal ustvariti preprosto aplikacijo za supermarket z uporabo RFID RC-522 in Arduino z obdelavo za ustvarjanje preprostega grafičnega vmesnika.

Opomba: med izvajanjem kode za obdelavo ne zaženite serijskega monitorja Arduino, ker bo prišlo do konflikta vrat, saj morata oba uporabljati ista vrata

Potrebujete:

  1. Arduino Mega ali Arduino Uno (uporabljal sem Mega)
  2. RFID-RC522
  3. 7 moških in ženskih mostičkov
  4. Nekatere osebne izkaznice (neobvezno)
  5. Knjižnica RFID (obvezno, spodnja povezava)
  6. Wamp strežnik
  7. Obdelava IDE 2.2.1 (ne uporabljajte več kot to)
  8. Knjižnica BezierSQLib-0.2.0 za obdelavo (spodnja povezava za prenos)

Nato prenesite spodnjo knjižnico RFID in jo dodajte v svoj Arduino IDE tako, da kliknete Sketch-> Include Library-> Add. Zip Library v meniju datotek

1. korak: Nastavitev Arduino in RFID RC-522 (fizična povezava)

Nastavitev Arduina in RFID RC-522 (fizična povezava)
Nastavitev Arduina in RFID RC-522 (fizična povezava)

arduino preprosto priključite na RFID-RC522, kot je prikazano na zgornji sliki.

Pin Out za Uno/Nano in Mega

RC522 MODUL 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. korak: Arduino koda.,

Kopirajte spodnjo kodo in jo naložite na svoj Arduino

/*PINOUT: RC522 MODUL 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,3 V 3,3 V 3,3 V*//*Vključuje standardno knjižnico Arduino SPI */ #include/ *Vključite knjižnico RFID */ #include

/* Določite DIO, ki se uporablja za nožice SDA (SS) in RST (ponastavitev). */

#define SDA_DIO 9 #define RESET_DIO 8

/ * Ustvarite primerek knjižnice RFID */

RFID RC522 (SDA_DIO, RESET_DIO); int bralnik = 0;

void setup ()

{Serial.begin (9600); / * Omogoči vmesnik SPI */ SPI.begin (); / * Inicializirajte bralnik RFID */ RC522.init (); }

void loop ()

{ / * Začasen števec zanke * / bajt i;

/* Je bila zaznana kartica? */

if (RC522.isCard ()) { / * Če je tako, potem dobite serijsko številko * / RC522.readCardSerial ();

/ * Oddajte serijsko številko v UART */ za (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum, HEX); } Serial.print (","); Serial.print (bralnik ++); Serial.println (); } zakasnitev (1000); }

3. korak: Nastavitev MySQL

Nastavitev MySQL
Nastavitev MySQL
  1. Namestite strežnik Wamp za MySQL in ga konfigurirajte za shranjevanje podatkov (
  2. Zaženite wamp serveropen konzolo MySQL
  3. izberite bazo podatkov
  4. Nato ustvarite tabelo za svoje podatke

ustvarite tabelo rfid (ID int (8), token int (1), Name varchar (20), Amount int (4));

Zdaj si oglejte to povezavo, če želite izvedeti, kako pridobiti vrednost oznake RFID, nato uporabite spodnjo kodo za vnos podatkov. Ne pozabite zamenjati vrednosti ID z vrednostjo oznake RFID

vstavi v vrednosti rfid (3756178, 1, 'svinčnik', 20);

uporabite vrednost žetona kot 1, tako da se po prvem branju vrednosti oznake samodejno spremeni v 2, ne uporabite 0 za vrednost žetona, ko branje kartice, ki ni vstavljena v bazo podatkov, dodeli 0, nato pa jo prikaže kot neznano kartico..

4. korak: Nastavitev IDE -ja za obdelavo

Nastavitev IDE -ja za obdelavo
Nastavitev IDE -ja za obdelavo
  1. Prenesite in namestite IDE za obdelavo 2.2.1
  2. Izvlecite zgoraj navedeni ZIP v MyDocuments/Processing/Libraries
  3. Zdaj odprite IDE za obdelavo in preverite, ali je knjižnica pravilno nameščena ali ne, kot je na zgornji sliki
  4. Nato kopirajte spodnjo kodo v obdelavo in jo poimenujte sami

import de.bezier.data.sql.*; uvoz obdelave.serial.*; // uvoz java.math. BigInteger;

// ustvaril 2005-05-10 avtor fjenett

// posodobljen fjenett 20080605

Povezava db MySQL;

Niz s = ""; int Teža = 700; int Širina = 1200; dolga osebna izkaznica; int žeton; int Znesek; int Skupaj = 0;

Niz a = {"NULL", "NULL"};

int konec = 10; // številka 10 je ASCII za vnos vrstice (konec serial.println), pozneje bomo to iskali za ločitev posameznih sporočil String serial; // razglasimo nov niz, imenovan 'serijski'. Niz je zaporedje znakov (podatkovni tip znan kot "char") Serijska vrata; Curl curr, prev, Name; PFont f;

void setup ()

{// velikost (Wwidth, Wheight); velikost (700, 500); f = createFont ("Arial", 24, res); // ta primer predpostavlja, da strežnik // mysql izvajate lokalno (na "localhost"). // // zamenjajte-uporabniško ime--,-geslo-- z vašim računom mysql. // niz uporabnikov = "root"; Niz prenosa = ""; // ime baze podatkov za uporabo // String database = "IOT_Database"; // ime tabele, ki bo ustvarjena String table = ""; // povežite se z bazo podatkov strežnika "localhost" dbconnection = nov MySQL (to, "localhost", baza podatkov, uporabnik, izkaznica); port = nov zaporedni (to, Serial.list () [0], 9600); // inicializiranje objekta z dodelitvijo vrat in hitrosti prenosa (mora se ujemati s hitrostjo Arduina) port.clear (); // funkcija iz serijske knjižnice, ki vrže prvo branje, če smo začeli brati sredi niza iz Arduina serial = port.readStringUntil (konec); // funkcija, ki bere niz od zaporednih vrat do println in nato dodeli niz naši spremenljivki niza (imenovani 'serial') serial = null; } void draw () {ozadje (255); textFont (f, 24); izpolni (0); besedilo ("Skupni znesek Rs:", 400, 400); besedilo (Skupaj, 585, 400); podatki (); while (port.available ()> 0) {// dokler so podatki iz serijskih vrat, jih preberite in shranite serial = port.readStringUntil (end); } if (serijski! = ničelno) {prev = curr; curr = a [1]; a = razcepljeno (zaporedno, ','); // nova matrika (imenovana 'a'), ki shranjuje vrednosti v ločene celice (ločene z vejicami, navedenimi v vašem programu Arduino) if ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Prejšnja", prejšnja); funkcija (); }}}

funkcija void ()

{if (dbconnection.connect ()) {// preberite ga nazaj // dbconnection.query ("SELECT * from rfid where ID ="+a [0]+""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); žeton = dbconnection.getInt ("žeton"); Znesek = dbconnection.getInt ("Znesek"); } if (žeton == 0) {println ("V redu"); textFont (f, 54); izpolni (255, 0, 0, 160); besedilo ("Zaznana neznana postavka", 50, 300); zamuda (2000); } else if (žeton == 1) {Skupaj = Skupaj+Znesek; dbconnection.query ("posodobite rfid set token = 2 where ID ="+a [0]+""); println ("V redu"); textFont (f, 24); izpolni (255, 0, 0, 160); // besedilo ("Dodana postavka", 10, 30); zamuda (1000); } else if (žeton == 2) {Skupaj = Skupni znesek; dbconnection.query ("posodobite rfid set token = 1 where ID ="+a [0]+""); println ("V redu"); textFont (f, 24); izpolni (255, 0, 0, 160); // besedilo ("Element odstranjen", 10, 30); zamuda (1000); } else {} dbconnection.close (); } else {// povezava ni uspela! }}

void data ()

{int position = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * from rfid where token = 2"); while (dbconnection.next ()) {Name = dbconnection.getString ("Ime"); Znesek = dbconnection.getInt ("Znesek"); textFont (f, 24); izpolni (0, 0, 255, 160); besedilo (ime, 10, položaj); izpolni (0, 0, 0, 160); besedilo (Znesek, 215, položaj); položaj = položaj+30; }} dbconnection.close (); }

5. korak: Izvajanje programa

Izvajanje programa
Izvajanje programa
Izvajanje programa
Izvajanje programa
Izvajanje programa
Izvajanje programa
Izvajanje programa
Izvajanje programa

Zaženite program s klikom na gumb zaženi ne zapri pojavnega okna zapiranje ustavi izvajanje in pod poizvedbo za ogled shranjenih podatkov v MySQL …

6. korak: Zaključek

Rad bi se vam zahvalil, ker ste prebrali mojo vadnico. Vesela bom, če se vam bo zdelo koristno in spustili všeček (najljubši) ali me vprašali karkoli, saj me to motivira, da naredim ta navodila. vas prosimo, da postavite vsa vprašanja, ki jih morate vedeti …

Veselo kodiranje Arduino…

Priporočena: