ในโปรเจกต์นี้ พี่จะพาน้องๆ มาทำอุปกรณ์เก็บรหัสผ่าน (Password Manager) แบบง่ายๆ ที่จะช่วยให้เราผูกบัตร RFID เข้ากับชุดตัวอักษรที่เราตั้งไว้ หลักการก็คือเอาไว้ใช้เป็นรหัสผ่านนั่นแหละ แต่พวกแกจะไปดัดแปลงเอาไว้พิมพ์คำแสลงหรือประโยคเด็ดๆ อะไรก็จัดไปตามใจชอบเลย ข้อมูลทั้งสองส่วน ทั้งเลข UID ของ Tag และพวกตัวอักษรที่เราตั้งไว้ จะถูกเก็บไว้ใน Code ของเรานี่แหละ

พอเจ้า [Sensor](https://s.shopee.co.th/7VBG2rX65j) MFRC522 มันอ่านค่า UID ของ Tag ที่เรารู้จัก (ซึ่งเราต้องใส่ไว้ในโปรแกรม .ino ก่อนนะ) มันก็จะไปสะกิดบอก [Arduino](https://s.shopee.co.th/7fUgFAWSki) Leonardo ให้ทำตัวเนียนๆ เป็น Keyboard คอมพิวเตอร์ แล้วจัดการพิมพ์รหัสผ่านที่ผูกไว้ลงไปให้ทันที สะดวกจัด!
พี่ตั้งใจออกแบบมาให้เป็นโปรเจกต์สำหรับมือใหม่ที่ใช้งานได้จริง โดยไม่ต้องไปพึ่งพา Hardware ซับซ้อนที่บางทีก็พึ่งพาไม่ค่อยได้ การจะสร้างอะไรที่มีกลไกขยับไปมา (Moving parts) ให้มันใช้งานได้จริงๆ (ที่ไม่ใช่แค่ทำโชว์) มันเป็นงานช้างและต้องใช้เวลา ใช้เงิน และต้องหาอะไหล่เฉพาะทางเยอะเกินไปหน่อย
แต่เตือนไว้ก่อนนะไอ้น้อง ฟังพี่ให้ดี: โปรเจกต์นี้ทำขึ้นมาเพื่อการเรียนรู้และเอาไว้ต่อยอดสนุกๆ เท่านั้น *ห้าม* เอาไปใช้เก็บข้อมูลสำคัญระดับชาติหรือรหัสผ่านธนาคารเด็ดขาด เพราะมันไม่ได้ปลอดภัยขนาดนั้น ถ้าไม่อยากโดนแฮกจนเกลี้ยงก็อย่าหาทำเอาไปใช้จริงล่ะ!
ส่วนการต่อวงจรก็ง่ายๆ พี่อ้างอิงวงจรมาจากคู่มือของ library MFRC522 ของ Miguel Balboa แถม Code ตัวอย่าง readNUID ของเขาก็เป็นแรงบันดาลใจให้โปรเจกต์นี้ด้วย
เรื่องการใช้ Protoboard ถึงพี่จะใส่ไว้ในรายการอุปกรณ์ แต่มันก็ไม่ได้บังคับนะ จะจิ้มสายตรงเข้า Board Leonardo เลยก็ทำงานได้เหมือนกันไม่มีปัญหา แต่ที่พี่แนะนำให้ใช้ Protoboard เพราะมันจะทำให้งานเราดูเป็นระบบ (Modular) มากกว่า เผื่อวันหลังพวกแกอยากจะอัปเกรดใส่ Module อื่นเพิ่ม เช่น microSD ไว้เก็บรหัสเยอะๆ หรือจะทำ Log ไว้ดูว่าใครมาแอบแตะบัตรบ้าง ก็ทำได้ง่ายๆ เลย

รายละเอียดทางเทคนิคแบบจัดเต็ม
คลังแสงเก็บรหัสผ่านอารมณ์เดียวกับสแกนนิ้ว
โปรเจกต์นี้จะเปลี่ยน Arduino ของเราให้กลายเป็นกุญแจความปลอดภัยแบบ physical ที่ช่วยให้แก Login เข้าคอมพิวเตอร์หรือเว็บไซต์ได้ง่ายๆ แค่แตะบัตร RFID
- 13.56MHz MFRC522 Interfacing: ตัว Arduino จะทำหน้าที่ดักจับค่า UID เฉพาะตัวจากบัตร RFID หรือพวกกุญแจ (key fob) ทั่วไป แล้ว Firmware จะทำการจับคู่ UID นั้นกับรหัสผ่านที่ฝังไว้ใน Memory ของ Arduino
- USB HID Keyboard Emulation: เมื่อเจอ Tag ที่ถูกต้อง Arduino (หัวใจหลักของเรา) จะแปลงร่างตัวเองให้คอมพิวเตอร์เห็นว่าเป็น USB Keyboard ทั่วไป แล้วทำการ "พิมพ์" รหัสผ่านลงในช่องว่างที่เคอร์เซอร์วางอยู่ทันที อย่างไวอะน้อง!
เรื่องความปลอดภัย
- Dual-Factor Authentication (2FA): (ฟีเจอร์เสริม) พี่แถมออปชันใส่รหัส PIN เพิ่มเข้าไปด้วย คือแกต้องทั้งแตะบัตร RFID และกดรหัส 4 หลักบน Keypad ให้ถูกด้วย Arduino ถึงจะยอมปล่อยรหัสผ่านออกไปที่ PC หล่อเท่และปลอดภัยขึ้นอีกนิด!