Satura rādītājs:

Vienkārša lielveikalu lietotne, izmantojot RFID RC-522 un Arduino Mega: 6 soļi
Vienkārša lielveikalu lietotne, izmantojot RFID RC-522 un Arduino Mega: 6 soļi

Video: Vienkārša lielveikalu lietotne, izmantojot RFID RC-522 un Arduino Mega: 6 soļi

Video: Vienkārša lielveikalu lietotne, izmantojot RFID RC-522 un Arduino Mega: 6 soļi
Video: Стеки технологий – информатика для руководителей бизнеса 2016 2024, Novembris
Anonim
Vienkārša lielveikalu lietotne, izmantojot RFID RC-522 un Arduino Mega
Vienkārša lielveikalu lietotne, izmantojot RFID RC-522 un Arduino Mega

Ir labi redzēt jūs, puiši, atkal šeit, manā citā apmācībā, šeit es palīdzēšu jums izveidot vienkāršu lielveikalu lietojumprogrammu, izmantojot RFID RC-522 un Arduino ar apstrādi, lai izveidotu vienkāršu GUI.

Piezīme: nedarbiniet Arduino sērijas monitoru, kamēr tiek palaists apstrādes kods, jo notiks portu konflikts, jo abiem ir jāizmanto viens un tas pats ports

Tev vajag:

  1. Arduino Mega vai Arduino Uno (es izmantoju Mega)
  2. RFID-RC522
  3. 7 džemperu vadi no vīriešu līdz sievietēm
  4. Dažas personas apliecības (pēc izvēles)
  5. RFID bibliotēka (obligāti, saite zemāk)
  6. Wamp serveris
  7. IDE 2.2.1 apstrāde (neizmantojiet lielāku par to)
  8. BezierSQLib-0.2.0 bibliotēka apstrādei (lejupielādes saite zemāk)

Pēc tam lejupielādējiet zemāk esošo RFID bibliotēku un pievienojiet to savam Arduino IDE, noklikšķinot uz Skice-> Iekļaut bibliotēku-> Pievienot. Zip bibliotēku failu izvēlnē

1. darbība: iestatiet Arduino un RFID RC-522 (fiziskais savienojums)

Arduino un RFID RC-522 iestatīšana (fizisks savienojums)
Arduino un RFID RC-522 iestatīšana (fizisks savienojums)

vienkārši pievienojiet arduino ar RFID-RC522, kā parādīts iepriekšējā attēlā. Brīdinājums: piegādājiet tikai 3.3V, pretējā gadījumā modulis izdeg

Piespraudiet Uno/Nano un 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. darbība: Arduino kods.,

Nokopējiet zemāk esošo kodu un pēc tam augšupielādējiet to savā 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*//*Iekļaujiet standarta Arduino SPI bibliotēku */ #include/ *Iekļaut RFID bibliotēku */ #include

/* Definējiet DIO, ko izmanto SDA (SS) un RST (atiestatīšanas) tapām. */

#define SDA_DIO 9 #define RESET_DIO 8

/ * Izveidojiet RFID bibliotēkas gadījumu */

RFID RC522 (SDA_DIO, RESET_DIO); int lasītājs = 0;

anulēts iestatījums ()

{Sērijas sākums (9600); / * Iespējot SPI saskarni */ SPI.begin (); / * Inicializējiet RFID lasītāju */ RC522.init (); }

tukša cilpa ()

{ / * Pagaidu cilpas skaitītājs * / baits i;

/* Vai karte ir atklāta? */

if (RC522.isCard ()) { / * Ja tā, tad iegūstiet tā sērijas numuru * / RC522.readCardSerial ();

/ * Izvadiet sērijas numuru UART */ for (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum, HEX); } Serial.print (","); Serial.print (lasītājs ++); Sērijas.println (); } kavēšanās (1000); }

3. darbība: MySQL iestatīšana

MySQL iestatīšana
MySQL iestatīšana
  1. Instalējiet Wamp serveri MySQL un konfigurējiet to datu glabāšanai (
  2. Palaidiet wamp serveropen MySQL konsoli
  3. izvēlieties datu bāzi
  4. Pēc tam izveidojiet tabulu saviem datiem

izveidot tabulu rfid (ID int (8), token int (1), Name varchar (20), Amount int (4));

Tagad skatiet šo saiti, lai uzzinātu, kā iegūt savu RFID taga vērtību, un pēc tam izmantojiet zemāk esošo kodu, lai ievietotu datus. Neaizmirstiet aizstāt ID vērtību ar savu RFID taga vērtību

ievietojiet rfid vērtībās (3756178, 1, 'Zīmulis', 20);

izmantojiet marķiera vērtību kā 1, lai pēc taga vērtības pirmās lasīšanas tā automātiski mainītos uz 2, neizmantojiet 0 marķiera vērtībai, lasot karti, kas nav ievietota DB, tā piešķirs 0 un parādīs to kā nezināmu karti..

4. darbība: apstrādes IDE iestatīšana

Apstrādes IDE iestatīšana
Apstrādes IDE iestatīšana
  1. Lejupielādējiet un instalējiet apstrādes IDE 2.2.1
  2. Izvelciet iepriekš norādīto ZIP uz MyDocuments/Processing/Libraries
  3. Tagad atveriet apstrādes IDE un pārbaudiet, vai bibliotēka ir instalēta pareizi vai nē, kā parādīts iepriekš redzamajā attēlā
  4. Pēc tam nokopējiet zemāk esošo kodu apstrādei un nosauciet to pats

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

// izveidots 2005-05-10 ar fjenett

// atjaunināts fjenett 20080605

MySQL dbconnection;

String s = ""; int Rats = 700; int Platums = 1200; garš ID; int žetons; int Summa; int Kopā = 0;

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

int end = 10; // skaitlis 10 ir ASCII linefeed (seriāls.println beigas), vēlāk mēs to meklēsim, lai sadalītu atsevišķus ziņojumus String serial; // deklarēt jaunu virkni ar nosaukumu 'sērija'. Virkne ir rakstzīmju secība (datu tips pazīstams kā "char") Sērijas ports; String curr, iepriekšējais, nosaukums; PFonts f;

anulēts iestatījums ()

{// size (Wwidth, Wheight); izmērs (700, 500); f = createFont ("Arial", 24, taisnība); // šajā piemērā tiek pieņemts, ka // mysql serveri izmantojat lokāli (vietnē "localhost"). // // aizstāt-lietotājvārds--,-parole-- ar savu mysql kontu. // String user = "root"; Stīgu caurlaide = ""; // izmantojamās datu bāzes nosaukums // String database = "IOT_Database"; // izveidotās tabulas nosaukums String table = ""; // izveidot savienojumu ar servera "localhost" datubāzi dbconnection = new MySQL (this, "localhost", datu bāze, lietotājs, caurlaide); ports = jauns seriāls (šis, Serial.list () [0], 9600); // inicializējot objektu, piešķirot portu un pārraides ātrumu (jāatbilst Arduino) port.clear (); // funkcija no sērijveida bibliotēkas, kas izmet pirmo lasījumu, ja mēs sāktu lasīt virknes vidū no Arduino serial = port.readStringUntil (end); // funkcija, kas nolasa virkni no seriālā porta līdz println un pēc tam piešķir virkni mūsu virknes mainīgajam (saukta 'seriāls') serial = null; } void draw () {background (255); textFont (f, 24); aizpildīt (0); teksts ("Kopējā summa Rs:", 400, 400); teksts (kopā, 585, 400); dati (); while (port.available ()> 0) {// kamēr ir dati, kas nāk no seriālā porta, izlasiet tos un saglabājiet serial = port.readStringUntil (beigas); } ja (sērija! = null) {prev = curr; curr = a [1]; a = sadalīts (sērijveida, ','); // jauns masīvs (saukts par “a”), kas saglabā vērtības atsevišķās šūnās (atdalītas ar komatiem, kas norādīti jūsu Arduino programmā), ja ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Iepriekšējais", iepriekšējais); funkcija (); }}}

tukša funkcija ()

{if (dbconnection.connect ()) {// tagad izlasiet to atpakaļ // dbconnection.query ("SELECT * no rfid kur ID ="+a [0]+""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); marķieris = dbconnection.getInt ("marķieris"); Amount = dbconnection.getInt ("Summa"); } ja (marķieris == 0) {println ("Labi"); textFont (f, 54); aizpildīt (255, 0, 0, 160); teksts ("Konstatēts nezināms priekšmets", 50, 300); kavēšanās (2000); } cits if (marķieris == 1) {Kopā = Kopā+Summa; dbconnection.query ("update rfid set token = 2 kur ID ="+a [0]+""); println ("Labi"); textFont (f, 24); aizpildīt (255, 0, 0, 160); // teksts ("Pievienots vienums", 10, 30); kavēšanās (1000); } cits if (marķieris == 2) {Kopā = Kopā-Summa; dbconnection.query ("update rfid set token = 1 kur ID ="+a [0]+""); println ("Labi"); textFont (f, 24); aizpildīt (255, 0, 0, 160); // teksts ("Vienums noņemts", 10, 30); kavēšanās (1000); } cits {} dbconnection.close (); } cits {// savienojums neizdevās! }}

nederīgi dati ()

{int pozīcija = 100; ja (dbconnection.connect ()) {dbconnection.query ("SELECT * no rfid, kur marķieris = 2"); while (dbconnection.next ()) {Name = dbconnection.getString ("Nosaukums"); Amount = dbconnection.getInt ("Summa"); textFont (f, 24); aizpildīt (0, 0, 255, 160); teksts (Vārds, 10, amats); aizpildīt (0, 0, 0, 160); teksts (Summa, 215, pozīcija); pozīcija = pozīcija+30; }} dbconnection.close (); }

5. darbība: programmas izpilde

Programmas izpilde
Programmas izpilde
Programmas izpilde
Programmas izpilde
Programmas izpilde
Programmas izpilde
Programmas izpilde
Programmas izpilde

Palaidiet programmu, noklikšķinot uz pogas Palaist, neaizveriet uznirstošo logu aizvēršana pārtrauks izpildi un zem vaicājuma, lai apskatītu saglabātos datus MySQL …

6. darbība. Secinājums

Vēlos pateikties, ka izlasījāt manu pamācību. Es būtu pateicīgs, ja jūs to uzskatītu par noderīgu un pamestu atzīmi Patīk (iecienītākais) vai pajautātu man kaut ko, jo tas mani motivē darīt šīs pamācības. nekautrējieties uzdot visus jautājumus, kas jums jāzina…

Laimīgu Arduino kodēšanu…

Ieteicams: