Índice:
- Etapa 1: Configurando o Arduino e RFID RC-522 (conexão física)
- Etapa 2: Código Arduino.,
- Etapa 3: Configurando o MySQL
- Etapa 4: Configurando o IDE de processamento
- Etapa 5: Execução do programa
- Etapa 6: Conclusão
Vídeo: Aplicativo de supermercado simples usando RFID RC-522 e Arduino Mega: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
É 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:
- Arduino Mega ou Arduino Uno (usei Mega)
- RFID-RC522
- 7 fios de jumper macho para fêmea
- Alguns cartões de identificação (opcional)
- Biblioteca RFID (deve, link abaixo)
- Servidor Wamp
- Processando IDE 2.2.1 (não use mais do que isso)
- 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)
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
- Instale o servidor Wamp para MySQL e configure-o para armazenar dados (
- Execute wamp serveropen console MySQL
- selecione banco de dados
- 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
- Baixe e instale o IDE de processamento 2.2.1
- Extraia o ZIP fornecido acima para MeusDocumentos / Processamento / Bibliotecas
- Agora abra o IDE de processamento e verifique se a biblioteca está instalada corretamente ou não como na imagem acima
- 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
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:
Como fazer uma IOT simples com aplicativo de telegrama: 5 etapas
Como fazer um IOT simples com o aplicativo Telegram: Na geração atual, a Internet é tudo. A Internet das Coisas desempenha um papel importante no mundo atual. Sem perder muito tempo, podemos passar ao trabalho prático da IOT. Aqui vamos controlar o led e também o
Automação residencial simples (aplicativo Bluetooth personalizado): 6 etapas
Automação residencial simples (aplicativo Bluetooth personalizado): neste tutorial vou mostrar a vocês como construir uma automação residencial simples (ou seja, podemos controlar nossos aparelhos domésticos com nosso smartphone)
Faça um aplicativo simples para o seu smartphone (sem necessidade de codificação): 10 etapas
Faça um aplicativo simples para o seu smartphone (sem necessidade de codificação): ATUALIZAÇÃO: esta técnica está obsoleta, agora existem várias outras maneiras de fazer um aplicativo … isso pode não funcionar mais. Meu primeiro aplicativo publicado está disponível para download no aplicativo Android Comercialize aqui. O seguinte é um tutorial rápido sobre como praticamente qualquer
Cubo de supermercado automatizado com blocos MESH IoT: 4 etapas
Cubo de supermercado automatizado com blocos MESH IoT: Construa seu próprio cubo de supermercado usando blocos MESH IoT. Crie e gerencie uma lista de compras automatizada com o cubo de mercearia DIY. Cada lado do cubo representa seu item de mercearia favorito e você pode rastrear e enviar um alerta de compra com apenas um toque ou
Aplicativo IOS simples para módulos BLE: 4 etapas
Aplicativo IOS simples para módulos BLE: Este instrutivo mostra como você pode criar um aplicativo iOS com funcionalidades muito básicas. Este Instructable não passará por todo o processo de criação de um aplicativo iOS BLE. Isso só dará uma visão geral de alto nível de alguns elementos importantes comi