สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ในคำแนะนำนี้ ฉันจะอธิบายหลักการทำงานพื้นฐานของโมดูล 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)
ตามปกติกับ Instructables ของฉัน ฉันจะอธิบายซอฟต์แวร์ในความคิดเห็นทีละบรรทัดเพื่อให้สามารถอธิบายโค้ดแต่ละส่วนที่เกี่ยวข้องกับฟังก์ชันในส่วนที่เหลือของสคริปต์ได้ แต่สิ่งที่ทำโดยพื้นฐานคือระบุการ์ด อ่านและให้หรือปฏิเสธการเข้าถึง นอกจากนี้ยังเปิดเผยข้อความลับหากสแกนการ์ดที่ถูกต้องสองครั้ง
github.com/belsh/RFID_MEGA/blob/master/mfr….
ขั้นตอนที่ 4: RFID; อธิบาย
ในเครื่องอ่านมีโมดูลความถี่วิทยุและเสาอากาศที่สร้างสนามแม่เหล็กไฟฟ้า ในทางกลับกัน การ์ดมีชิปที่สามารถจัดเก็บข้อมูลและช่วยให้เราแก้ไขได้โดยการเขียนไปยังบล็อกที่มีอยู่มากมาย ซึ่งฉันจะพูดถึงรายละเอียดเพิ่มเติมในหัวข้อถัดไปเนื่องจากอยู่ภายใต้โครงสร้างข้อมูลของ RFID
หลักการทำงานของการสื่อสารด้วย RFID ค่อนข้างตรงไปตรงมา เสาอากาศของเครื่องอ่าน (ในกรณีของเรา เสาอากาศบน RC522 เป็นโครงสร้างแบบขดลวดที่ฝังอยู่บนใบหน้า) ซึ่งจะส่งคลื่นวิทยุออกไป ซึ่งจะกระตุ้นขดลวดในการ์ด/แท็ก (ในระยะใกล้) และนั่น ทรานสปอนเดอร์ (อุปกรณ์ที่รับและปล่อยสัญญาณคลื่นความถี่วิทยุ) จะใช้พลังงานไฟฟ้าที่แปลงแล้วภายในการ์ดเพื่อส่งข้อมูลที่เก็บไว้ในนั้นกลับเป็นคลื่นวิทยุมากขึ้น สิ่งนี้เรียกว่า backscatter ในส่วนถัดไป ฉันจะพูดถึงโครงสร้างข้อมูลเฉพาะที่ใช้โดยการ์ด/แท็กเพื่อจัดเก็บข้อมูลที่เราสามารถอ่านหรือเขียนได้
ขั้นตอนที่ 5: RFID; อธิบาย (2)
หากคุณดูที่ด้านบนของเอาต์พุตสคริปต์ของเราที่อัปโหลดก่อนหน้านี้ คุณจะสังเกตเห็นว่าประเภทของการ์ดคือ PICC 1 KB ซึ่งหมายความว่ามีหน่วยความจำ 1 KB หน่วยความจำนี้ถูกจัดสรรลงในโครงสร้างข้อมูลที่ประกอบด้วย 16 ส่วนซึ่งมี 4 บล็อก โดยแต่ละส่วนมีข้อมูล 16 ไบต์ (16 x 4 x 16 = 1024 = 1 KB) บล็อกสุดท้ายในแต่ละเซกเตอร์ (AKA Sector Trailer) จะถูกสงวนไว้สำหรับการให้สิทธิ์การเข้าถึงแบบอ่าน/ / เขียนกับส่วนที่เหลือของเซกเตอร์ ซึ่งหมายความว่าเรามีเพียง 3 บล็อกแรกเท่านั้นที่จะทำงานด้วยในแง่ของการจัดเก็บและการอ่านข้อมูล
(หมายเหตุ: บล็อกแรกของเซกเตอร์ 0 เรียกว่า Manufacturer Block และมีข้อมูลสำคัญ เช่น ข้อมูลผู้ผลิต การเปลี่ยนบล็อกนี้อาจล็อกการ์ดของคุณอย่างสมบูรณ์ ดังนั้นโปรดใช้ความระมัดระวังเมื่อพยายามเขียนข้อมูลลงไป)
มีความสุขในการซ่อม