Taula de continguts:

Aplicació senzilla de supermercat amb RFID RC-522 i Arduino Mega: 6 passos
Aplicació senzilla de supermercat amb RFID RC-522 i Arduino Mega: 6 passos

Vídeo: Aplicació senzilla de supermercat amb RFID RC-522 i Arduino Mega: 6 passos

Vídeo: Aplicació senzilla de supermercat amb RFID RC-522 i Arduino Mega: 6 passos
Vídeo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Desembre
Anonim
Aplicació senzilla de supermercat amb RFID RC-522 i Arduino Mega
Aplicació senzilla de supermercat amb RFID RC-522 i Arduino Mega

És bo tornar-vos a veure, aquí, en un altre tutorial, aquí us ajudaré a crear una senzilla aplicació de supermercat amb RFID RC-522 i Arduino amb Processament per crear una interfície gràfica d’usuari senzilla.

Nota: no executeu el monitor sèrie Arduino mentre s'executa el codi de processament perquè es produirà un conflicte de ports ja que tots dos han d'utilitzar el mateix port

Necessites:

  1. Arduino Mega o Arduino Uno (he utilitzat Mega)
  2. RFID-RC522
  3. 7 cables de pont masculí a femení
  4. Alguns DNI (opcional)
  5. Biblioteca RFID (obligatori, enllaç a continuació)
  6. Servidor Wamp
  7. Processament IDE 2.2.1 (no utilitzeu més que això)
  8. Biblioteca BezierSQLib-0.2.0 per al seu processament (descarregar l'enllaç següent)

A continuació, descarregueu la biblioteca RFID de sota i afegiu-la al vostre IDE Arduino fent clic a Sketch-> Include Library-> Add. Zip Library al menú de fitxers

Pas 1: Configuració d'Arduino i RFID RC-522 (connexió física)

Configuració d'Arduino i RFID RC-522 (connexió física)
Configuració d'Arduino i RFID RC-522 (connexió física)

simplement connecteu l'arduino amb RFID-RC522 tal com es mostra a la imatge anterior.

Pin Out per a Uno / Nano i Mega

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

Pas 2: Codi Arduino.,

Copieu el codi següent i pengeu-lo al vostre Arduino

/ * PINOUT: M5DUL 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 * / / * Inclou la biblioteca estàndard Arduino SPI * / #include / * Inclou la biblioteca RFID * / #include

/ * Definiu el DIO utilitzat per als pins SDA (SS) i RST (reset). * /

#define SDA_DIO 9 #define RESET_DIO 8

/ * Creeu una instància de la biblioteca RFID * /

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

configuració nul·la ()

{Serial.begin (9600); / * Activeu la interfície SPI * / SPI.begin (); / * Inicialitzeu el lector RFID * / RC522.init (); }

bucle buit ()

{/ * Comptador de bucle temporal * / byte i;

/ * S'ha detectat una targeta? * /

if (RC522.isCard ()) {/ * Si és així, obteniu el seu número de sèrie * / RC522.readCardSerial ();

/ * Envieu el número de sèrie a la UART * / per a (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum, HEX); } Serial.print (","); Serial.print (lector ++); Serial.println (); } retard (1000); }

Pas 3: Configuració de MySQL

Configuració de MySQL
Configuració de MySQL
  1. Instal·leu el servidor Wamp per a MySQL i configureu-lo per emmagatzemar dades (
  2. Executeu la consola MySQL de servidor wamp
  3. seleccioneu la base de dades
  4. A continuació, creeu la taula per a les vostres dades

crear taula rfid (ID int (8), token int (1), Nom varchar (20), Quantitat int (4));

Ara vegeu aquest enllaç per obtenir informació sobre com obtenir el valor de l’etiqueta RFID i, a continuació, utilitzeu el codi següent per inserir dades. No oblideu substituir el valor d’identificació pel valor de l’etiqueta RFID.

inseriu en valors RFID (3756178, 1, "Llapis", 20);

utilitzeu el valor de token com a 1 de manera que després de llegir el valor de l’etiqueta per primera vegada canviarà automàticament a 2, no utilitzeu 0 com a valor de testimoni quan llegiu la targeta que no s’insereix a la base de dades, assignarà 0 i el mostrarà com a targeta desconeguda..

Pas 4: Configuració de l'IDE de processament

Configuració de l'IDE de processament
Configuració de l'IDE de processament
  1. Descarregueu i instal·leu l'IDE de processament 2.2.1
  2. Extreu el codi postal anterior indicat a MyDocuments / Processament / Biblioteques
  3. Ara obriu l'IDE de processament i comproveu que la biblioteca estigui instal·lada correctament o no com a la imatge anterior
  4. A continuació, copieu el codi següent al processament i nomeneu-lo pel vostre compte

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

// creat el 2005-05-05 per fjenett

// actualitzat fjenett 20080605

Connexió db MySQL;

Cadena s = ""; int Pes = 700; int Amplada = 1200; identificació llarga; int token; int Quantitat; int Total = 0;

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

int final = 10; // el número 10 és ASCII per linefeed (final de serial.println), més endavant cercarem això per trencar missatges individuals Cadena serial; // declarar una nova cadena anomenada "sèrie". Una cadena és una seqüència de caràcters (tipus de dades coneguts com a "char") Port sèrie; String curr, prev, Nom; PFont f;

configuració nul·la ()

{// mida (amplada, pes); mida (700, 500); f = createFont ("Arial", 24, cert); // aquest exemple suposa que executeu el // servidor mysql localment (a "localhost"). // // substituïu --username--, --password-- pel vostre compte mysql. // String user = "root"; String pass = ""; // nom de la base de dades a utilitzar // String database = "IOT_Database"; // nom de la taula que es crearà Taula de cadenes = ""; // connectar-se a la base de dades del servidor "localhost" dbconnection = MySQL nou (això, "localhost", base de dades, usuari, pass); port = new Serial (this, Serial.list () [0], 9600); // inicialitzar l’objecte assignant un port i una velocitat de transmissió (ha de coincidir amb la d’Arduino) port.clear (); // funció de la biblioteca de sèries que llança la primera lectura, en cas que comencem a llegir al centre d'una cadena d'Arduino serial = port.readStringUntil (final); // funció que llegeix la cadena des del port sèrie fins a imprimir i, a continuació, assigna la cadena a la nostra variable de cadena (anomenada 'serial') serial = null; } void draw () {background (255); textFont (f, 24); omplir (0); text ("Import total Rs:", 400, 400); text (total, 585, 400); data (); while (port.available ()> 0) {// sempre que hi hagi dades provinents del port sèrie, llegeix-les i emmagatzema-les serial = port.readStringUntil (final); } if (sèrie! = nul) {prev = curr; curr = a [1]; a = split (serial, ','); // una nova matriu (anomenada 'a') que emmagatzema valors en cel·les separades (separades per comes especificades al programa Arduino) si ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Anterior", prev); function (); }}}

funció buida ()

{if (dbconnection.connect ()) {// ara el torneu a llegir // dbconnection.query ("SELECT * de rfid on ID =" + a [0] + ""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("testimoni"); Quantitat = dbconnection.getInt ("Quantitat"); } if (token == 0) {println ("Ok"); textFont (f, 54); farcit (255, 0, 0, 160); text ("Element desconegut detectat", 50, 300); endarreriment (2000); } else if (testimoni == 1) {Total = Total + Import; dbconnection.query ("actualitza el símbol de rfid establert = 2 on ID =" + a [0] + ""); println ("Ok"); textFont (f, 24); farciment (255, 0, 0, 160); // text ("Article afegit", 10, 30); retard (1000); } else if (testimoni == 2) {Total = Import-total; dbconnection.query ("actualitza el símbol de rfid establert = 1 on ID =" + a [0] + ""); println ("Ok"); textFont (f, 24); farcit (255, 0, 0, 160); // text ("Article eliminat", 10, 30); retard (1000); } else {} dbconnection.close (); } else {// connexió fallida! }}

dades nul·les ()

{int posició = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * de rfid on token = 2"); while (dbconnection.next ()) {Name = dbconnection.getString ("Nom"); Quantitat = dbconnection.getInt ("Quantitat"); textFont (f, 24); farcit (0, 0, 255, 160); text (nom, 10, posició); omplir (0, 0, 0, 160); text (Quantitat, 215, posició); posició = posició + 30; }} dbconnection.close (); }

Pas 5: execució del programa

Execució del programa
Execució del programa
Execució del programa
Execució del programa
Execució del programa
Execució del programa
Execució del programa
Execució del programa

Executeu el programa fent clic al botó d'execució i no tanqueu el tancament de la finestra emergent que s'aturarà l'execució i, a continuació, feu una consulta per veure les dades emmagatzemades a MySQL …

Pas 6: Conclusió

M’agradaria donar-vos les gràcies per llegir el meu tutorial. Agrairia que el trobéssiu útil i deixés un comentari (favorit) o em demaneu alguna cosa, ja que em manté motivat per fer aquests instructius. no dubteu a fer qualsevol pregunta que necessiteu saber …

Codificació feliç Arduino …

Recomanat: