RFID-RC522 Reader Module with Arduino UNO

สำหรับโครงงานนี้เป็นโครงงานเล็กๆ แบบทั่วไป กับการนำโมดูล RFID-RC522 มาควบคุมด้วยบอร์ด Arduino UNO ซึ่งแอดมินคิดว่าน่าจะเป็นประโยชน์กับผู้อ่านกับการนำไปประยุกต์ใช้งาน เช่น ใช้ในการทำระบบความปลอดภัยในบ้าน (Smart home), การจัดเก็บสิ่งของในรูปแบบข้อมูลให้เป็นหมวดหมู่ (Database System) เป็นต้น ซึ่งตัวโมดูล RFID-RC522 จะถูกออกแบบไว้แบบสำเร็จ และสามารถต่อใช้งานเพื่อควบคุมการปิด/เปิด อุปกรณ์ต่างๆ หรืออ่านข้อมูลเข้าไปยังคอมพิวเตอร์สำหรับตรวจสอบและจัดเก็บข้อมูลได้ทันที


รูปที่ 1 และรูปที่ 2 เป็นอุปกรณ์ที่ใช้ในการทดลองสำหรับการต่อโมดูล RFID-RC522 Reader โดยในชุดจะมาพร้อมกับแท็ก RFID ให้ใช้ในการทดลอง 2 ชิ้นแบบการ์ดและแบบเหรียญ เพื่อสังเกตการอ่านข้อมูลที่แตกต่างกัน โดยทั้งนี้เมื่อเราต่อวงจรระหว่างบอร์ด Arduino UNO และโมดูล RFID-RC522 Reader ให้เราโปรแกรมคำสั่งที่ 1 เพื่อเป็นการทดลองในเบื้องต้นก่อนตามที่แสดงข้างล่างนี้
/* Credit Code Arduino by : https://miliohm.com/mfrc522-rfid-reader-with-arduino-tutorial-the-simplest-way-to-read-rfid-tag/ Program Test RFID-RC522 Reader [1] */ #include <SPI.h> #include <RFID.h> #define SS_PIN 10 #define RST_PIN 9 RFID rfid(SS_PIN, RST_PIN); String rfidCard; void setup() { Serial.begin(9600); Serial.println("Starting the RFID Reader..."); SPI.begin(); rfid.init(); } void loop() { if (rfid.isCard()) { if (rfid.readCardSerial()) { rfidCard = String(rfid.serNum[0]) + " " + String(rfid.serNum[1]) + " " + String(rfid.serNum[2]) + " " + String(rfid.serNum[3]); Serial.println(rfidCard); } rfid.halt(); } }
จากโปรแกรมการทดลองที่ 1 (ข้างบน) จะใช้ในการทดลองอ่านแท็ก RFID เบื้องต้นก่อน ทั้งนี้เพื่อเป็นการทดสอบการต่อวงจรให้ถูกต้องและการอ่านค่าที่ได้ โดยเราจะนำค่าที่ได้จากการอ่านแท็กครั้งนี้ ไปใช้ในการทดลองในโปรแกรมที่ 2 เพื่อเป็นการประยุกต์ใช้งานแบบง่ายๆ กันต่อไป

Download Library —-> RFID-RC522 Reader [RFID.h]


ในรูปที่ 4 และรูปที่ 5 เป็นการต่อแอลอีดีเพิ่มติมให้กับบอร์ดควบคุม Arduino UNO เพื่อทำหน้าที่แสดงผล โดยในการทดลองที่ 2 นี้จะเป็นการอ่านค่าแท็ก RFID แล้วจะแสดงผลให้ทราบ เมื่อเป็นแท็กที่เรากำหนดโดยจะให้แอลอีดีสีเขียวติด ในทางตรงข้ามถ้าไม่ใช่แท็กที่กำหนดแอลอีดีสีแดงจะติดนั้นเอง โดยในการทดลองที่ 2 ให้เราใช้การโปรแกรมข้างล่างนี้ ซึ่งเราจะต้องนำค่าแท็กที่อ่านได้มากำหนดในบรรทัด (if (rfidCard == “108 31 154 50”)) นั้นเอง
/* Credit Code Arduino by : https://miliohm.com/mfrc522-rfid-reader-with-arduino-tutorial-the-simplest-way-to-read-rfid-tag/ Program Test RFID-RC522 Reader [2] */ #include <SPI.h> #include <RFID.h> #define SS_PIN 10 #define RST_PIN 9 RFID rfid(SS_PIN, RST_PIN); String rfidCard; void setup() { Serial.begin(9600); Serial.println("Starting the RFID Reader..."); SPI.begin(); rfid.init(); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); } void loop() { if (rfid.isCard()) { if (rfid.readCardSerial()) { rfidCard = String(rfid.serNum[0]) + " " + String(rfid.serNum[1]) + " " + String(rfid.serNum[2]) + " " + String(rfid.serNum[3]); Serial.println(rfidCard); if (rfidCard == "108 31 154 50") { digitalWrite(6, HIGH); delay(1000); digitalWrite(6, LOW); } else { digitalWrite(7, HIGH); delay(1000); digitalWrite(7, LOW); } } rfid.halt(); } }
สำหรับโปรแกรมที่ 2 แสดงข้างบนนี้เป็นการประยุกต์ใช้งานแบบง่ายในการตรวจจับแท็กที่กำหนดค่าที่ต้องการ โดยจะเพิ่มคำสั่ง if (rfidCard == “108 31 154 50”) เพื่อทำการตรวจสอบแท็กที่ต้อง ทั้งนี้เราสามารถนำใช้ในการเปิดการทำงานของอุปกรณ์ต่างๆ ต่อไป เช่น การเปิดและปิดประตู เป็นต้น


ในรูปที่ 6 และรูปที่ 7 แสดงลักษณะของการทดลองให้โมดูล RFID-RC522 อ่านแท็ก โดยในรูปที่ 6 เป็นแบบที่ 1 จะเห็นว่าแออีดีสีเขียวจะติด นั้นหมายความว่าเป็นแท็กที่เรากำหนดและถูกต้อง ในทางตรงข้ามการอ่านแท็กแบบที่ 2 รูปที่ 7 แอลอีดีสีแดงติดเมื่อไม่ใช่แท็กที่กำหนดไว้นั้นเอง


สำหรับโครงงาน RFID-RC522 Reader นี้เป็นโครงงานเล็กๆ อีก 1 ตัวที่สามารถนำไปใช้งานต่างๆ ได้หลายรูปแบบและนำไปใช้งานได้ไม่ยากมากนักครับ ทั้งนี้ตัวโมดูล RFID-RC522 Reader จะเป็นโมดูลสำเร็จ ที่ผู้พัฒนาสามารถใช้บอร์ดไมโครคอนโทรลเลอร์มาเชื่อมต่อใช้งานได้ทันทีในรูปแบบการสื่อสาร SPI Protocol และในส่วนของข้อมูลเพิ่มเติมสำหรับการพัฒนาโครงงานจะอยู่ที่ลิ้งก์อ้างอิงข้างล่างนี้ครับ.
Reference
- https://lastminuteengineers.com/how-rfid-works-rc522-arduino-tutorial/
- https://www.elementzonline.com/blog/interfacing-rfid-rc522-with-arduino-uno
- https://mschoeffler.com/2017/02/07/how-to-use-the-rfid-rc522-module-rfid-reader-with-the-arduino-uno/
- https://www.hadex.cz/navody/m490a.pdf
- https://www.instructables.com/Interfacing-RFID-RC522-With-Arduino-MEGA-a-Simple-/
- https://github.com/aaneloy/RFID-Tag-Reader-using-Arduino-Uno-
- https://github.com/song940/RFID-RC522
- https://miliohm.com/mfrc522-rfid-reader-with-arduino-tutorial-the-simplest-way-to-read-rfid-tag/