เรียนรู้และฝึกปฏิบัติ RFID ไปกับชุด RFID Basic Starter Kit (ตอนที่ 1 พื้นฐาน RFID และแนะนำอุปกรณ์ในชุด RFID)

เรียนรู้และฝึกปฏิบัติ RFID ไปกับชุด RFID Basic Starter Kit

(ตอนที่ 1 พื้นฐาน RFID และแนะนำอุปกรณ์ในชุด RFID)

07

บทความเกี่ยวกับ RFID ที่เขียนขึ้นมานี้ เพื่อใช้เป็นข้อมูลอ้างอิงร่วมกับชุดเรียนรู้ PROMO06 : RFID Basic Starter Kit ที่ใช้บอร์ดไมโครคอนโทรลเลอร์เป็นบอร์ด Arduino UNO R3 โดยรวมของบทความจะเเบ่งออกเป็น 6 ตอน เริ่มตั้งแต่พื้นฐานความรู้ RFID จากนั้นเริ่มทดลองต่อบอร์ด Arduino ร่วมกับ NFC Shield เพื่ออ่านข้อมูลบนบัตร จากนั้นจะเริ่มมีต่ออุปกรณ์ต่างๆ เพิ่มเติม (มีความซับซ้อนมากขึ้น)

       ผู้ที่สนใจศึกษา สามารถอ่านและฝึกหัดทดลองตามขั้นตอนที่อธิบายไว้ในบทความได้

  • ตอนที่ 1 พื้นฐาน RFID และแนะนำอุปกรณ์ในชุด PROMO06 : RFID Basic Starter Kit
  • ตอนที่ 2 เริ่มต้นทดลองการใช้งาน RFID ร่วมกับ NFC Shield  Click!
  • ตอนที่ 3 ทดลองใช้งาน RFID ร่วมกับ NFC Shield + จอ LCD 16×2 + ลำโพง Buzzer  Click!
  • ตอนที่ 4 ทดลองใช้งาน RFID ร่วมกับ NFC Shield + จอ LCD 16×2 + ลำโพง Buzzer + Keypad  Click!
  • ตอนที่ 5 ทดลองใช้งาน RFID ร่วมกับ NFC Shield + จอ LCD 16×2 + ลำโพง Buzzer + Keypad + RTC (ผ่าน Data Logging Shield) Click!
  • ตอนที่ 6 ทดลองใช้งาน RFID ร่วมกับ SD Card ผ่าน Data Logging Shield  Click!
  • ตอนที่ 7 ตัวอย่างโปรเจค RFID Access Controll Project  Click!

(ตอนที่ 1 พื้นฐาน RFID และแนะนำอุปกรณ์ในชุด RFID)

RFID คืออะไร

       RFID ย่อมาจาก Radio Frequency Identification หรือการระบุข้อมูลสิ่งต่างๆ โดยใช้คลื่นความถี่วิทยุ RFID ถูกนำเข้ามาใช้ในชีวิตประจำวันของเราอย่างหลากหลาย เช่น ระบบคลังสินค้า ระบบเข้า-ออกในอาคาร ระบบจ่ายเงินอัตโนมัติ ระบบป้องกันการขโมยสินค้าในร้านค้า เป็นต้น ในระบบ RFID จะมีองค์ประกอบหลักๆ ด้วยกัน 3 ส่วน คือ

01

1. ป้าย บัตร แท็ก (Tag, Transponder) มีหน้าที่ส่งหรือรับข้อมูลไปที่เครื่องอ่านบัตร ผ่านคลื่นวิทยุ
2. เครื่องอ่านบัตร (Reader, Interrogator) มีหน้าที่อ่าน-เขียนข้อมูลจากบัตร ผ่านคลื่นวิทยุ
3. ระบบที่ใช้ประมวลผล มีหน้าที่ส่งคำสั่ง-รับข้อมูลจากเครื่องอ่านบัตร
สามารถดูข้อมูลเพิ่มเติมได้จาก บทความความรู้เบื้องต้นเกี่ยวกับ RFID 

มาตรฐาน RFID 
มาตรฐาน RFID ในท้องตลาดมีอยู่หลายมาตรฐาน แต่ละมาตรฐานถูกออกแบบมาให้ใช้ในลักษณะงานที่แตกต่างกัน เช่น 
– มาตรฐาน 1-bit Transponder (EAS) ใช้คู่กับเครื่องอ่านป้องกันการขโมยสินค้า ตามห้างและร้านค้าทั่วไป
– มาตรฐาน ISO10536 หรือ 125 KHz ใช้ในงานด้านความปลอดภัย การเข้า-ออกบ้านหรือสำนักงาน
– มาตรฐาน ISO15693 หรือ I-CODE ใช้ในงานตรวจสอบหนังสือในห้องสมุด ตั๋วคอนเสิร์ต หรือระบบโลจิสติกส์
– มาตรฐาน ISO14443 ใช้ในงานที่ต้องมีการอ่านและเก็บข้อมูลลงไปในป้าย และต้องการความปลอดภัยสูง เช่น Smart Card บัตรประชาชนที่ต้องเก็บข้อมูลส่วนบุคคล บัตรพนักงาน ระบบ e-Purchasing เป็นต้น

มาตรฐาน ISO14443 Type A (MIFARE) 

02

 มาตรฐาน ISO14443 Type A หรือที่เรียกกันว่า MIFARE เป็นมาตรฐานหนึ่งที่รับความนิยมในท้องตลาด เป็นสิทธิบัตรของบริษัท NXP ใช้คลื่นความถี่ 13.56 MHz ระยะรับส่งข้อมูลประมาณ 10 cm

ข้อดีของมาตรฐาน MIFARE คือ
– สามารถนำไปใช้ในงานที่หลากหลาย
– มีการเข้ารหัสในการเข้าถึงข้อมูลบนบัตร ทำให้ยากที่จะเข้าถึงและคัดลอกข้อมูล
– ชิป MIFARE ยังสามารถนำไปใช้บนอุปกรณ์อื่น เช่น นาฬิกา เป็นต้น
– บัตร MIFARE ไม่ต้องสอดเข้าไปที่เครื่องอ่านบัตร เมื่อบัตรอยู่ในระยะของเครื่องอ่าน เครื่องก็สามารถส่งคำสั่งไปที่บัตรได้
– แต่ละบัตรมีเลข Serial number ที่ไม่ซ้ำกัน
– สามารถใช้ในสภาพแวดล้อมที่เปียกชื้นได้ โดยเครื่องอ่านต้องมีการป้องกันสภาพแวดล้อมต่างๆ นั้นไว้
ข้อเสียของมาตรฐาน MIFARE คือ
– บัตรมีราคาสูงเมื่อเทียบกับมาตรฐานอื่น
โครงสร้างข้อมูลของบัตร MIFARE

03

จากภาพด้านบนเป็นโครงสร้างข้อมูลของบัตร MIFARE ขนาด 1 Kbyte บัตรแบ่งข้อมูลออกเป็นเซ็คเตอร์ (Sector) ทั้งหมด 16 เซ็คเตอร์ (ตั้งแต่ 0 ถึง 15) ในแต่ละเซ็คเตอร์ประกอบด้วยชุดข้อมูล 4 บล็อค (Block) โดยบล็อคต่างๆ เก็บข้อมูลบนบัตรดังนี้
       1. Sector 0 Block 0 เก็บข้อมูลของบัตรหรือค่า UID (Unique Identifier) ขนาด 16 บิต สามารถอ่านได้เพียงอย่างเดียวไม่สามารถเขียนได้

04

 2. Block 0, 1, 2 ของทุก Sector (ยกเว้น Sector 0 ที่ใช้ได้เฉพาะ Block 1,2) ใช้เก็บข้อมูลที่ผู้ใช้ต้องการเขียน-อ่านบัตร โดยบัตร MIFARE ยังมีฟังชั่น Value Block เขียนข้อมูลลงไปเฉพาะ 4 ไบต์แรก (ไบต์ที่ 0-3) และ Backup ข้อมูลไว้ที่ไบต์ที่ 8-11 Invert ข้อมูลไว้ในไบต์ 4-7 เก็บข้อมูลตำแหน่ง (Address) ของ Block ขนาด 1 ไบต์ไว้ที่ไบต์ที่ 12 กับ 14 และ Invert ข้อมูลตำแหน่งไว้ที่ 13 กับ 15
ฟังก์ชั่น Value Block เหมาะสำหรับระบบที่ต้องการความเร็วในการอ่านเขียนข้อมูล ไม่ต้องการใช้ข้อมูลทั้ง Block ต้องการเพียงเขียน อ่าน เพิ่ม หรือลด และมีระบบป้องกันข้อมูล เหมาะสำหรับระบบคิดเงินในศูนย์อาหารระบบบัตรคูปอง

05

 3. Block 3 ในแต่ละ Sector เก็บข้อมูลสิทธิ์การเข้าถึงข้อมูลใน Block นั้น ประกอบด้วย
       – Key A เก็บรหัสการเข้าถึงข้อมูลของบัตร ไว้ที่ Block 3 Byte ที่ 0 – 5
       – Key B เก็บรหัสการเข้าถึงข้อมูลของบัตร ไว้ที่ Block 3 Byte ที่ 11 – 15
       – Access Bits เป็นค่าที่ใช้กำหนดสิทธิ์ของ Key A และ Key B สามารถอ่าน/เขียน Block ไหนได้บ้าง ใน Sector นั้น เช่น ผู้ใช้บัตรอาจกำหนดให้ ตนเองถือ Key A อยู่ซึ่งกำหนดสิทธิ์ใน Access bits แล้วให้สามารถอ่านหรือเขียนข้อมูลได้ แต่ผู้ใช้ทั่วไปถือ Key B สามารถอ่านข้อมูลได้เพียงอย่างเดียว
ขั้นตอนการอ่านและเขียนข้อมูลบนบัตร MIFARE

06

1. เครื่องอ่านบัตรส่งคำสั่ง Select Card เพื่อตรวจสอบมีบัตรทาบอยู่หรือไม่
2. ถ้าตรวจสอบว่ามีบัตร จากนั้นเครื่องอ่านส่งคำสั่ง Login เพื่อเข้าถึงข้อมูลในบัตรโดยกำหนด Sector ที่ต้องการ Login และเลือกเป็น KeyA และ KeyB ตามด้วยรหัส Key
3. จากนั้นผู้ใช้สามารถเลือกได้ว่า ต้องการอ่านหรือเขียนข้อมูลไปที่บัตร
เมื่อผู้ใช้ต้องการอ่านหรือเขียนข้อมูล ใน Sector อื่นต้องส่งคำสั่ง Login ไปใหม่

ทดลองใช้งาน RFID ด้วยชุด PROMO06 : RFID Basic Starter Kit

07

 ชุด PROMO06 : RFID Basic Starter Kit ใช้ทดลองเชื่อมต่อกับ RFID โดยใช้บอร์ด Arduino ควบคุมการทำงานไปที่ NFC Shield เพื่ออ่านข้อมูลหรือเขียนลงบนบัตร อีกทั้งยังแสดงผลผ่านจอ LCD 16×2 หรือเสียงผ่านลำโพง Buzzer รับข้อมูลจากผู้ใช้ผ่านการกด Keyboard 4×4 อ่านหรือเขียนข้อมูลใน SD Card และนาฬิกา RTC ผ่าน Data Logging Shield ซึ่งในชุด RFID Starter Kit ประกอบด้วยอุปกรณ์ต่างๆ ดังนี้
1. EADN014 Arduino Uno R3 จำนวน 1 บอร์ด
       เป็นตัวควบคุมหรือรับคำสั่งหลัก จากอุปกรณ์ที่ต่ออยู่ทั้งหมด เช่น ส่งคำสั่งไปที่ NFC Shield เก็บข้อมูลผ่าน Data Logging Shield หรือส่งข้อมูลไปแสดงที่ LCD 16×2 เป็นต้น

08

2. EADN064 NFC Shield V2.0 จำนวน 1 บอร์ด

       รอรับคำสั่งจาก Arduino เพื่ออ่าน

หรือเขียนไปที่บัตร RFID นอกจาก NFC Shield จะสามารถอ่านหรือเขียนข้อมูลบนบัตร RFID ยังสามารถสื่อสารผ่าน NFC ได้อีกด้วย (ในบทความนี้กล่าวถึงเฉพาะใช้งานกับ RFID MIFARE)
3. ERFC006 บัตร RFID MIFARE ขนาด 1Kbyte จำนวน 2 ใบ 

10

4. EDPM044 จอ LCD 16×2 Character LCD – White on Blue 5V (I2C) จำนวน 1 อัน 

11

แสดงผลที่บอร์ด Arduino ส่งคำสั่งผ่าน I2C bus
5. 4 x 4 matrix keyboard จำนวน 1 อัน

12

ให้ผู้ใช้ส่งค่าไปที่ Arduino ผ่านการกด Keyboard 
6. Active Buzzer Module จำนวน 1 บอร์ด 

13

ผู้ใช้สามารถเขียนโปรแกรมแจ้งเตือน หรือให้บอร์ดส่งสัญญาณเสียงผ่านการสั่งสัญญาณ PWM ไปที่ลำโพง Buzzer
7. EFDV282 Data Logging Shield จำนวน 1 บอร์ด

14

ให้บอร์ด Arduino เชื่อมต่อกับ SD Card ผ่าน Data Logging Shield และอ่านหรือกำหนดเวลาผ่านนาฬิกา RTC
8. สาย Jumper ผู้-ผู้ จำนวน 1 อัน (40 เส้น)

15

9. สาย Jumper ผู้-เมีย จำนวน 1 อัน (40 เส้น)

16

10. ELNK048 สาย USB type A-USB B จำนวน 1 เส้น 

17

สำหรับใช้โหลดโปรแกรมและจ่ายไฟให้กับบอร์ด Arduino