Sisukord:

Lihtne supermarketirakendus RFID RC-522 ja Arduino Mega abil: 6 sammu
Lihtne supermarketirakendus RFID RC-522 ja Arduino Mega abil: 6 sammu

Video: Lihtne supermarketirakendus RFID RC-522 ja Arduino Mega abil: 6 sammu

Video: Lihtne supermarketirakendus RFID RC-522 ja Arduino Mega abil: 6 sammu
Video: 🚀 AMAZON 2.0 - ИНТЕРНЕТ МАГАЗИН с нуля за 6 часов [Next / React / Nest / PostgreSQL / Prisma / TS] 2024, November
Anonim
Lihtne supermarketirakendus, mis kasutab RFID RC-522 ja Arduino Mega
Lihtne supermarketirakendus, mis kasutab RFID RC-522 ja Arduino Mega

Tore on teid jälle siin minu teises õpetuses näha, siin aitan teil lihtsa GUI loomiseks luua lihtsa supermarketi rakenduse, kasutades RFID RC-522 ja Arduino koos töötlemisega.

Märkus: ärge käivitage töötlemiskoodi töötamise ajal Arduino jadamonitori, kuna pordikonflikt tekib, kuna mõlemad peavad kasutama sama pordi

Sa vajad:

  1. Arduino Mega või Arduino Uno (ma kasutasin Mega)
  2. RFID-RC522
  3. 7 isast naissoost džemprijuhet
  4. Mõned ID -kaardid (valikuline)
  5. RFID -kogu (kohustuslik, link allpool)
  6. Wampi server
  7. IDE 2.2.1 töötlemine (ärge kasutage suuremat)
  8. BezierSQLib-0.2.0 raamatukogu töötlemiseks (allalaadimise link allpool)

Seejärel laadige alla allolev RFID-kogu ja lisage see oma Arduino IDE-sse, klõpsates failimenüüs Sketch-> Include Library-> Add. Zip Library.

Samm: seadistage Arduino ja RFID RC-522 (füüsiline ühendus)

Arduino ja RFID RC-522 seadistamine (füüsiline ühendus)
Arduino ja RFID RC-522 seadistamine (füüsiline ühendus)

lihtsalt ühendage arduino RFID-RC522-ga, nagu ülaltoodud pildil näidatud. Hoiatus: toide ainult 3,3 V, vastasel juhul põleb moodul läbi

Kinnitage Uno/Nano ja Mega jaoks

RC522 MOODUL 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

Samm: Arduino kood.,

Kopeerige allolev kood ja laadige see oma Arduinole üles

/*PINOUT: RC522 MOODUL 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*//*Kaasa standardne Arduino SPI raamatukogu */ #include/ *Kaasa RFID -kogu */ #include

/* Määrake SDA (SS) ja RST (lähtestamine) tihvtide jaoks kasutatav DIO. */

#define SDA_DIO 9 #defineerimine RESET_DIO 8

/ * Looge RFID -teegi eksemplar */

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

tühine seadistus ()

{Serial.begin (9600); / * Luba SPI liides */ SPI.begin (); / * Initsialiseeri RFID -lugeja */ RC522.init (); }

tühine tsükkel ()

{ / * Ajutine silmusloendur * / bait i;

/* Kas kaart on tuvastatud? */

if (RC522.isCard ()) { / * Kui jah, siis hankige selle seerianumber * / RC522.readCardSerial ();

/ * Väljendage seerianumber UART -le */ for (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Seriaalne trükk (RC522.serNum, HEX); } Serial.print (","); Serial.print (lugeja ++); Serial.println (); } viivitus (1000); }

3. samm: MySQL -i seadistamine

MySQL -i seadistamine
MySQL -i seadistamine
  1. Installige Wamp server MySQL -i jaoks ja seadistage see andmete salvestamiseks (
  2. Käivitage wamp serveri avatud MySQL konsool
  3. valige andmebaas
  4. Seejärel looge oma andmete jaoks tabel

luua tabel rfid (ID int (8), token int (1), Name varchar (20), Amount int (4));

Nüüd vaadake seda linki, et teada saada, kuidas oma RFID -märgendi väärtust saada, seejärel kasutage andmete sisestamiseks allolevat koodi. Ärge unustage asendada ID -väärtus oma RFID -märgendi väärtusega

sisestada rfid väärtustesse (3756178, 1, 'Pencil', 20);

kasutage märgi väärtust 1, nii et pärast märgendi väärtuse esmakordset lugemist muutub see automaatselt 2 -ks, ärge kasutage märgi väärtuseks 0, kui loete kaarti, mida pole sisestatud DB -sse, määrab see 0 ja kuvab selle tundmatu kaardina..

4. samm: IDE töötlemise seadistamine

Töötlemise IDE seadistamine
Töötlemise IDE seadistamine
  1. Laadige alla ja installige töötlemise IDE 2.2.1
  2. Väljavõte ülaltoodud ZIP -st kausta MyDocuments/Processing/Libraries
  3. Nüüd avage töötlemise IDE ja kontrollige, kas kogu on õigesti installitud või mitte, nagu ülaltoodud pildil
  4. Seejärel kopeerige töötlemiseks allolev kood ja pange sellele oma nimi

import de.bezier.data.sql.*; import processing.serial.*; // impordi java.math. BigInteger;

// loodud 2005-05-10, autor fjenett

// uuendatud fjenett 20080605

MySQL db -ühendus;

String s = ""; int Ratas = 700; int laius = 1200; pikk ID; int token; int Kogus; int Kokku = 0;

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

int lõpp = 10; // number 10 on linefeed ASCII (jada.println lõpp), hiljem otsime seda üksikute sõnumite lõhkumiseks String jada; // deklareerida uus string nimega 'jadane'. String on tähemärkide jada (andmetüüp on tuntud kui "char") jadaport; String curr, eelmine, nimi; PFont f;

tühine seadistus ()

{// size (Wwidth, Wheight); suurus (700, 500); f = createFont ("Arial", 24, tõene); // see näide eeldab, et käitate // mysql serverit kohapeal ("localhost"). // // asendage --kasutajanimi--, --parool-- oma mysql-kontoga. // Stringi kasutaja = "juur"; String pass = ""; // kasutatava andmebaasi nimi // String database = "IOT_Database"; // loodava tabeli nimi String table = ""; // ühenduse loomine serveri "localhost" andmebaasiga dbconnection = uus MySQL (see, "localhost", andmebaas, kasutaja, pääs); port = uus seeria (see, Serial.list () [0], 9600); // objekti initsialiseerimine, määrates pordi ja edastuskiiruse (peab vastama Arduino omale) port.clear (); // funktsioon jadaraamatukogust, mis viskab esimese lugemise välja, juhuks kui me alustasime lugemist Arduino stringi keskel serial = port.readStringUntil (end); // funktsioon, mis loeb stringi jadaportist kuni println -ni ja seejärel määrab stringi meie stringimuutujale (nn 'jada') serial = null; } void draw () {taust (255); textFont (f, 24); täitma (0); tekst ("Kogusumma Rs:", 400, 400); tekst (kokku, 585, 400); andmed (); while (port.available ()> 0) {// seni, kuni jadapordist saab andmeid, lugege seda ja salvestage see serial = port.readStringUntil (lõpp); } if (jada! = null) {prev = curr; curr = a [1]; a = jagatud (jada, ','); // uus massiiv (nn „a”), mis salvestab väärtused eraldi lahtritesse (eraldatud komadega, mis on määratud teie Arduino programmis), kui ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Eelmine", eelmine); funktsioon (); }}}

tühine funktsioon ()

{if (dbconnection.connect ()) {// loe see nüüd tagasi // dbconnection.query ("SELECT * rfid -st, kus ID ="+a [0]+""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("märk"); Amount = dbconnection.getInt ("Amount"); } if (token == 0) {println ("Ok"); textFont (f, 54); täitke (255, 0, 0, 160); tekst ("Tuvastati tundmatu ese", 50, 300); viivitus (2000); } else if (token == 1) {Kokku = kokku+summa; dbconnection.query ("update rfid set token = 2 kus ID ="+a [0]+""); println ("Ok"); textFont (f, 24); täitke (255, 0, 0, 160); // tekst ("Üksus lisatud", 10, 30); viivitus (1000); } else if (token == 2) {Kokku = Kogusumma; dbconnection.query ("update rfid set token = 1 kus ID ="+a [0]+""); println ("Ok"); textFont (f, 24); täitke (255, 0, 0, 160); // tekst ("Üksus eemaldatud", 10, 30); viivitus (1000); } else {} dbconnection.close (); } muu {// ühendus ebaõnnestus! }}

tühised andmed ()

{int positsioon = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * from rfid where token = 2"); while (dbconnection.next ()) {Name = dbconnection.getString ("Nimi"); Amount = dbconnection.getInt ("Amount"); textFont (f, 24); täitke (0, 0, 255, 160); tekst (Nimi, 10, ametikoht); täitke (0, 0, 0, 160); tekst (Amount, 215, position); positsioon = positsioon+30; }} dbconnection.close (); }

Samm: programmi käivitamine

Programmi täitmine
Programmi täitmine
Programmi täitmine
Programmi täitmine
Programmi täitmine
Programmi täitmine
Programmi täitmine
Programmi täitmine

Käivitage programm, klõpsates nuppu Käivita, ärge sulgege hüpikakna sulgemist, peatatakse täitmine ja päringu all, et vaadata MySQL -i salvestatud andmeid …

6. samm: järeldus

Tahaksin teid tänada, et lugesite minu õpetust. Oleksin tänulik, kui leiate, et see on kasulik ja jätate like (lemmik) või küsite minult midagi, kuna see hoiab mind motiveeritud neid juhendeid tegema. küsige julgelt küsimusi, mida peate teadma…

Head Arduino kodeerimist…

Soovitan: