Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
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:
- Arduino Mega sau Arduino Uno (am folosit Mega)
- RFID-RC522
- 7 fire jumper de la mascul la feminin
- Unele cărți de identitate (opțional)
- Biblioteca RFID (obligatoriu, link mai jos)
- Server Wamp
- Procesarea IDE 2.2.1 (nu utilizați mai mult decât atât)
- 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ă)
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
- Instalați serverul Wamp pentru MySQL și configurați-l pentru a stoca date (
- Rulați serverul wamp deschideți consola MySQL
- selectați baza de date
- 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
- Descărcați și instalați IDE-ul de procesare 2.2.1
- Extrageți codul ZIP de mai sus în MyDocuments / Processing / Libraries
- Acum deschideți IDE de procesare și verificați dacă biblioteca este instalată corect sau nu, ca în imaginea de mai sus
- 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
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:
Automatizare simplă la domiciliu (aplicație Bluetooth personalizată): 6 pași
Automatizare simplă la domiciliu (aplicație Bluetooth personalizată): în acest tutorial vă voi arăta cum să construiți o automatizare casnică simplă (adică putem controla dispozitivele noastre de uz casnic cu smartphone-ul nostru)
Creați o aplicație simplă pentru smartphone-ul dvs. (nu este necesară codificarea): 10 pași
Creați o aplicație simplă pentru smartphone-ul dvs. (nu este nevoie de codare): ACTUALIZARE: Această tehnică este învechită, există acum alte modalități de a crea o aplicație .. este posibil să nu mai funcționeze. Prima mea aplicație publicată este disponibilă pentru descărcare în aplicația Android Piață aici. Următorul este un tutorial rapid despre cât de practic orice
Aplicație IOS simplă pentru module BLE: 4 pași
Aplicație IOS simplă pentru modulele BLE: acest instructable prezintă modul în care puteți crea o aplicație iOS cu funcționalități de bază. Acest instructabil nu va trece prin întregul proces de creare a unei aplicații iOS BLE. Acesta va oferi doar o imagine de ansamblu la nivel înalt a unor elemente importante cu
Lumina reactivă pentru muzică -- Cum să faci lumină reactivă pentru muzică super simplă pentru a face desktop-ul grozav .: 5 pași (cu imagini)
Muzică lumină reactivă || Cum să facem muzică super simplă lumină reactivă pentru a face desktopul grozav. basul care este de fapt semnal audio de joasă frecvență. Este foarte simplu de construit. Vom
Cum să creați o aplicație simplă pentru agenda telefonică C #: 7 pași
Cum se creează o aplicație simplă pentru agenda telefonică C #: Bună, eu sunt Luke, este primul meu instructabil. Vreau să vă arăt cum să creați o aplicație simplă de agendă telefonică în Microsoft Visual Studio folosind C #. Este bine să aveți câteva cunoștințe de bază despre programare înainte de a face acest proiect. Să începem. Noi