สารบัญ:

วิธีใช้โมดูล RFID-RC522 กับ Arduino: 5 ขั้นตอน
วิธีใช้โมดูล RFID-RC522 กับ Arduino: 5 ขั้นตอน

วีดีโอ: วิธีใช้โมดูล RFID-RC522 กับ Arduino: 5 ขั้นตอน

วีดีโอ: วิธีใช้โมดูล RFID-RC522 กับ Arduino: 5 ขั้นตอน
วีดีโอ: สอนวิธีใช้งาน RFID Module RC522 : Arduino RFID Sensor (MFRC522) Tutorial 2024, พฤศจิกายน
Anonim
วิธีใช้โมดูล RFID-RC522 กับ Arduino
วิธีใช้โมดูล RFID-RC522 กับ Arduino

ในคำแนะนำนี้ ฉันจะอธิบายหลักการทำงานพื้นฐานของโมดูล RFID ควบคู่ไปกับแท็กและชิป ฉันจะให้ตัวอย่างสั้นๆ ของโครงการที่ฉันสร้างโดยใช้โมดูล RFID ที่มีไฟ LED RGB ตามปกติกับ Instructables ของฉัน ฉันจะให้ภาพรวมโดยย่อภายในสองสามขั้นตอนแรก และจะปล่อยให้คำอธิบายที่ครอบคลุมและละเอียดในขั้นตอนสุดท้ายสำหรับผู้ที่สนใจ

เสบียง:

RC522 โมดูล RFID + ป้ายและการ์ด -

RGB LED + ตัวต้านทาน 220 โอห์มสามตัว

ขั้นตอนที่ 1: การเชื่อมต่อฮาร์ดแวร์

การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์

ในโปรเจ็กต์นี้ ฉันใช้ Arduino Mega แต่คุณสามารถใช้ไมโครคอนโทรลเลอร์ใดก็ได้ที่คุณต้องการ เนื่องจากนี่เป็นโปรเจ็กต์ทรัพยากรที่ค่อนข้างต่ำ สิ่งเดียวที่จะแตกต่างออกไปคือการเชื่อมต่อพินสำหรับ SCK, SDA, MOSI, MISO และ RST เนื่องจากมีความแตกต่างกันในแต่ละกระดาน หากคุณไม่ได้ใช้ Mega โปรดดูที่ด้านบนสุดของสคริปต์ที่เราจะใช้ในไม่ช้านี้:

อาร์เอฟไอดี:

SDA (สีขาว) - 53

SCK (สีส้ม) - 52

MOSI (สีเหลือง) - 51

มิโซะ (สีเขียว) - 50

RST (สีน้ำเงิน) - 5

3.3v - 3.3v

GND - GND

(หมายเหตุ: แม้ว่าเครื่องอ่านจะต้องการ 3.3V อย่างเคร่งครัด แต่พินมีความทนทาน 5V ซึ่งช่วยให้เราสามารถใช้โมดูลนี้กับ Arduinos และไมโครคอนโทรลเลอร์ 5V DIO อื่น ๆ ได้)

ไฟ LED RGB:

แคโทดสีแดง (สีม่วง) - 8

GND - GND

กรีนแคโทด (สีเขียว) - 9

บลูแคโทด (สีน้ำเงิน) - 10

ขั้นตอนที่ 2: ซอฟต์แวร์

ซอฟต์แวร์
ซอฟต์แวร์

ตอนนี้เข้าสู่ซอฟต์แวร์

ขั้นแรก เราต้องติดตั้งไลบรารี MFRC522 เพื่อให้สามารถรับ เขียน และประมวลผลข้อมูล RFID ได้ ลิงก์ github คือ: https://github.com/miguelbalboa/rfid แต่คุณสามารถติดตั้งผ่านตัวจัดการไลบรารีใน Arduino IDE หรือบน PlatformIO ได้ ก่อนที่เราจะสามารถสร้างโปรแกรมแบบกำหนดเองเพื่อจัดการและประมวลผลข้อมูล RFID ได้ อันดับแรก เราต้องรับ UID จริงสำหรับการ์ดและแท็กของเราก่อน เพื่อที่เราต้องอัปโหลดภาพร่างนี้:

(Arduino IDE: ตัวอย่าง > MFRC522 > DumpInfo)

(PlatformIO: หน้าแรก PIO > ไลบรารี > ติดตั้งแล้ว > MFRC522 > ตัวอย่าง > DumpInfo)

สิ่งที่ร่างนี้ทำคือการดึงข้อมูลทั้งหมดที่มีอยู่ในการ์ด รวมถึง UID ในรูปแบบเลขฐานสิบหก ตัวอย่างเช่น UID ของการ์ดของฉันคือ 0x72 0x7D 0xF5 0x1D (ดูรูป) โครงสร้างข้อมูลที่พิมพ์ออกมาที่เหลือคือข้อมูลที่มีอยู่ในการ์ดที่เราอ่านหรือเขียนได้ ฉันจะไปในเชิงลึกมากขึ้นในส่วนสุดท้าย

ขั้นตอนที่ 3: ซอฟต์แวร์ (2)

ซอฟต์แวร์ (2)
ซอฟต์แวร์ (2)

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

github.com/belsh/RFID_MEGA/blob/master/mfr….

ขั้นตอนที่ 4: RFID; อธิบาย

อาร์เอฟไอดี; อธิบาย
อาร์เอฟไอดี; อธิบาย

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

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

ขั้นตอนที่ 5: RFID; อธิบาย (2)

อาร์เอฟไอดี; อธิบาย (2)
อาร์เอฟไอดี; อธิบาย (2)

หากคุณดูที่ด้านบนของเอาต์พุตสคริปต์ของเราที่อัปโหลดก่อนหน้านี้ คุณจะสังเกตเห็นว่าประเภทของการ์ดคือ PICC 1 KB ซึ่งหมายความว่ามีหน่วยความจำ 1 KB หน่วยความจำนี้ถูกจัดสรรลงในโครงสร้างข้อมูลที่ประกอบด้วย 16 ส่วนซึ่งมี 4 บล็อก โดยแต่ละส่วนมีข้อมูล 16 ไบต์ (16 x 4 x 16 = 1024 = 1 KB) บล็อกสุดท้ายในแต่ละเซกเตอร์ (AKA Sector Trailer) จะถูกสงวนไว้สำหรับการให้สิทธิ์การเข้าถึงแบบอ่าน/ / เขียนกับส่วนที่เหลือของเซกเตอร์ ซึ่งหมายความว่าเรามีเพียง 3 บล็อกแรกเท่านั้นที่จะทำงานด้วยในแง่ของการจัดเก็บและการอ่านข้อมูล

(หมายเหตุ: บล็อกแรกของเซกเตอร์ 0 เรียกว่า Manufacturer Block และมีข้อมูลสำคัญ เช่น ข้อมูลผู้ผลิต การเปลี่ยนบล็อกนี้อาจล็อกการ์ดของคุณอย่างสมบูรณ์ ดังนั้นโปรดใช้ความระมัดระวังเมื่อพยายามเขียนข้อมูลลงไป)

มีความสุขในการซ่อม

แนะนำ: