Coder Social home page Coder Social logo

rftendance's Introduction


Logo

RFTENDANCE

RFID-ATTENDANCE
Explore the docs »

View Client · Report Bug · Request Feature · Video

Table of Contents

  1. Overview
  2. Hardware Components Required
  3. SoftwareRequired
  4. Usage
  5. Contributor

About the Project:

Explantion video
Poster
Web page
Logo

Overview:

RFTENDANCE ได้รับการพัฒนาโดยใช้ PHP, CSS และ Javascript ระบบเช็ค RFID ที่ใช้ NodeMCU เป็นการทำงานที่ทันสมัย จึงเป็นโครงการที่น่าสนใจมาก อาจมีประโยชน์ในสถานที่ต่างๆเช่นโรงเรียนวิทยาลัยอุตสาหกรรมและองค์กรเอกชนในการลงทะเบียนการเข้าร่วมของนักเรียนครูพนักงาน ฯลฯ เพื่อจัดตารางชั่วโมงการทำงานรายเดือน / รายวันโดยอัตโนมัติ เมื่อบุคคลที่มีบัตร RFID ที่ถูกต้องรูดแท็ก RFID ของคนๆนั้นเวลาที่มาถึงก็จะถูกเก็บไว้ในบันทึกของระบบ โดยปกติแล้วเมื่อบุคคลคนเดียวกันสแกน RFID อีกครั้งระบบจะบันทึกเป็นเวลาออกจากสถานที่นั้นๆ

RFTENDANCE ได้รับการพัฒนาด้วยแพลตฟอร์ม IoT เราได้ใช้ NodeMCU ESP8266 development board กับ MF-RC522 Module เพื่อส่งการ์ด UID ไปยัง PHP Web app และจัดเก็บข้อมูลลงในฐานข้อมูลของเว็บไซต์ โดยพื้นฐานแล้วผู้ดูแลระบบมีบทบาทสำคัญในการจัดการระบบนี้

Features:

Functionality Performed by users ตอนนี้พูดถึงคุณสมบัติของ RFTENDANCE ที่ใช้ RFID โดยใช้ NodeMCU โฮมเพจจะแสดงหน้าเข้าสู่ระบบของผู้ดูแลระบบ และจะเรียกดูและจัดการได้ก็ต่อเมื่อเข้าสู่ระบบเท่านั้น ดังนั้นระบบจึงปลอดภัย โดยพื้นฐานแล้วการออกแบบโครงการระบบการเข้าร่วม RFID นั้นค่อนข้างง่าย ดังนั้นผู้ใช้จะไม่พบปัญหาใด ๆ ในขณะที่สแกนใช้งานนั้น ผู้ใช้ต้องสแกนบัตรหรือพวงกุญแจเพื่อรักษาการเข้าใช้งานซึ่งรวมเวลาเข้าใช้งานด้วย

functions provided to admin are mentioned below:

  • ระบบเข้าสู่ระบบและออกจากระบบของแอดมิน
  • แก้ไขและอัพเดทโปรไฟล์แอดมิน
  • ดูข้อมูลผู้ใช้
  • เพิ่มผู้ใช้
  • แก้ไขและอัพเดทผู้ใช้
  • ลบข้อมูลผู้ใช้
  • เพิ่มรายวิชาใหม่
  • อัปเดตรายวิชาที่มีอยู่
  • ลบรายวิชา
  • อัปเดตโทเค็นใหม่ไปยังอุปกรณ์
  • เปลี่ยนโหมดอุปกรณ์ (โหมดการลงทะเบียน: เพื่อลงทะเบียนผู้ใช้ใหม่ โหมดการเข้าร่วม: เพื่อบันทึกการเข้า/ออกของผู้ใช้ที่ลงทะเบียน)
  • ดู Log หรือเมนูบันทึกของผู้ใช้งาน

จากเมนูบันทึกผู้ใช้สามารถไปที่ข้อมูลบันทึกของผู้ใช้ทั้งหมดได้ สามารถดูเวลามาเข้าและเวลาออกได้เช่นกัน นอกจากนี้ยังมีฟังก์ชั่นเพิ่มเติมในการกรองบันทึกตาม ผู้ใช้, วันที่, เวลามาถึงเวลาออก และกรองตามส่วนต่างๆเป็นต้น และยังสามารถส่งออกข้อมูลเหล่านั้นไปยัง excel ได้อีกด้วย

HardwareComponentsRequired:

  • NodeMCU
  • RFID Module
  • Breadboard
  • สายไฟ

SoftwareRequired

Technology Used in RFTENDANCE Using NodeMCU

  • Embedded C: การเขียนฮาร์ดแวร์ทั้งหมดพัฒนาด้วยภาษา C
  • PHP: ลอจิกและอินเทอร์เฟซเว็บทั้งหมดเขียนด้วยภาษา PHP
  • MYSQL: สำหรับฐานข้อมูลจะใช้ฐานข้อมูล MYSQL
  • Apache 2: เพื่อเรียกใช้เว็บอินเตอร์เฟสบนเซิร์ฟเวอร์ Apache 2
  • Javascript and CSS: เพื่อจัดรูปแบบเว็บอินเตอร์เฟสด้วยภาพเคลื่อนไหวและตรวจสอบความถูกต้องของฟอร์ม

RFTENDANCE Network Topology

180160271-1612755128928628-8954132117535727996-n.png

RFID RC522 Module

แล้วโมดูล 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

ข้อมูลจำเพาะและรายละเอียด

  1. 3.3V +3.3V Power Supply
  2. RST Reset
  3. GND Ground Pin
  4. IRO Not Connected
  5. MISO Serial Communication
  6. MOSI Serial Communication
  7. SCK TX/RX with ESP8266
  8. SDA TX/RX with ESP8266

รูปภาพประกอบ

OFCF196.png
f815-Nn-X-Imgur.png

Code Explaining

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);
}

Usage

เมื่อเข้ามาสู่หน้าเว็บ code จะมีการเช็คว่ามีการlogin ของadminเข้ามาไหมถ้าไม่มีจะไม่สามารถเข้าดูในส่วนอื่นๆได้ และจะมีส่วนหลักๆอยู่ 4 ส่วน ในแต่ละส่วนจะมีการทำงานย่อยอีกส่วนของ
Screenshot-2021-05-22-at-01-40-10.png

(สมาชิก) -> แสดงรายชื่อสมาชิกที่มีการเชื่อมกับ RFID

c.png

(จัดการสมาชิก) -> สามารถทำ เพิ่ม/ลบ/แก้ไข ข้อมูลสมาชิก

d.png
e.png

(รายการเช็คชื่อ) -> แสดงเวลา เข้า/ออก ของรายชื่อสมาชิก และ สามารถ export รายชื่อ ออกมาเก็บไว้ได้

a.png

(จัดการห้องเรียน) -> สามารถทำ เพิ่ม/ลบ/แก้ไข ห้องเรียน และ สามารถตั้ง mode ให้สามารถ ลงทะเบียนว่านักเรียนอยู่ในห้องนี้ หรือ mode เช็คชื่อ

Contributor

© 2021 Faculty of Information technology @King mongkut's institute of technology ladkrabang

Thanawat Jantawong

Pisitchai Rueangwatanaphong

Suphachai Chuensuksri

Apichet Komwatcharapong

63070076

63070121

63070169

63070183


rftendance's People

Contributors

nengapi avatar pisitchair avatar pp3times avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.