INHOUDSOPGAWE:

Eenvoudige supermark-app met RFID RC-522 en Arduino Mega: 6 stappe
Eenvoudige supermark-app met RFID RC-522 en Arduino Mega: 6 stappe

Video: Eenvoudige supermark-app met RFID RC-522 en Arduino Mega: 6 stappe

Video: Eenvoudige supermark-app met RFID RC-522 en Arduino Mega: 6 stappe
Video: NFC и RFID? Подробный разбор. 2024, November
Anonim
Eenvoudige supermark-app met RFID RC-522 en Arduino Mega
Eenvoudige supermark-app met RFID RC-522 en Arduino Mega

Dit is goed om julle weer hier te sien op my ander tutoriaal; hier help ek u om 'n eenvoudige supermark-toepassing te maak met RFID RC-522 en Arduino met verwerking om 'n eenvoudige GUI te skep.

Let wel: moenie die Arduino -seriële monitor gebruik terwyl die verwerkingskode uitgevoer word nie, want poortkonflik sal voorkom, aangesien beide dieselfde poort moet gebruik

Jy benodig:

  1. Arduino Mega of Arduino Uno (ek het Mega gebruik)
  2. RFID-RC522
  3. 7 springdrade van man tot vrou
  4. Sommige ID -kaarte (opsioneel)
  5. RFID -biblioteek (moet, skakel hieronder)
  6. Wamp bediener
  7. Verwerk IDE 2.2.1 (moenie groter as dit gebruik nie)
  8. BezierSQLib-0.2.0 biblioteek vir verwerking (aflaai skakel hieronder)

Laai dan die RFID-biblioteek hieronder af en voeg dit by u Arduino IDE deur op Sketch-> Include Library-> Add. Zip Library in die lêermenu te klik

Stap 1: Opstel van Arduino en RFID RC-522 (Fisiese verbinding)

Die opstel van Arduino en RFID RC-522 (Fisiese verbinding)
Die opstel van Arduino en RFID RC-522 (Fisiese verbinding)

verbind eenvoudig die arduino met RFID-RC522 soos in die bostaande beeld getoon. Waarskuwing: slegs 3,3V verskaf

Speld uit vir Uno/Nano en Mega

RC522 MODULE Uno/Nano MEGASDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ Nvt Nvt GND GND GND RST D9 D8 3.3V 3.3V 3.3V

Stap 2: Arduino -kode.,

Kopieer die onderstaande kode en laai dit dan op u Arduino op

/*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*//*Sluit die standaard Arduino SPI biblioteek in */ #include/ *Sluit die RFID -biblioteek in */ #include

/* Definieer die DIO wat gebruik word vir die SDA (SS) en RST (reset) penne. */

#definieer SDA_DIO 9 #definieer RESET_DIO 8

/ * Skep 'n voorbeeld van die RFID -biblioteek */

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

leemte opstelling ()

{Serial.begin (9600); / * Aktiveer die SPI -koppelvlak */ SPI.begin (); / * Initialiseer die RFID -leser */ RC522.init (); }

leemte lus ()

{ / * Tydelike lusteller * / byte i;

/* Is 'n kaart opgespoor? */

if (RC522.isCard ()) { / * Indien wel, kry dan die reeksnommer * / RC522.readCardSerial ();

/ * Gee die reeksnommer na die UART */ vir (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum , HEX); } Serial.print (","); Serial.print (leser ++); Serial.println (); } vertraging (1000); }

Stap 3: Die opstel van MySQL

Die opstel van MySQL
Die opstel van MySQL
  1. Installeer Wamp -bediener vir MySQL en stel dit op om data te stoor (
  2. Begin die wamp -bediener MySQL -konsole oop
  3. kies databasis
  4. Maak dan die tabel vir u data

skep tabel rfid (ID int (8), token int (1), naam varchar (20), bedrag int (4));

Kyk nou na hierdie skakel om te leer hoe u u RFID -etiketwaarde kan kry, en gebruik dan die onderstaande kode om data in te voeg. Vergeet nie om die ID -waarde te vervang met u RFID -tagwaarde nie

voeg in rfid -waardes (3756178, 1, 'Potlood', 20);

gebruik tekenwaarde as 1 sodat dit na die lees van die etiketwaarde vir die eerste keer outomaties na 2 verander; gebruik nie 0 vir tekenwaarde as die leeskaart wat nie in DB ingevoeg is nie, dit 0 toewys en dit dan as onbekende kaart vertoon..

Stap 4: Opstel van verwerking IDE

Die opstel van verwerking IDE
Die opstel van verwerking IDE
  1. Laai die verwerkings -IDE 2.2.1 af en installeer dit
  2. Pak die gegewe zip uit na MyDocuments/Processing/Libraries
  3. Maak nou die verwerking van IDE oop en kyk of die biblioteek korrek geïnstalleer is, soos nie in die prent hierbo nie
  4. Kopieer dan die onderstaande kode na die verwerking en noem dit u eie

invoer de.bezier.data.sql.*; invoerverwerking.reeks.*; // invoer java.math. BigInteger;

// geskep 2005-05-10 deur fjenett

// opgedateer fjenett 20080605

MySQL db -verbinding;

String s = ""; int Gewig = 700; int Breedte = 1200; lang ID; int teken; int Bedrag; int Totaal = 0;

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

int einde = 10; // die nommer 10 is ASCII vir linefeed (einde van serial.println), later sal ons daarna soek om individuele boodskappe op te breek String serial; // verklaar 'n nuwe string genaamd 'serial'. 'N Tou is 'n reeks karakters (datatipe bekend as "char") Seriële poort; String curr, prev, Name; PFont f;

leemte opstelling ()

{// grootte (breedte, gewig); grootte (700, 500); f = createFont ("Arial", 24, waar); // hierdie voorbeeld veronderstel dat u die // mysql -bediener plaaslik bedryf (op "localhost"). // // vervang --gebruikersnaam--, --wagwoord-- met u mysql-rekening. // Stringgebruiker = "root"; String pass = ""; // naam van die databasis wat gebruik moet word // String databasis = "IOT_Database"; // naam van die tabel wat geskep sal word String table = ""; // maak verbinding met die databasis van bediener "localhost" dbconnection = nuwe MySQL (hierdie, "localhost", databasis, gebruiker, pas); poort = new Serial (hierdie, Serial.list () [0], 9600); // die voorwerp te initialiseer deur 'n poort en baud rate toe te ken (moet ooreenstem met die van Arduino) port.clear (); // funksie uit die seriële biblioteek wat die eerste lesing weggooi, as ons in die middel van 'n string van Arduino serial = port.readStringUntil (einde) begin lees; // funksie wat die string lees vanaf die seriële poort tot 'n println en dan die string toewys aan ons string veranderlike (genaamd 'serial') serial = null; } leegte trek () {agtergrond (255); textFont (f, 24); vul (0); teks ("Totale bedrag Rs:", 400, 400); teks (totaal, 585, 400); data (); Terwyl (port.available ()> 0) {// solank daar data uit die seriële poort kom, lees dit en stoor dit serial = port.readStringUntil (end); } as (reeks! = nul) {prev = curr; curr = a [1]; a = split (reeks, ','); // 'n nuwe skikking (genaamd 'a') wat waardes in aparte selle stoor (geskei deur kommas wat in jou Arduino -program gespesifiseer is) as ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Vorige", vorige); funksie (); }}}

leemte funksie ()

{if (dbconnection.connect ()) {// lees dit nou terug // dbconnection.query ("SELECT * van rfid waar ID ="+a [0]+""); terwyl (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("token"); Bedrag = dbconnection.getInt ("Bedrag"); } if (token == 0) {println ("Ok"); textFont (f, 54); fill (255, 0, 0, 160); teks ("Onbekende item opgespoor", 50, 300); vertraging (2000); } anders as (token == 1) {Totaal = Totaal+Bedrag; dbconnection.query ("update rfid set token = 2 where ID ="+a [0]+""); println ("Ok"); textFont (f, 24); fill (255, 0, 0, 160); // teks ("Item bygevoeg", 10, 30); vertraging (1000); } anders as (token == 2) {Totaal = Totaal-bedrag; dbconnection.query ("update rfid set token = 1 where ID ="+a [0]+""); println ("Ok"); textFont (f, 24); fill (255, 0, 0, 160); // teks ("Item verwyder", 10, 30); vertraging (1000); } anders {} dbconnection.close (); } anders {// konneksie misluk! }}

leegte data ()

{int posisie = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * van rfid waar token = 2"); terwyl (dbconnection.next ()) {Naam = dbconnection.getString ("Naam"); Bedrag = dbconnection.getInt ("Bedrag"); textFont (f, 24); fill (0, 0, 255, 160); teks (Naam, 10, posisie); fill (0, 0, 0, 160); teks (Bedrag, 215, posisie); posisie = posisie+30; }} dbconnection.close (); }

Stap 5: Die uitvoering van die program

Die uitvoering van die program
Die uitvoering van die program
Die uitvoering van die program
Die uitvoering van die program
Die uitvoering van die program
Die uitvoering van die program
Die uitvoering van die program
Die uitvoering van die program

Begin die program deur op die run -knoppie te klik, moenie die pop -upvenster sluit nie, die uitvoering stop en die onderstaande navraag om gestoorde data in MySQL te sien …

Stap 6: Gevolgtrekking

Ek wil u bedank vir die lees van my tutoriaal. Ek sal dit waardeer as u dit nuttig vind, 'n like (gunsteling) of iets vra, aangesien dit my gemotiveerd hou om hierdie instruksies te doen. stel gerus enige vrae wat u moet weet …

Gelukkige kodering Arduino …

Aanbeveel: