Cuprins:

Aplicație simplă pentru supermarket folosind RFID RC-522 și Arduino Mega: 6 pași
Aplicație simplă pentru supermarket folosind RFID RC-522 și Arduino Mega: 6 pași

Video: Aplicație simplă pentru supermarket folosind RFID RC-522 și Arduino Mega: 6 pași

Video: Aplicație simplă pentru supermarket folosind RFID RC-522 și Arduino Mega: 6 pași
Video: Arduino მეორე საფეხური, #23 გაკვეთილი-bluetooth მოდული 2024, Iulie
Anonim
Aplicație simplă pentru supermarket folosind RFID RC-522 și Arduino Mega
Aplicație simplă pentru supermarket folosind RFID RC-522 și Arduino Mega

Este bine să vă văd din nou aici pe un alt tutorial, aici vă voi ajuta să creați o aplicație simplă de supermarket folosind RFID RC-522 și Arduino cu Procesare pentru a crea o interfață grafică simplă.

Notă: nu rulați monitorul serial Arduino în timp ce rulați codul de procesare, deoarece conflictul de port va apărea, deoarece ambii trebuie să utilizeze același port

Ai nevoie:

  1. Arduino Mega sau Arduino Uno (am folosit Mega)
  2. RFID-RC522
  3. 7 fire jumper de la mascul la feminin
  4. Unele cărți de identitate (opțional)
  5. Biblioteca RFID (obligatoriu, link mai jos)
  6. Server Wamp
  7. Procesarea IDE 2.2.1 (nu utilizați mai mult decât atât)
  8. Biblioteca BezierSQLib-0.2.0 pentru procesare (descărcați linkul de mai jos)

Apoi descărcați biblioteca RFID de mai jos și adăugați-o la IDE-ul dvs. Arduino făcând clic pe Sketch-> Include Library-> Add. Zip Library în meniul de fișiere

Pasul 1: Configurarea Arduino și RFID RC-522 (conexiune fizică)

Configurarea Arduino și RFID RC-522 (conexiune fizică)
Configurarea Arduino și RFID RC-522 (conexiune fizică)

pur și simplu conectați arduino cu RFID-RC522 așa cum se arată în imaginea de mai sus. Atenție: furnizați doar 3.3V, altfel modulul se va arde

Pin Out pentru Uno / Nano și Mega

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

Pasul 2: Cod Arduino.,

Copiați codul de mai jos, apoi încărcați-l pe Arduino

/ * PINOUT: MODULUL RC522 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 * / / * Includeți biblioteca standard Arduino SPI * / #include / * Includeți biblioteca RFID * / #include

/ * Definiți DIO-ul utilizat pentru pinii SDA (SS) și RST (reset). * /

#define SDA_DIO 9 #define RESET_DIO 8

/ * Creați o instanță a bibliotecii RFID * /

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

configurare nulă ()

{Serial.begin (9600); / * Activați interfața SPI * / SPI.begin (); / * Inițializați cititorul RFID * / RC522.init (); }

bucla nulă ()

{/ * Contor buclă temporară * / octet i;

/ * A fost detectat un card? * /

if (RC522.isCard ()) {/ * Dacă da, obțineți numărul său de serie * / RC522.readCardSerial ();

/ * Expediați numărul de serie în UART * / pentru (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum, HEX); } Serial.print (","); Serial.print (cititor ++); Serial.println (); } întârziere (1000); }

Pasul 3: Configurarea MySQL

Configurarea MySQL
Configurarea MySQL
  1. Instalați serverul Wamp pentru MySQL și configurați-l pentru a stoca date (
  2. Rulați serverul wamp deschideți consola MySQL
  3. selectați baza de date
  4. Apoi creați tabelul pentru datele dvs.

creați tabelul rfid (ID int (8), token int (1), Name varchar (20), Amount int (4));

Vizualizați acum acest link pentru a afla cum să obțineți valoarea etichetei dvs. RFID, apoi utilizați codul de mai jos pentru a insera date. Nu uitați să înlocuiți valoarea ID cu valoarea etichetei dvs. RFID

introduceți în valorile RFID (3756178, 1, „Creion”, 20);

utilizați valoarea tokenului ca 1, astfel încât, după citirea valorii etichetei pentru prima dată, se va schimba automat la 2, nu utilizați 0 pentru valoarea tokenului atunci când citiți cardul care nu este inserat în DB, va atribui 0, apoi îl va afișa ca Card necunoscut..

Pasul 4: Configurarea procesării IDE

Configurarea procesării IDE
Configurarea procesării IDE
  1. Descărcați și instalați IDE-ul de procesare 2.2.1
  2. Extrageți codul ZIP de mai sus în MyDocuments / Processing / Libraries
  3. Acum deschideți IDE de procesare și verificați dacă biblioteca este instalată corect sau nu, ca în imaginea de mai sus
  4. Apoi copiați codul de mai jos în procesare și denumiți-l propriul dvs.

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

// creat 2005-05-10 de fjenett

// actualizat fjenett 20080605

Conexiune db MySQL;

String s = ""; int Greutate = 700; lățimea int = 1200; ID lung; jeton int; int Suma; int Total = 0;

Șirul a = {"NULL", "NULL"};

int end = 10; // numărul 10 este ASCII pentru linefeed (sfârșitul serial.println), mai târziu vom căuta acest lucru pentru a rupe mesajele individuale String serial; // declarați un nou șir numit „serial”. Un șir este o secvență de caractere (tipul de date cunoscut ca „char”) Port serial; String curr, prev, Nume; PFont f;

configurare nulă ()

{// dimensiune (lățime, greutate); dimensiune (700, 500); f = createFont ("Arial", 24, adevărat); // acest exemplu presupune că rulați // serverul mysql local (pe „localhost”). // // înlocuiți --username--, --password-- cu contul dvs. mysql. // String user = "root"; String pass = ""; // numele bazei de date de utilizat // String database = "IOT_Database"; // numele tabelului care va fi creat String table = ""; // conectați-vă la baza de date a serverului "localhost" dbconnection = MySQL nou (acesta, "localhost", bază de date, utilizator, trecere); port = Serial nou (acesta, Serial.list () [0], 9600); // inițializarea obiectului prin atribuirea unui port și a ratei de transmisie (trebuie să se potrivească cu cea a Arduino) port.clear (); // funcție din biblioteca serial care aruncă prima lectură, în cazul în care am început să citim în mijlocul unui șir din Arduino serial = port.readStringUntil (end); // funcție care citește șirul de la portul serial până la println și apoi atribuie șirul variabilei noastre de șir (numită „serial”) serial = nul; } void draw () {fundal (255); textFont (f, 24); umplere (0); text („Suma totală Rs:”, 400, 400); text (Total, 585, 400); date(); while (port.available ()> 0) {// atâta timp cât există date provenind din portul serial, citiți-le și stocați-le serial = port.readStringUntil (end); } if (serial! = nul) {prev = curr; curr = a [1]; a = split (serial, ','); // o nouă matrice (numită 'a') care stochează valori în celule separate (separate prin virgule specificate în programul dvs. Arduino) dacă ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Prev", prev); funcţie(); }}}

funcție nulă ()

{if (dbconnection.connect ()) {// acum citiți-l înapoi // dbconnection.query ("SELECT * din rfid unde ID =" + a [0] + ""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("token"); Suma = dbconnection.getInt ("Suma"); } if (token == 0) {println ("Ok"); textFont (f, 54); umplere (255, 0, 0, 160); text („Element necunoscut detectat”, 50, 300); întârziere (2000); } else if (token == 1) {Total = Total + Suma; dbconnection.query ("actualizați rfid set token = 2 unde ID =" + a [0] + ""); println („Ok”); textFont (f, 24); umplere (255, 0, 0, 160); // text („Element adăugat”, 10, 30); întârziere (1000); } else if (token == 2) {Total = Total-Suma; dbconnection.query ("actualizați rfid set token = 1 unde ID =" + a [0] + ""); println („Ok”); textFont (f, 24); umplere (255, 0, 0, 160); // text („Element eliminat”, 10, 30); întârziere (1000); } else {} dbconnection.close (); } else {// conexiunea a eșuat! }}

date nule ()

{poziția int = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * din rfid unde token = 2"); while (dbconnection.next ()) {Nume = dbconnection.getString ("Nume"); Suma = dbconnection.getInt ("Suma"); textFont (f, 24); umplutură (0, 0, 255, 160); text (Nume, 10, poziție); umplere (0, 0, 0, 160); text (Suma, 215, poziție); poziție = poziție + 30; }} dbconnection.close (); }

Pasul 5: Executarea programului

Executarea programului
Executarea programului
Executarea programului
Executarea programului
Executarea programului
Executarea programului
Executarea programului
Executarea programului

Rulați programul făcând clic pe butonul Executare nu închideți fereastra pop-up închiderea va opri executarea și mai jos interogarea pentru a vizualiza datele stocate în MySQL …

Pasul 6: Concluzie

Aș dori să vă mulțumesc pentru că mi-ați citit tutorialul. Aș aprecia dacă l-ați găsi util și renunțați la un like (favorit) sau mă întrebați ceva, deoarece mă ține motivat să fac aceste instructabile. nu ezitați să puneți orice întrebări pe care trebuie să le cunoașteți …

Happy Coding Arduino …

Recomandat: