步驟1:設(shè)置Arduino和RFID RC-522(物理連接)

只需將arduino與RFID連接-RC522,如上圖所示。
警告:僅提供3.3V電壓,否則模塊將燒壞
為Uno/Nano和Mega插腳 strong》
RC522 MODULE Uno/Nano MEGA
SDA 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
第2步:Arduino代碼。
復(fù)制以下代碼,然后將其上傳到您的Arduino
/*
PINOUT:
RC522 MODULE Uno/Nano MEGA
SDA 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
*/
/* Include the standard Arduino SPI library */
#include
/* Include the RFID library */
#include
/* Define the DIO used for the SDA (SS) and RST (reset) pins. */
#define SDA_DIO 9
#define RESET_DIO 8
/* Create an instance of the RFID library */
RFID RC522(SDA_DIO, RESET_DIO);
int reader=0;
void setup()
{
Serial.begin(9600);
/* Enable the SPI interface */
SPI.begin();
/* Initialise the RFID reader */
RC522.init();
}
void loop()
{
/* Temporary loop counter */
byte i;
/* Has a card been detected? */
if (RC522.isCard())
{
/* If so then get its serial number */
RC522.readCardSerial();
/* Output the serial number to the UART */
for(i = 0; i 《= 2; i++)
{
Serial.print(RC522.serNum[i],DEC);
//Serial.print(RC522.serNum[i],HEX);
}
Serial.print(“,”);
Serial.print(reader++);
Serial.println();
}
delay(1000);
}
步驟3:設(shè)置MySQL

為MySQL安裝Wamp服務(wù)器并將其配置為存儲數(shù)據(jù)(
運(yùn)行wamp服務(wù)器打開MySQL控制臺
選擇數(shù)據(jù)庫
然后為您的數(shù)據(jù)創(chuàng)建表
create table rfid(ID int(8),token int(1),Name varchar(20),Amount int(4));
現(xiàn)在查看此鏈接以了解如何獲取您的RFID標(biāo)簽值,然后使用以下代碼插入數(shù)據(jù)。不要忘記將ID值替換為您的RFID標(biāo)簽值
insert into rfid values(3756178,1,‘Pencil’,20);
使用令牌值作為 1 ,以便在首次讀取標(biāo)簽值后,它將自動更改為 2 讀取未插入數(shù)據(jù)庫的卡時(shí),不要使用 0 作為令牌值,它將分配0,然后將其顯示為“未知卡”。
步驟4:設(shè)置處理IDE

下載并安裝處理IDE 2.2.1
將上述給定的ZIP提取到MyDocuments/Processing/Libraries
現(xiàn)在打開處理的IDE,并檢查庫是否正確安裝(如上圖所示)
然后復(fù)制以下代碼進(jìn)行處理并自行命名
import de.bezier.data.sql.*;
import processing.serial.*;
//import java.math.BigInteger;
// created 2005-05-10 by fjenett
// updated fjenett 20080605
MySQL dbconnection;
String s=“ ”;
int Wheight=700;
int Wwidth=1200;
long ID;
int token;
int Amount;
int Total=0;
String[] a={“NULL”,“NULL”};
int end = 10; // the number 10 is ASCII for linefeed (end of serial.println), later we will look for this to break up individual messages
String serial; // declare a new string called ‘serial’ 。 A string is a sequence of characters (data type know as “char”)
Serial port;
String curr,prev,Name;
PFont f;
void setup()
{
//size( Wwidth,Wheight );
size(700,500);
f=createFont(“Arial”,24,true);
// this example assumes that you are running the
// mysql server locally (on “l(fā)ocalhost”)。
//
// replace --username--, --password-- with your mysql-account.
//
String user = “root”;
String pass = “”;
// name of the database to use
//
String database = “IOT_Database”;
// name of the table that will be created
String table = “”;
// connect to database of server “l(fā)ocalhost”
dbconnection = new MySQL( this, “l(fā)ocalhost”, database, user, pass );
port = new Serial(this, Serial.list()[0], 9600); // initializing the object by assigning a port and baud rate (must match that of Arduino)
port.clear(); // function from serial library that throws out the first reading, in case we started reading in the middle of a string from Arduino
serial = port.readStringUntil(end); // function that reads the string from serial port until a println and then assigns string to our string variable (called ‘serial’)
serial = null;
}
void draw()
{
background(255);
textFont(f,24);
fill(0);
text(“Total Amount Rs:”,400,400);
text(Total,585,400);
data();
while (port.available() 》 0)
{
//as long as there is data coming from serial port, read it and store it
serial = port.readStringUntil(end);
}
if (serial != null)
{
prev=curr;
curr=a[1];
a = split(serial, ‘,’); //a new array (called ‘a(chǎn)’) that stores values into separate cells (separated by commas specified in your Arduino program)
if((curr).equals(prev))
{
//
}
else
{
//println(“curr”,curr);
//println(“Prev”,prev);
function();
}
}
}
void function()
{
if ( dbconnection.connect() )
{
// now read it back out
//
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);
fill(255,0,0,160);
text(“Unknown Item Detected”,50,300);
delay(2000);
}
else if(token==1)
{
Total=Total+Amount;
dbconnection.query(“update rfid set token=2 where ID=”+a[0]+“” );
println(“Ok”);
textFont(f,24);
fill(255,0,0,160);
//text(“Item Added”,10,30);
delay(1000);
}
else if(token==2)
{
Total=Total-Amount;
dbconnection.query(“update rfid set token=1 where ID=”+a[0]+“” );
println(“Ok”);
textFont(f,24);
fill(255,0,0,160);
//text(“Item Removed”,10,30);
delay(1000);
}
else
{
}
dbconnection.close();
}
else
{
// connection failed !
}
}
void data()
{
int position=100;
if ( dbconnection.connect() )
{
dbconnection.query( “SELECT * from rfid where token=2”);
while (dbconnection.next())
{
Name = dbconnection.getString(“Name”);
Amount = dbconnection.getInt(“Amount”);
textFont(f,24);
fill(0,0,255,160);
text(Name,10,position);
fill(0,0,0,160);
text(Amount,215,position);
position=position+30;
}
}
dbconnection.close();
}
第5步:執(zhí)行程序




通過單擊運(yùn)行按鈕運(yùn)行程序,請關(guān)閉彈出窗口,關(guān)閉窗口將停止執(zhí)行,并在以下查詢中查看在MySQL中存儲的數(shù)據(jù)。..
責(zé)任編輯:wv
-
RFID
+關(guān)注
關(guān)注
392文章
6933瀏覽量
248443 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3345瀏覽量
60323 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
197096
發(fā)布評論請先 登錄
極速入門:AirRC522_1000方案實(shí)現(xiàn)RFID讀卡功能的一鍵集成
恩智浦MFRC522與SI522的性能功耗對比
電動車NFC一鍵啟動(儀表總成、電源鎖)_Ci522
USBISP/USBasp編程器給Atmega32U4下載Arduino bootloader引導(dǎo)程序
讓AIoT創(chuàng)新像“逛超市”一樣簡單!移遠(yuǎn)通信AlgoStore算法超市上線
SI522與恩智浦 RC522 13.56MHZ的刷卡問題
RFID電子標(biāo)簽:讓生活和工作開掛的神奇科技
學(xué)生適合使用的SOLIDWORKS 云應(yīng)用程序
如何用Arduino Nano/UNO R3開發(fā)板給另一個(gè)Arduino IDE不能下載的Arduino Nano/UNO R3開發(fā)板重新燒錄引導(dǎo)程序bootlaoder
阿里展廳同款無人超市技術(shù)解析:RFID與AI視覺如何顛覆零售?
ESP32驅(qū)動MFRC522 RFID模塊讀寫IC卡數(shù)據(jù)
如何使用CYUSB3KIT-003使用GPIO訪問SRAM的應(yīng)用程序?
《ESP32S3 Arduino開發(fā)指南》第二章 Arduino基礎(chǔ)知識
RFID在一卡通系統(tǒng)中的應(yīng)用
怎樣使用RFID RC-522和Arduino創(chuàng)建一個(gè)簡單的超市應(yīng)用程序
評論