Índice:

Aplicativo de supermercado simples usando RFID RC-522 e Arduino Mega: 6 etapas
Aplicativo de supermercado simples usando RFID RC-522 e Arduino Mega: 6 etapas

Vídeo: Aplicativo de supermercado simples usando RFID RC-522 e Arduino Mega: 6 etapas

Vídeo: Aplicativo de supermercado simples usando RFID RC-522 e Arduino Mega: 6 etapas
Vídeo: Cores Aleatórias em Matriz de LEDs - Logicando 2024, Julho
Anonim
Aplicativo de supermercado simples usando RFID RC-522 e Arduino Mega
Aplicativo de supermercado simples usando RFID RC-522 e Arduino Mega

É bom ver vocês novamente aqui em meu outro tutorial, aqui vou ajudá-los a criar um aplicativo de supermercado simples usando RFID RC-522 e Arduino com Processing para criar GUI simples.

Nota: não execute o monitor serial do Arduino durante a execução do código de processamento porque ocorrerá um conflito de porta, já que ambos precisam usar a mesma porta

Você precisa:

  1. Arduino Mega ou Arduino Uno (usei Mega)
  2. RFID-RC522
  3. 7 fios de jumper macho para fêmea
  4. Alguns cartões de identificação (opcional)
  5. Biblioteca RFID (deve, link abaixo)
  6. Servidor Wamp
  7. Processando IDE 2.2.1 (não use mais do que isso)
  8. Biblioteca BezierSQLib-0.2.0 para processamento (link de download abaixo)

Em seguida, baixe a biblioteca RFID abaixo e adicione-a ao seu Arduino IDE clicando em Sketch-> Incluir biblioteca-> Adicionar biblioteca. Zip no menu de arquivo

Etapa 1: Configurando o Arduino e RFID RC-522 (conexão física)

Configurando Arduino e RFID RC-522 (conexão física)
Configurando Arduino e RFID RC-522 (conexão física)

simplesmente conecte o arduino com RFID-RC522 conforme mostrado na imagem acima. Aviso: forneça apenas 3,3 V, caso contrário o módulo irá queimar

Pin Out para Uno / Nano e Mega

MÓDULO 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

Etapa 2: Código Arduino.,

Copie o código abaixo e carregue-o no seu Arduino

/ * PINOUT: RC522 MÓDULO 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,3 V 3,3 V 3,3 V * / / * Inclui a biblioteca Arduino SPI padrão * / #include / * Inclui a biblioteca RFID * / #include

/ * Defina o DIO usado para os pinos SDA (SS) e RST (reset). * /

#define SDA_DIO 9 #define RESET_DIO 8

/ * Crie uma instância da biblioteca RFID * /

RFID RC522 (SDA_DIO, RESET_DIO); leitor interno = 0;

void setup ()

{Serial.begin (9600); / * Habilita a interface SPI * / SPI.begin (); / * Inicialize o leitor RFID * / RC522.init (); }

void loop ()

{/ * Contador de loop temporário * / byte i;

/ * Foi detectada uma placa? * /

if (RC522.isCard ()) {/ * Se sim, obtenha seu número de série * / RC522.readCardSerial ();

/ * Envie o número de série para o UART * / para (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum, HEX); } Serial.print (","); Serial.print (leitor ++); Serial.println (); } atraso (1000); }

Etapa 3: Configurando o MySQL

Configurando o MySQL
Configurando o MySQL
  1. Instale o servidor Wamp para MySQL e configure-o para armazenar dados (
  2. Execute wamp serveropen console MySQL
  3. selecione banco de dados
  4. Em seguida, crie a tabela para seus dados

criar tabela rfid (ID int (8), token int (1), Nome varchar (20), Quantidade int (4));

Agora veja este link para saber como obter o valor da sua etiqueta RFID e, em seguida, use o código abaixo para inserir os dados. Não se esqueça de substituir o valor da ID pelo valor da sua etiqueta RFID

inserir em valores rfid (3756178, 1, 'Pencil', 20);

use o valor do token como 1 para que depois de ler o valor do tag pela primeira vez ele mude automaticamente para 2, não use 0 para o valor do token ao ler o cartão que não está inserido no banco de dados, ele atribuirá 0 e exibirá como Cartão desconhecido..

Etapa 4: Configurando o IDE de processamento

Configurando IDE de processamento
Configurando IDE de processamento
  1. Baixe e instale o IDE de processamento 2.2.1
  2. Extraia o ZIP fornecido acima para MeusDocumentos / Processamento / Bibliotecas
  3. Agora abra o IDE de processamento e verifique se a biblioteca está instalada corretamente ou não como na imagem acima
  4. Em seguida, copie o código abaixo para processamento e nomeie-o de sua preferência

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

// criado em 2005-05-10 por fjenett

// atualizado fjenett 20080605

MySQL dbconnection;

String s = ""; Peso int = 700; largura interna = 1200; ID longo; token int; Int Amount; int Total = 0;

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

fim interno = 10; // o número 10 é ASCII para alimentação de linha (fim de serial.println), mais tarde procuraremos por isso para quebrar mensagens individuais String serial; // declara uma nova string chamada 'serial'. Uma string é uma sequência de caracteres (tipo de dados conhecido como "char") Porta serial; String curr, prev, Name; PFont f;

void setup ()

{// tamanho (largura, peso); tamanho (700, 500); f = createFont ("Arial", 24, verdadeiro); // este exemplo assume que você está executando o // servidor mysql localmente (em "localhost"). // // substitua --username--, --password-- por sua conta mysql. // String user = "root"; String pass = ""; // nome do banco de dados a ser usado // String database = "IOT_Database"; // nome da tabela que será criada String table = ""; // conectar ao banco de dados do servidor "localhost" dbconnection = new MySQL (this, "localhost", database, user, pass); porta = novo Serial (isto, Serial.list () [0], 9600); // inicializar o objeto atribuindo uma porta e taxa de transmissão (deve corresponder à do Arduino) port.clear (); // função da biblioteca serial que gera a primeira leitura, caso tenhamos começado a ler no meio de uma string do Arduino serial = port.readStringUntil (end); // função que lê a string da porta serial até um println e então atribui string à nossa variável de string (chamada 'serial') serial = null; } void draw () {background (255); textFont (f, 24); preencher (0); texto ("Total Amount Rs:", 400, 400); texto (Total, 585, 400); dados(); while (port.available ()> 0) {// enquanto houver dados vindo da porta serial, leia e armazene serial = port.readStringUntil (end); } if (serial! = null) {prev = curr; curr = a [1]; a = divisão (serial, ','); // uma nova matriz (chamada 'a') que armazena valores em células separadas (separadas por vírgulas especificadas em seu programa Arduino) if ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Anterior", anterior); função(); }}}

função void ()

{if (dbconnection.connect ()) {// agora leia novamente // dbconnection.query ("SELECT * from rfid where ID =" + a [0] + ""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("token"); Amount = dbconnection.getInt ("Amount"); } if (token == 0) {println ("Ok"); textFont (f, 54); preencher (255, 0, 0, 160); texto ("Item desconhecido detectado", 50, 300); atraso (2000); } else if (token == 1) {Total = Total + Amount; dbconnection.query ("update rfid set token = 2 onde ID =" + a [0] + ""); println ("Ok"); textFont (f, 24); preencher (255, 0, 0, 160); // text ("Item adicionado", 10, 30); atraso (1000); } else if (token == 2) {Total = Total-Amount; dbconnection.query ("update rfid set token = 1 onde ID =" + a [0] + ""); println ("Ok"); textFont (f, 24); preencher (255, 0, 0, 160); // text ("Item removido", 10, 30); atraso (1000); } else {} dbconnection.close (); } else {// conexão falhou! }}

void data ()

{posição interna = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * de rfid onde token = 2"); while (dbconnection.next ()) {Name = dbconnection.getString ("Nome"); Amount = dbconnection.getInt ("Amount"); textFont (f, 24); preencher (0, 0, 255, 160); texto (nome, 10, posição); preencher (0, 0, 0, 160); texto (quantidade, 215, posição); posição = posição + 30; }} dbconnection.close (); }

Etapa 5: Execução do programa

Executando o Programa
Executando o Programa
Executando o Programa
Executando o Programa
Executando o Programa
Executando o Programa
Executando o Programa
Executando o Programa

Execute o programa clicando no botão Executar, não feche a janela pop-up, fechando irá interromper a execução e a consulta abaixo para visualizar os dados armazenados no MySQL …

Etapa 6: Conclusão

Eu gostaria de agradecer por ler meu tutorial. Eu apreciaria se você achasse útil e deixasse um like (favorito) ou me perguntasse qualquer coisa, pois isso me mantém motivado para fazer esses instructables. sinta-se à vontade para fazer qualquer pergunta que você precise saber …

Feliz codificação Arduino …

Recomendado: