วงจรอ่าน RFID โดยใช้ Arduino

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ในบทความนี้เราจะพาชมเทคโนโลยีวงจร RFID เราจะสำรวจวิธีการทำงานของแท็ก RFID และเครื่องอ่านวิธีเชื่อมต่อโมดูล RFID (RC522) กับ Arduino และดึงข้อมูลที่เป็นประโยชน์จากแท็ก RFID

การใช้แท็ก RFID

ฉันแน่ใจว่าทุกคนใช้ RFID เพื่อเข้าถึงความปลอดภัยอย่างน้อยหนึ่งครั้งที่สำนักงานโรงเรียนวิทยาลัยห้องสมุด ฯลฯ



แท็ก / การ์ดที่คุณพกพามีชิปอิเล็กทรอนิกส์ฝังอยู่ชิปจะจัดเก็บข้อมูลประจำตัวของคุณด้วยระบบอิเล็กทรอนิกส์ ซึ่งแตกต่างจากบาร์โค้ดที่การ์ดควรอยู่ในแนวสายตาของเครื่องอ่าน RFID สามารถวางไว้ใกล้กับเครื่องอ่านเพื่ออ่านข้อมูลได้

สมาร์ทการ์ดของเราส่วนใหญ่ใช้เทคโนโลยี RFID แบบพาสซีฟซึ่งหมายความว่าไม่จำเป็นต้องใช้พลังงานในการอ่านข้อมูลจากการ์ด เครื่องอ่านเปิดใช้งานชิป RFID และดึงข้อมูลในเวลาเดียวกัน



แท็กประเภทนี้สามารถอ่านข้อมูลได้ตั้งแต่มิลลิเมตรไปจนถึงไม่กี่ฟุตขึ้นอยู่กับแท็กและแอปพลิเคชัน

แท็ก RFID ที่ใช้งานได้รับการขับเคลื่อนจากภายนอกแท็กประเภทนี้จะส่งข้อมูลได้ไกลถึง 100 ฟุต การใช้พลังงานแบตเตอรี่ได้รับการปรับให้เหมาะสมกับช่วงไม่กี่ปีที่ผ่านมา

ในโครงการนี้เราจะดูเทคโนโลยี RFID แบบพาสซีฟ เรากำลังใช้โมดูลตัวอ่าน RC522 ร่วมกับ arduino เพื่อแยกและแสดงข้อมูล โมดูล RC522 มีจำหน่ายทั่วไปที่เว็บไซต์อีคอมเมิร์ซและร้านขายอุปกรณ์อิเล็กทรอนิกส์ในพื้นที่

ภาพประกอบของโมดูลตัวอ่าน / ตัวเขียน RC522:

โมดูลตัวอ่าน / ตัวเขียน RC522

แท็กประเภทการ์ดและพวงกุญแจ:

แท็กประเภทการ์ดและพวงกุญแจ

ดังที่เราเห็นว่าส่วนหนึ่งของ PCB ถูกล้อมรอบด้วยเส้นทางการดำเนินการในรูปทรงสี่เหลี่ยมบนเครื่องอ่านซึ่งจะสร้างสนามแม่เหล็กไฟฟ้าสำหรับแท็กที่ความถี่ 13.56MHz

EMF ที่สร้างขึ้นจะถูกเลือกโดยแท็กและแปลงเป็นแรงดันไฟฟ้าที่เพียงพอสำหรับแท็กในการทำงานแท็กจะส่งข้อมูลที่จำเป็นในรูปแบบพัลส์กลับไปยังผู้อ่าน ไมโครคอนโทรลเลอร์ในตัวจะถอดรหัสข้อมูล

มันทำงานอย่างไร

วงจร RFID โดยใช้ Arduino

แผนผังนั้นง่ายมากและอธิบายได้ด้วยตัวเองสายจัมเปอร์เพียงไม่กี่เส้นก็เพียงพอที่จะทำโครงการนี้ให้สำเร็จ เราจะจ่ายไฟให้กับ arduino และ RFID ผ่านพอร์ต USB ของคอมพิวเตอร์ แรงดันไฟฟ้าที่ใช้งานของ RC522 คือ 3.3V ห้ามเชื่อมต่อแหล่งจ่ายไฟ 5V เข้ากับโมดูลและจะทำให้ส่วนประกอบบนบอร์ดเสียหาย

ต้นแบบวงจร Arduino RFID:

นั่นคือการเชื่อมต่อฮาร์ดแวร์ทั้งหมดตอนนี้เรามาดูการเข้ารหัสกัน

ก่อนอัปโหลดโปรแกรมให้ดาวน์โหลดไฟล์ไลบรารีจากลิงค์ต่อไปนี้และย้ายไปที่โฟลเดอร์ไลบรารีของ arduino IDE

github.com/miguelbalboa/rfid.git

รหัสโปรแกรม:

//-------------------------Program developed by R.Girish------------------//
#include
#include
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN)
MFRC522::MIFARE_Key key
void setup()
{
Serial.begin(9600)
SPI.begin()
rfid.PCD_Init()
}
void loop() {
if ( ! rfid.PICC_IsNewCardPresent())
return
if ( ! rfid.PICC_ReadCardSerial())
return
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak)
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K)
{
Serial.println(F('Your tag is not of type MIFARE Classic, your card/tag can't be read :('))
return
}
String StrID = ''
for (byte i = 0 i <4 i ++)
{
StrID +=
(rfid.uid.uidByte[i]<0x10? '0' : '')+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?':' : '' )
}
StrID.toUpperCase()
Serial.print('Your card's UID:')
Serial.println(StrID)
rfid.PICC_HaltA ()
rfid.PCD_StopCrypto1 ()
}
//-------------------------Program developed by R.Girish------------------//

ตกลง! โปรแกรมข้างต้นออกแบบมาเพื่อใช้งานอะไร?

โปรแกรมข้างต้นจะแสดง UID ของแท็กในมอนิเตอร์แบบอนุกรมของ IDE เมื่อคุณสแกนบนเครื่องอ่าน UID คือหมายเลขประจำตัวที่ไม่ซ้ำกันของแท็กซึ่งไม่สามารถเปลี่ยนแปลงได้และถูกกำหนดโดยผู้ผลิต

เอาท์พุท:

UID ของการ์ดของคุณ: FA: 4E: B2 // นี่คือตัวอย่าง

หมายเหตุ 1: ค่าสองค่าแต่ละค่าจะถูกคั่นด้วยโคลอนซึ่งทำโดยค่าจริงของโปรแกรมอาจไม่ถูกคั่นด้วยโคลอน แต่เป็นช่องว่าง

หมายเหตุ 2: เฉพาะแท็ก RFID ที่ผลิตโดย NXP เท่านั้นที่สามารถอ่าน / เขียนได้ด้วยการตั้งค่าที่เสนอซึ่งมักใช้กันทั่วไปและในเชิงพาณิชย์

UID ใช้เพื่อจดจำแท็กแท็กที่มาพร้อมกับชุดสามารถจัดเก็บข้อมูลได้มากถึง 1 KB มีการ์ดอื่น ๆ ที่สามารถจัดเก็บข้อมูลได้ถึง 4KB หรือมากกว่านั้น

กระบวนการจัดเก็บและดึงข้อมูลจากแท็กเป็นเรื่องของบทความอื่น
หากคุณมีคำถามเกี่ยวกับโครงการนี้โปรดถามในส่วนความคิดเห็น




ก่อนหน้านี้: วงจรเซ็นเซอร์ความดันบรรยากาศ - รายละเอียดการทำงานและการเชื่อมต่อ ถัดไป: Triac Phase Control โดยใช้ PWM Time Proportional