Sommario:

Semplice app per supermercati che utilizza RFID RC-522 e Arduino Mega: 6 passaggi
Semplice app per supermercati che utilizza RFID RC-522 e Arduino Mega: 6 passaggi

Video: Semplice app per supermercati che utilizza RFID RC-522 e Arduino Mega: 6 passaggi

Video: Semplice app per supermercati che utilizza RFID RC-522 e Arduino Mega: 6 passaggi
Video: Как создать проект корзины для покупок в торговом центре Auto Billing Mall 2024, Novembre
Anonim
Semplice app per supermercati che utilizza RFID RC-522 e Arduino Mega
Semplice app per supermercati che utilizza RFID RC-522 e Arduino Mega

È bello rivedervi ragazzi qui nel mio altro tutorial, qui vi aiuterò a creare una semplice applicazione da supermercato usando RFID RC-522 e Arduino con Processing per creare una semplice GUI.

Nota: non eseguire il monitor seriale Arduino durante l'esecuzione del codice di elaborazione perché si verificherà un conflitto di porte poiché entrambi devono utilizzare la stessa porta

Hai bisogno:

  1. Arduino Mega o Arduino Uno (ho usato Mega)
  2. RFID-RC522
  3. 7 ponticelli maschio-femmina
  4. Alcune carte d'identità (opzionali)
  5. Libreria RFID (obbligatorio, link sotto)
  6. Wamp server
  7. Elaborazione IDE 2.2.1 (non usare maggiore di quello)
  8. Libreria BezierSQLib-0.2.0 per l'elaborazione (link per il download di seguito)

Quindi scarica la libreria RFID sottostante e aggiungila al tuo IDE Arduino facendo clic su Schizzo-> Includi libreria-> Aggiungi libreria. Zip nel menu file

Passaggio 1: configurazione di Arduino e RFID RC-522 (connessione fisica)

Configurazione di Arduino e RFID RC-522 (connessione fisica)
Configurazione di Arduino e RFID RC-522 (connessione fisica)

è sufficiente collegare l'arduino con RFID-RC522 come mostrato nell'immagine sopra. Attenzione: fornire solo 3,3 V altrimenti il modulo si brucerà

Pin Out per Uno/Nano e Mega

MODULO 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

Passaggio 2: codice Arduino.,

Copia il codice sottostante e caricalo sul tuo 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 */ /* Include la libreria standard Arduino SPI */ #include /* Include la libreria RFID */ #include

/* Definisce il DIO utilizzato per i pin SDA (SS) e RST (reset). */

#define SDA_DIO 9 #define RESET_DIO 8

/* Crea un'istanza della libreria RFID */

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

configurazione nulla()

{ Serial.begin(9600); /* Abilita l'interfaccia SPI */ SPI.begin(); /* Inizializza il lettore RFID */ RC522.init(); }

ciclo vuoto()

{ /* Contatore loop temporaneo */ byte i;

/* È stata rilevata una carta? */

if (RC522.isCard()) { /* In caso affermativo, ottenere il numero di serie */ RC522.readCardSerial();

/* Invia il numero di serie all'UART */ for(i = 0; i <= 2; i++) { Serial.print(RC522.serNum, DEC); //Serial.print(RC522.serNum, HEX); } Serial.print(", "); Serial.print(reader++); Serial.println(); } ritardo(1000); }

Passaggio 3: configurazione di MySQL

Configurazione di MySQL
Configurazione di MySQL
  1. Installa il server Wamp per MySQL e configuralo per archiviare i dati (
  2. Esegui il server wampapri la console MySQL
  3. seleziona database
  4. Quindi crea la tabella per i tuoi dati

crea tabella rfid(ID int(8), token int(1), Nome varchar(20), Amount int(4));

Ora visualizza questo collegamento per sapere come ottenere il valore del tag RFID, quindi utilizza il codice seguente per inserire i dati. Non dimenticare di sostituire il valore ID con il valore del tag RFID

inserire in valori rfid (3756178, 1, 'Matita', 20);

utilizzare il valore del token come 1 in modo che dopo aver letto il valore del tag per la prima volta cambierà automaticamente in 2, non utilizzare 0 per il valore del token durante la lettura della carta che non è inserita nel DB assegnerà 0 quindi lo visualizzerà come Carta sconosciuta..

Passaggio 4: configurazione dell'IDE di elaborazione

Configurazione dell'IDE di elaborazione
Configurazione dell'IDE di elaborazione
  1. Scarica e installa l'IDE di elaborazione 2.2.1
  2. Estrai lo ZIP sopra indicato in MyDocuments/Processing/Libraries
  3. Ora apri l'IDE di elaborazione e controlla che la libreria sia installata correttamente o meno come nell'immagine sopra
  4. Quindi copia il codice sottostante per l'elaborazione e assegnagli un nome personale

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

// creato il 2005-05-10 da fjenett

// aggiornato fjenett 20080605

connessione db MySQL;

Stringa s=" "; int Peso=700; int Larghezza=1200; ID lungo; token int; int Importo; int Totale=0;

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

int fine = 10; // il numero 10 è ASCII per linefeed (fine di serial.println), in seguito lo cercheremo per suddividere i singoli messaggi String serial; // dichiara una nuova stringa chiamata 'serial'. Una stringa è una sequenza di caratteri (il tipo di dati è noto come "char") Porta seriale; Stringa curr, prev, Nome; Carattere f;

configurazione nulla()

{ // dimensione (larghezza, peso); dimensione (700, 500); f=createFont("Arial", 24, true); // questo esempio presuppone che tu stia eseguendo il // server mysql localmente (su "localhost"). // // sostituisci --username--, --password-- con il tuo account mysql. // String utente = "radice"; Stringa pass = ""; // nome del database da utilizzare // String database = "IOT_Database"; // nome della tabella che verrà creata String table = ""; // connettersi al database del server "localhost" dbconnection = new MySQL(this, "localhost", database, user, pass); port = new Serial(this, Serial.list()[0], 9600); // inizializza l'oggetto assegnando una porta e un baud rate (deve corrispondere a quello di Arduino) port.clear(); // funzione da libreria seriale che butta fuori la prima lettura, nel caso iniziassimo a leggere nel mezzo di una stringa da Arduino serial = port.readStringUntil(end); // funzione che legge la stringa dalla porta seriale fino a println e quindi assegna la stringa alla nostra variabile stringa (chiamata 'serial') serial = null; } void draw() { background(255); textFont(f, 24); riempire (0); text("Importo totale Rs:", 400, 400); testo(Totale, 585, 400); dati(); while (port.available() > 0) { //fintanto che ci sono dati provenienti dalla porta seriale, leggili e memorizzali serial = port.readStringUntil(end); } if (serial != null) { prev=curr; curr=a[1]; a = split(seriale, ', '); //un nuovo array (chiamato 'a') che memorizza i valori in celle separate (separate da virgole specificate nel tuo programma Arduino) if((curr).equals(prev)) { // } else { //println("curr ", corrente); //println("Precedente", precedente); funzione(); } } }

funzione nulla()

{ if (dbconnection.connect()) { // ora rileggilo // dbconnection.query("SELECT * from rfid where ID="+a[0]+""); while (dbconnection.next()) { ID = dbconnection.getInt("ID"); token = dbconnection.getInt("token"); Importo = dbconnection.getInt("Importo"); } if(token==0) { println("Ok"); textFont(f, 54); riempimento(255, 0, 0, 160); text("Elemento sconosciuto rilevato", 50, 300); ritardo (2000); } else if(token==1) { Totale=Totale+Importo; dbconnection.query("aggiorna rfid set token=2 dove ID="+a[0]+""); println("Ok"); textFont(f, 24); riempimento(255, 0, 0, 160); //text("Oggetto aggiunto", 10, 30); ritardo(1000); } else if(token==2) { Total=Total-Amount; dbconnection.query("aggiorna rfid set token=1 dove ID="+a[0]+""); println("Ok"); textFont(f, 24); riempimento(255, 0, 0, 160); //text("Elemento rimosso", 10, 30); ritardo(1000); } else { } dbconnection.close(); } else { // connessione non riuscita! } }

dati nulli()

{ int posizione=100; if (dbconnection.connect()) { dbconnection.query("SELECT * from rfid dove token=2"); while (dbconnection.next()) { Nome = dbconnection.getString("Nome"); Importo = dbconnection.getInt("Importo"); textFont(f, 24); riempimento(0, 0, 255, 160); text(Nome, 10, posizione); riempimento(0, 0, 0, 160); testo(importo, 215, posizione); posizione=posizione+30; } } dbconnection.close(); }

Passaggio 5: esecuzione del programma

Esecuzione del programma
Esecuzione del programma
Esecuzione del programma
Esecuzione del programma
Esecuzione del programma
Esecuzione del programma
Esecuzione del programma
Esecuzione del programma

Esegui il programma facendo clic sul pulsante Esegui non chiudere la finestra popup la chiusura interromperà l'esecuzione e sotto la query per visualizzare i dati memorizzati in MySQL …

Passaggio 6: conclusione

Vorrei ringraziarti per aver letto il mio tutorial. Apprezzerei se lo trovassi utile e lasciassi un mi piace (preferito) o mi chiedessi qualcosa in quanto mi tiene motivato a fare queste istruzioni. sentiti libero di fare tutte le domande che hai bisogno di sapere…

Buona codifica Arduino…

Consigliato: