Kazalo:
- 1. korak: Nastavitev Arduino in RFID RC-522 (fizična povezava)
- 2. korak: Arduino koda.,
- 3. korak: Nastavitev MySQL
- 4. korak: Nastavitev IDE -ja za obdelavo
- 5. korak: Izvajanje programa
- 6. korak: Zaključek
Video: Preprosta aplikacija za supermarket z uporabo RFID RC-522 in Arduino Mega: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
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:
- Arduino Mega ali Arduino Uno (uporabljal sem Mega)
- RFID-RC522
- 7 moških in ženskih mostičkov
- Nekatere osebne izkaznice (neobvezno)
- Knjižnica RFID (obvezno, spodnja povezava)
- Wamp strežnik
- Obdelava IDE 2.2.1 (ne uporabljajte več kot to)
- 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)
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
- Namestite strežnik Wamp za MySQL in ga konfigurirajte za shranjevanje podatkov (
- Zaženite wamp serveropen konzolo MySQL
- izberite bazo podatkov
- 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
- Prenesite in namestite IDE za obdelavo 2.2.1
- Izvlecite zgoraj navedeni ZIP v MyDocuments/Processing/Libraries
- Zdaj odprite IDE za obdelavo in preverite, ali je knjižnica pravilno nameščena ali ne, kot je na zgornji sliki
- 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
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:
Desenvolvendo Aplikacija za oddaljeno uporabo za Dragonboard 410c Usando IDE Eclipse: 17 korakov
Desenvolvendo Aplikações Remotamente Para a Dragonboard 410c Usando IDE Eclipse: O objetivo deste documento é mostrar kot etapas potrebno á rias para konfigurator o ambiente de desenvolvimento, de modo que o HostPC (Computador / Notebook), atrav é s do IDE Eclipse compile os c ó digos e izvoz za alvo (povlecite
Preprosta digitalna ura z uporabo Arduino Nano in DS1307: 4 koraki
Enostavna digitalna ura z uporabo Arduino Nano in DS1307: V tem članku vam bom pokazal vadnico za izdelavo digitalne ure z uporabo Arduina .. Plošča Arduino, ki jo uporabljam, je Arduino Nano V3, DS1307 kot ponudnik časovnih podatkov, MAX7219 7 segment kot ogled zaslona. Preden vstopite v vadnico, priporočam, da
Preprosta binarna ura z uporabo Attiny85: 10 korakov
Enostavna binarna ura z uporabo Attiny85: Pozdravljeni! V tem navodilu sem pokazal, kako narediti minimalistično in preprosto binarno uro z arduino uno in attiny85. Če svojega arduina niste nikoli uporabljali za programiranje drugih mikročipov, boste videli, da je to zelo enostavno narediti (Prvič sem poskusil za
Preprosta digitalna ura z uporabo Arduina: 6 korakov
Enostavna digitalna ura z uporabo Arduina: naredite preprosto digitalno uro z arduinom in preprostim tiskanim vezjem
Povezovanje RFID-RC522 z Arduino MEGA preprosta skica: 4 koraki
Povezovanje RFID-RC522 z Arduino MEGA preprosta skica: Pozdravljeni, v tej vadnici vam bom pomagal pri povezovanju RFID-RC522 z Arduino Mega 2560 za branje RFID in prikaz podatkov na serijskem monitorju. tako da ga lahko sami razširite Potrebujete: Arduino Mega ali Arduino Uno