การใช้งาน เครื่องอ่านบัตรและแท็ก USB RFID Reader บน Raspberry pi ด้วย Node js
บทความนี้เราจะมาเรียนรู้กันถึงการใช้งาน Usb RFID Reader เพื่องานระบุตัวต้นเบื้องต้น บน Raspberry pi โดยเขียนโปรแกรมด้วย Node js เช่นเดิม
RFID คืออะไร
RFID (Radio-frequency identification) ใช้สนามแม่เหล็กไฟฟ้าเพื่อระบุและติดตามแท็กที่ติดอยู่กับวัตถุโดยอัตโนมัติ ระบบ RFID ประกอบด้วยช่องสัญญาณวิทยุขนาดเล็ก เครื่องรับวิทยุ และเครื่องส่ง เมื่อถูกกระตุ้นโดยพัลส์การสอบถามทางแม่เหล็กไฟฟ้าจากอุปกรณ์อ่าน RFID ในบริเวณใกล้เคียง แท็กจะส่งข้อมูลดิจิตอล ซึ่งมักจะเป็นหมายเลขระหัสที่ระบุ กลับไปยังเครื่องอ่าน สามารถใช้หมายเลขนี้เพื่อติดตามระบุตัวตนได้ wikipedia
มาเชื่อมต่อเครื่องอ่าน USB RFID กับ Raspberry pi กัน
1. ต่อ Usb RFID Reader เข้ากับ Raspberry pi
2. พิมพ์คำสั่ง lsusb ใน terminal จากนั้นลองแตะบัตรจะได้ชุดตัวเลข จบด้วย enter
จะเห็นได้ว่าการรับค่าเหมือน keyboard ตัวหนึ่ง
RFID Reader พร้อมใช้งาน |
เขียนโปรแกรมรับค่า RFID
1. สร้างโฟลเดอร์ของโปรเจค จากนั้น init โปรเจค
mkdir rfid-test
cd rfid-test
npm init -y
2. ติดตั้ง module input-event
npm add input-event
3. สร้างไฟล์ app.js เพื่อเขียนโปรแกรม จากนั้นกด Save
const InputEvent = require('input-event');
const input = new InputEvent('/dev/input/event0');
const keyboard = new InputEvent.Keyboard(input);
// https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h
const event_codes = [
{key: '1', code: 2},
{key: '2', code: 3},
{key: '3', code: 4},
{key: '4', code: 5},
{key: '5', code: 6},
{key: '6', code: 7},
{key: '7', code: 8},
{key: '8', code: 9},
{key: '9', code: 10},
{key: '0', code: 11},
]
let tag = ''
const users = [
{tag: '0443770628', name: 'Jone'},
{tag: '2455178244', name: 'สมหมาย'},
]
keyboard.on('keypress', ev => {
if(ev.code==28) {
console.log('tag =', tag)
const user = users.find((u) => u.tag === tag )
console.log('Hello ', user.name)
tag = ''
return
}
const keyCode = event_codes.find(({code}) => code === ev.code )
// console.log(ev.code, keyCode.key)
tag += keyCode.key
});
4. รันโปรแกรม พิมพ์คำสั่ง node app แล้วแตะบัตร RFID ดูบน Tex editor
node app
สำเร็จแล้ว Raspberry pi ของเราสามารถรับค่า RFID และระบุตัวตนได้แล้ว
การทำงานของโปรแกรม ระบุตัวตนด้วย RFID
const InputEvent = require('input-event');
เรียกใช้งาน Module 'input-event
const input = new InputEvent('/dev/input/event0');
กำหนดค่า input จาก event0(ไฟล์ hardware)
const keyboard = new InputEvent.Keyboard(input);
เลือก input เป็น keyboard
//
https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h
const event_codes = [
{key: '1', code: 2},
...
]
ตัวแปร mapping ระหว่าง event code กับ key ของ Linux keyboard
let tag = ''
ตัวแปรเก็บ ID ที่ส่งมา
const users = [
{tag: '0443770628', name: 'Jone'},
{tag: '2455178244', name: 'สมหมาย'},
]
ตัวแปร mapping ระหว่าง tag กับ name
keyboard.on('keypress', ev => {
//interrupt รับค่า event เมื่อกดปุ่ม
if(ev.code==28) {
console.log('tag =', tag)
const user = users.find((u) => u.tag === tag
)
console.log('Hello ', user.name)
tag = ''
return
}
// ตรวจสอบเมื่อปุ่ม Enter เข้ามา
ให้แสดง tag และ name
const keyCode = event_codes.find(({code}) => code === ev.code
)
// console.log(ev.code, keyCode.key)
tag += keyCode.key
// ถ้าไม่ใช่ ปุ่ม
Enter จะเก็บค่า key เ้ข้าไปใน tag
});
ฝากกดติดตาม blog นี้ด้วยนะครับ
สามารถพูดคุยเพิ่มเติมได้ที่ facebook: Bulantech
การใช้งาน เครื่องอ่านบัตรและแท็ก USB RFID Reader บน Raspberry pi ด้วย Node js
Reviewed by amaloma
on
ตุลาคม 10, 2564
Rating:
ไม่มีความคิดเห็น