Tabla de contenido:

Aplicación de supermercado simple con RFID RC-522 y Arduino Mega: 6 pasos
Aplicación de supermercado simple con RFID RC-522 y Arduino Mega: 6 pasos

Video: Aplicación de supermercado simple con RFID RC-522 y Arduino Mega: 6 pasos

Video: Aplicación de supermercado simple con RFID RC-522 y Arduino Mega: 6 pasos
Video: Sistema de Control de Asistencia con Rfid 2024, Noviembre
Anonim
Aplicación de supermercado simple con RFID RC-522 y Arduino Mega
Aplicación de supermercado simple con RFID RC-522 y Arduino Mega

Es bueno verlos de nuevo aquí en mi otro tutorial, aquí voy a ayudarlos a crear una aplicación de supermercado simple usando RFID RC-522 y Arduino con procesamiento para crear una GUI simple.

Nota: no ejecute el monitor serial Arduino mientras ejecuta el código de procesamiento porque se producirá un conflicto de puerto ya que ambos tienen que usar el mismo puerto

Necesitas:

  1. Arduino Mega o Arduino Uno (yo usé Mega)
  2. RFID-RC522
  3. 7 cables de puente macho a hembra
  4. Algunas tarjetas de identificación (opcional)
  5. Biblioteca RFID (obligatorio, enlace a continuación)
  6. Servidor wamp
  7. Procesando IDE 2.2.1 (no use más que eso)
  8. Biblioteca BezierSQLib-0.2.0 para procesamiento (enlace de descarga a continuación)

Luego descargue la biblioteca RFID a continuación y agréguela a su IDE de Arduino haciendo clic en Sketch-> Incluir biblioteca-> Agregar biblioteca. Zip en el menú de archivo

Paso 1: Configuración de Arduino y RFID RC-522 (Conexión física)

Configuración de Arduino y RFID RC-522 (conexión física)
Configuración de Arduino y RFID RC-522 (conexión física)

simplemente conecte el arduino con RFID-RC522 como se muestra en la imagen de arriba. Advertencia: suministre solo 3.3V, de lo contrario el módulo se quemará

Pin Out para Uno / Nano y Mega

RC522 MÓDULO Uno / Nano MEGASDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ N / A N / A TIERRA TIERRA TIERRA RST D9 D8 3.3V 3.3V 3.3V

Paso 2: Código Arduino.,

Copie el siguiente código y luego cárguelo en su Arduino

/ * PINOUT: RC522 MODULE 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 * / / * Incluye la biblioteca estándar Arduino SPI * / #include / * Incluye la biblioteca RFID * / #include

/ * Defina el DIO utilizado para los pines SDA (SS) y RST (reinicio). * /

#define SDA_DIO 9 #define RESET_DIO 8

/ * Crea una instancia de la biblioteca RFID * /

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

configuración vacía ()

{Serial.begin (9600); / * Habilita la interfaz SPI * / SPI.begin (); / * Inicializar el lector RFID * / RC522.init (); }

bucle vacío ()

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

/ * ¿Se ha detectado una tarjeta? * /

if (RC522.isCard ()) {/ * Si es así, obtenga su número de serie * / RC522.readCardSerial ();

/ * Envía el número de serie a la UART * / para (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum, HEX); } Serial.print (","); Serial.print (lector ++); Serial.println (); } retraso (1000); }

Paso 3: Configurar MySQL

Configuración de MySQL
Configuración de MySQL
  1. Instale el servidor Wamp para MySQL y configúrelo para almacenar datos (
  2. Ejecute el servidor wamp, abra la consola MySQL
  3. seleccionar base de datos
  4. Luego crea la tabla para tus datos

crear tabla rfid (ID int (8), token int (1), Nombre varchar (20), Monto int (4));

Ahora vea este enlace para aprender cómo obtener el valor de su etiqueta RFID y luego use el siguiente código para insertar datos. No olvide reemplazar el valor de identificación con el valor de su etiqueta RFID.

insertar en valores rfid (3756178, 1, 'Lápiz', 20);

use el valor del token como 1 para que después de leer el valor de la etiqueta por primera vez cambie automáticamente a 2, no use 0 para el valor del token cuando lea la tarjeta que no está insertada en la base de datos, asignará 0 y luego la mostrará como Tarjeta desconocida..

Paso 4: Configuración del IDE de procesamiento

Configuración de IDE de procesamiento
Configuración de IDE de procesamiento
  1. Descargue e instale el IDE de procesamiento 2.2.1
  2. Extraiga el ZIP dado anteriormente a MyDocuments / Processing / Libraries
  3. Ahora abra el IDE de procesamiento y verifique que la biblioteca esté instalada correctamente o no como en la imagen de arriba
  4. Luego, copie el siguiente código para procesarlo y nómbrelo por su cuenta

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

// creado 2005-05-10 por fjenett

// actualizado fjenett 20080605

Conexión de base de datos MySQL;

String s = ""; int Wheight = 700; int Wwidth = 1200; identificación larga; int token; int Cantidad; int Total = 0;

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

int end = 10; // el número 10 es ASCII para linefeed (final de serial.println), luego lo buscaremos para dividir mensajes individuales String serial; // declara una nueva cadena llamada 'serial'. Una cadena es una secuencia de caracteres (el tipo de datos se conoce como "char") Puerto serie; String curr, prev, Name; PFont f;

configuración vacía ()

{// tamaño (ancho, peso); tamaño (700, 500); f = createFont ("Arial", 24, verdadero); // este ejemplo asume que está ejecutando el // servidor mysql localmente (en "localhost"). // // reemplaza --username--, --password-- con tu cuenta mysql. // String user = "root"; String pass = ""; // nombre de la base de datos a utilizar // String database = "IOT_Database"; // nombre de la tabla que se creará String table = ""; // conectarse a la base de datos del servidor "localhost" dbconnection = new MySQL (this, "localhost", database, user, pass); puerto = nuevo Serial (este, Serial.list () [0], 9600); // inicializando el objeto asignando un puerto y una velocidad en baudios (debe coincidir con la de Arduino) port.clear (); // función de la biblioteca serial que arroja la primera lectura, en caso de que comenzamos a leer en medio de una cadena de Arduino serial = port.readStringUntil (end); // función que lee la cadena desde el puerto serial hasta un println y luego asigna una cadena a nuestra variable de cadena (llamada 'serial') serial = null; } vacío dibujar () {fondo (255); textFont (f, 24); llenar (0); text ("Cantidad total Rs:", 400, 400); texto (Total, 585, 400); datos(); while (port.available ()> 0) {// siempre que haya datos provenientes del puerto serie, léalos y almacénelos serial = port.readStringUntil (end); } if (serial! = null) {prev = curr; curr = a [1]; a = split (serial, ','); // una nueva matriz (llamada 'a') que almacena valores en celdas separadas (separadas por comas especificadas en su programa Arduino) if ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Anterior", anterior); función(); }}}

función de vacío ()

{if (dbconnection.connect ()) {// ahora vuelve a leerlo // dbconnection.query ("SELECT * from rfid where ID =" + a [0] + ""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("token"); Cantidad = dbconnection.getInt ("Cantidad"); } if (token == 0) {println ("Ok"); textFont (f, 54); llenar (255, 0, 0, 160); texto ("Elemento desconocido detectado", 50, 300); retraso (2000); } else if (token == 1) {Total = Total + Importe; dbconnection.query ("actualizar rfid set token = 2 donde ID =" + a [0] + ""); println ("Aceptar"); textFont (f, 24); llenar (255, 0, 0, 160); // texto ("Elemento agregado", 10, 30); retraso (1000); } else if (token == 2) {Total = Total-Amount; dbconnection.query ("actualizar rfid set token = 1 donde ID =" + a [0] + ""); println ("Aceptar"); textFont (f, 24); llenar (255, 0, 0, 160); // texto ("Elemento eliminado", 10, 30); retraso (1000); } else {} dbconnection.close (); } else {// ¡la conexión falló! }}

anular datos ()

{int posición = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECCIONAR * de rfid donde token = 2"); while (dbconnection.next ()) {Nombre = dbconnection.getString ("Nombre"); Cantidad = dbconnection.getInt ("Cantidad"); textFont (f, 24); llenar (0, 0, 255, 160); texto (nombre, 10, posición); llenar (0, 0, 0, 160); texto (Cantidad, 215, posición); posición = posición + 30; }} dbconnection.close (); }

Paso 5: Ejecución del programa

Ejecutando el programa
Ejecutando el programa
Ejecutando el programa
Ejecutando el programa
Ejecutando el programa
Ejecutando el programa
Ejecutando el programa
Ejecutando el programa

Ejecute el programa haciendo clic en el botón Ejecutar, no cierre, el cierre de la ventana emergente detendrá la ejecución y la consulta debajo para ver los datos almacenados en MySQL …

Paso 6: Conclusión

Me gustaría agradecerle por leer mi tutorial. Le agradecería que lo encuentre útil y deje un me gusta (favorito) o me pregunte algo, ya que me mantiene motivado para hacer estos instructivos. no dude en hacer cualquier pregunta que necesite saber …

Feliz codificación de Arduino …

Recomendado: