RFID-ATTENDANCE
Explore the docs »
View Client
·
Report Bug
·
Request Feature
·
Video
Explantion video
Poster
Web page
RFTENDANCE ได้รับการพัฒนาโดยใช้ PHP, CSS และ Javascript ระบบเช็ค RFID ที่ใช้ NodeMCU เป็นการทำงานที่ทันสมัย จึงเป็นโครงการที่น่าสนใจมาก อาจมีประโยชน์ในสถานที่ต่างๆเช่นโรงเรียนวิทยาลัยอุตสาหกรรมและองค์กรเอกชนในการลงทะเบียนการเข้าร่วมของนักเรียนครูพนักงาน ฯลฯ เพื่อจัดตารางชั่วโมงการทำงานรายเดือน / รายวันโดยอัตโนมัติ เมื่อบุคคลที่มีบัตร RFID ที่ถูกต้องรูดแท็ก RFID ของคนๆนั้นเวลาที่มาถึงก็จะถูกเก็บไว้ในบันทึกของระบบ โดยปกติแล้วเมื่อบุคคลคนเดียวกันสแกน RFID อีกครั้งระบบจะบันทึกเป็นเวลาออกจากสถานที่นั้นๆ
RFTENDANCE ได้รับการพัฒนาด้วยแพลตฟอร์ม IoT เราได้ใช้ NodeMCU ESP8266 development board กับ MF-RC522 Module เพื่อส่งการ์ด UID ไปยัง PHP Web app และจัดเก็บข้อมูลลงในฐานข้อมูลของเว็บไซต์ โดยพื้นฐานแล้วผู้ดูแลระบบมีบทบาทสำคัญในการจัดการระบบนี้
Functionality Performed by users ตอนนี้พูดถึงคุณสมบัติของ RFTENDANCE ที่ใช้ RFID โดยใช้ NodeMCU โฮมเพจจะแสดงหน้าเข้าสู่ระบบของผู้ดูแลระบบ และจะเรียกดูและจัดการได้ก็ต่อเมื่อเข้าสู่ระบบเท่านั้น ดังนั้นระบบจึงปลอดภัย โดยพื้นฐานแล้วการออกแบบโครงการระบบการเข้าร่วม RFID นั้นค่อนข้างง่าย ดังนั้นผู้ใช้จะไม่พบปัญหาใด ๆ ในขณะที่สแกนใช้งานนั้น ผู้ใช้ต้องสแกนบัตรหรือพวงกุญแจเพื่อรักษาการเข้าใช้งานซึ่งรวมเวลาเข้าใช้งานด้วย
functions provided to admin are mentioned below:
- ระบบเข้าสู่ระบบและออกจากระบบของแอดมิน
- แก้ไขและอัพเดทโปรไฟล์แอดมิน
- ดูข้อมูลผู้ใช้
- เพิ่มผู้ใช้
- แก้ไขและอัพเดทผู้ใช้
- ลบข้อมูลผู้ใช้
- เพิ่มรายวิชาใหม่
- อัปเดตรายวิชาที่มีอยู่
- ลบรายวิชา
- อัปเดตโทเค็นใหม่ไปยังอุปกรณ์
- เปลี่ยนโหมดอุปกรณ์ (โหมดการลงทะเบียน: เพื่อลงทะเบียนผู้ใช้ใหม่ โหมดการเข้าร่วม: เพื่อบันทึกการเข้า/ออกของผู้ใช้ที่ลงทะเบียน)
- ดู Log หรือเมนูบันทึกของผู้ใช้งาน
จากเมนูบันทึกผู้ใช้สามารถไปที่ข้อมูลบันทึกของผู้ใช้ทั้งหมดได้ สามารถดูเวลามาเข้าและเวลาออกได้เช่นกัน นอกจากนี้ยังมีฟังก์ชั่นเพิ่มเติมในการกรองบันทึกตาม ผู้ใช้, วันที่, เวลามาถึงเวลาออก และกรองตามส่วนต่างๆเป็นต้น และยังสามารถส่งออกข้อมูลเหล่านั้นไปยัง excel ได้อีกด้วย
- NodeMCU
- RFID Module
- Breadboard
- สายไฟ
- Embedded C: การเขียนฮาร์ดแวร์ทั้งหมดพัฒนาด้วยภาษา C
- PHP: ลอจิกและอินเทอร์เฟซเว็บทั้งหมดเขียนด้วยภาษา PHP
- MYSQL: สำหรับฐานข้อมูลจะใช้ฐานข้อมูล MYSQL
- Apache 2: เพื่อเรียกใช้เว็บอินเตอร์เฟสบนเซิร์ฟเวอร์ Apache 2
- Javascript and CSS: เพื่อจัดรูปแบบเว็บอินเตอร์เฟสด้วยภาพเคลื่อนไหวและตรวจสอบความถูกต้องของฟอร์ม
แล้วโมดูล RFID RC522 คืออะไร
ในตอนแรกเรามาเรียนรู้เกี่ยวกับ RFID กันสักเล็กน้อย RFID เป็นรูปแบบสั้น ๆ ของการระบุความถี่วิทยุ โมดูล RFID ใช้สนามแม่เหล็กไฟฟ้าในการถ่ายโอนข้อมูลระหว่างการ์ดและเครื่องอ่าน แท็ก RFID ที่แตกต่างกันจะติดอยู่กับวัตถุเช่นพวงกุญแจการ์ด ฯลฯ และเมื่อใดก็ตามที่เราวางวัตถุนั้นไว้หน้าเครื่องอ่าน RFID เครื่องอ่านจะอ่านแท็กนั้น ประโยชน์ต่อไปของ RFID คือไม่จำเป็นต้องตรวจจับเป็นเส้นตรง ซึ่งแตกต่างจากบาร์โค้ดใน RFID ไม่มีข้อ จำกัด ดังกล่าว ดังนั้นนี่คือคุณสมบัติบางอย่างของ RFID RC522.
รายละเอียด
– ชื่อโมดูล: MF522-ED
– กระแสขณะทำงาน:13—26mA/ DC 3.3V
– กระแสไฟสแตนด์บาย:10-13mA/DC 3.3V
– กระแสไฟนอน:<80uA
– กระแสสูงสุด:<30mA
– ความถี่ในการทำงาน:13.56MHz
– ระยะการอ่านการ์ด:0~60mm(mifare1 card)
– โปรโตคอล:SPI
– ความเร็วในการสื่อสารข้อมูล:Maximum 10Mbit/s
– รองรับประเภทการ์ด:mifare1 S50、mifare1 S70、Mifare UltraLight、mifare Pro、 Mifare Desfire
– Dimension:40mm×60mm
– อุณหภูมิในการทำงาน:-20—80 degree
– อุณหภูมิในการจัดเก็บ:-40—85 degree
– ความชื้น:relevant humidity 5%—95%
– Max SPI speed: 10Mbit/s
ข้อมูลจำเพาะและรายละเอียด
- 3.3V +3.3V Power Supply
- RST Reset
- GND Ground Pin
- IRO Not Connected
- MISO Serial Communication
- MOSI Serial Communication
- SCK TX/RX with ESP8266
- SDA TX/RX with ESP8266
รูปภาพประกอบ
1.include RFID Library
#include <SPI.h>
#include <MFRC522.h>
2.include NodeMCU ESP8266 Library
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
3.ประกาศ Pin ของ RFID MF-RC522
#define SS_PIN D2
#define RST_PIN D1
4.เรียกใช้และประกาศ
MFR522 mfrc522(SS_PIN, RST_PIN);
5.ตั้งค่าข้อมูล Wifi
const char *ssid= "Poom";
const char *password = "3times";
6.ใส่เลข Token ที่ได้จากหน้าเว็บ
const char* device_token = "2c4f3c61aa79d533";
7.ใส่ url ที่ลิงค์ไปที่ path getdata.php
String URL = "http://192.168.1.8/rfidattendance/getdata.php";
8.เรียกใช้ SPI บัสและการ์ด MFRC522
SPI.begin();
mfrc522.PCD_Init();
9.เช็คว่าเชื่อมต่อ Wifi หรือไม่
if(!WiFi.isConnected())
10.เชื่อมต่อ Wifi ใหม่ในกรณีที่เชื่อมต่อไม่ผ่านหรือหลุดการเชื่อมต่อ
connectToWiFi();
11.ค้นหาบัตรใหม่
if ( ! mfrc522.PICC_IsNewCardPresent()) {
12.ถ้าไม่มีการ์ดให้เริ่ม loop ใหม่
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
13.เลือกบัตรหนึ่งใบ ถ้า อ่าน card serial (0) จะส่งกลับค่า 1 โดยโครงสร้างของ UID จะมี ID ของบัตรให้อ่าน
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
14.ส่ง UID ของบัตรขึ้นเว็บไซต์
void SendCardID( String Card_uid ){
Serial.println("Sending the Card ID");
if(WiFi.isConnected()){
HTTPClient http;
//GET Data
getData = "?card_uid=" + String(Card_uid) + "&device_token=" + String(device_token);
//GET methode
Link = URL + getData;
http.begin(Link);
int httpCode = http.GET();
String payload = http.getString();
// Serial.println(Link);
Serial.println(httpCode);
Serial.println(Card_uid);
Serial.println(payload);
if (httpCode == 200) {
if (payload.substring(0, 5) == "login") {
String user_name = payload.substring(5);
// Serial.println(user_name);
}
else if (payload.substring(0, 6) == "logout") {
String user_name = payload.substring(6);
// Serial.println(user_name);
}
else if (payload == "succesful") {
}
else if (payload == "available") {
}
delay(100);
http.end(); //Close connection
}
}
}
15.ฟังก์ชั่นการเชื่อมต่อ WiFi
void connectToWiFi(){
WiFi.mode(WIFI_OFF);
delay(1000);
WiFi.mode(WIFI_STA);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
delay(1000);
}
เมื่อเข้ามาสู่หน้าเว็บ code จะมีการเช็คว่ามีการlogin ของadminเข้ามาไหมถ้าไม่มีจะไม่สามารถเข้าดูในส่วนอื่นๆได้ และจะมีส่วนหลักๆอยู่ 4 ส่วน ในแต่ละส่วนจะมีการทำงานย่อยอีกส่วนของ
(สมาชิก
) -> แสดงรายชื่อสมาชิกที่มีการเชื่อมกับ RFID
(จัดการสมาชิก
) -> สามารถทำ เพิ่ม/ลบ/แก้ไข ข้อมูลสมาชิก
(รายการเช็คชื่อ
) -> แสดงเวลา เข้า/ออก ของรายชื่อสมาชิก และ สามารถ export รายชื่อ ออกมาเก็บไว้ได้
(จัดการห้องเรียน
) -> สามารถทำ เพิ่ม/ลบ/แก้ไข ห้องเรียน และ สามารถตั้ง mode ให้สามารถ ลงทะเบียนว่านักเรียนอยู่ในห้องนี้ หรือ mode เช็คชื่อ
© 2021 Faculty of Information technology @King mongkut's institute of technology ladkrabang
Thanawat Jantawong |
Pisitchai Rueangwatanaphong |
Suphachai Chuensuksri |
Apichet Komwatcharapong |
---|---|---|---|
63070076 |
63070121 |
63070169 |
63070183 |