Bối cảnh và vấn đề nghiên cứu
Trong quản lý nhân sự tại các doanh nghiệp ở Việt Nam, việc theo dõi và tính toán ngày công đóng vai trò quan trọng đối với chi phí vận hành và hiệu suất lao động. Các phương thức chấm công truyền thống đòi hỏi nhiều nhân sự kế toán hạch toán thủ công, dễ phát sinh sai sót, tốn kém thời gian và khó khăn trong việc mở rộng quy mô. Xuất phát từ thực tiễn công nghệ nhận dạng qua tần số vô tuyến (RFID) đã và đang được triển khai rộng rãi trên thế giới trong nhiều lĩnh vực như quản lý kho bãi, nhân sự, kiểm soát trạm thu phí và theo dõi tài sản, đề tài "Hệ thống chấm công online qua RFID" được thực hiện nhằm xây dựng một mô hình quản lý ngày công tự động, minh bạch và kết nối mạng Internet. Hệ thống cho phép nhân viên chủ động theo dõi dữ liệu chấm công cá nhân, đồng thời giúp doanh nghiệp tự động hóa việc thu thập dữ liệu thời gian làm việc để phục vụ hạch toán mà không cần bố trí nhân viên kế toán túc trực ghi nhận.
Đề tài xác định các mục tiêu và nhiệm vụ nghiên cứu cụ thể như sau:
-
Mục tiêu nghiên cứu (đánh số theo văn bản):
- Hiểu và sử dụng được các tính năng cơ bản của vi điều khiển Arduino: giao tiếp với các thiết bị ngoại vi như màn hình LCD, module RFID và xử lý các ngắt trong Arduino.
- Nắm vững phương thức giao tiếp qua mạng, truyền và nhận dữ liệu giữa phần cứng Arduino và ứng dụng Web.
- Sử dụng và truy xuất cơ sở dữ liệu trên nền tảng MySQL.
- Xây dựng đầy đủ các chức năng quản lý trên Server: tiếp nhận dữ liệu, thêm mới nhân viên, chỉnh sửa thông tin nhân sự và in bảng ngày công.
- Giải quyết các biến cố kỹ thuật phát sinh trong quá trình vận hành hệ thống.
-
Nhiệm vụ cụ thể của đề tài:
- Thu thập thời gian vào và ra doanh nghiệp trong ngày để làm căn cứ tính công cho nhân viên.
- Xây dựng phần mềm quản lý trên máy chủ (Server) và thiết kế phần cứng máy quét thẻ RFID (Client).
- Thiết kế các chức năng tương tác với nhân viên trên hệ thống: nhập dữ liệu, thêm thông tin, xóa thông tin và theo dõi nhật ký hoạt động.
-
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Hệ thống phần cứng nhúng đọc thẻ RFID kết hợp bộ xử lý thời gian thực, thiết bị lưu trữ dữ liệu tại chỗ, module truyền thông không dây và phần mềm web quản trị cơ sở dữ liệu trực tuyến.
- Không gian thực hiện: Bộ môn Kỹ thuật Máy tính – Viễn thông, Khoa Điện – Điện tử, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.
- Thời gian thực hiện: Từ ngày 28/09/2015 đến ngày 16/01/2016.
- Giới hạn đề tài: Phần mềm quản trị hệ thống được xây dựng bằng ngôn ngữ PHP; giao diện tương tác định hướng dễ sử dụng; phương thức truyền nhận dữ liệu qua kết nối Wi-Fi; chu kỳ cập nhật dữ liệu ngày công của nhân viên được thực hiện mỗi ngày.
Cơ sở lý thuyết và phương pháp
Để xây dựng hệ thống kết hợp giữa phần cứng nhúng và phần mềm quản lý mạng, các cơ sở lý thuyết, nền tảng công nghệ và linh kiện phần cứng sau đã được sử dụng:
- Ngôn ngữ lập trình PHP: Ngôn ngữ mã nguồn mở chạy phía máy chủ (Server-side), tối ưu cho các ứng dụng web với khả năng nhúng trực tiếp vào mã nguồn HTML thông qua các cặp thẻ định giới như
<?php ... ?> hoặc thẻ ngắn <? ... ?>. PHP tiếp nhận các yêu cầu HTTP GET từ thiết bị phần cứng, xử lý dữ liệu và tương tác với cơ sở dữ liệu.
- Hệ quản trị cơ sở dữ liệu MySQL: Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở, hoạt động dựa trên ngôn ngữ truy vấn có cấu trúc (SQL) theo chuẩn ANSI. MySQL cung cấp tốc độ xử lý nhanh, tính bảo mật cao, khả năng tương thích đa nền tảng (Windows, Linux, Unix), đóng vai trò lưu trữ hồ sơ nhân sự và nhật ký quét thẻ.
- Nền tảng phần cứng Arduino: Sử dụng bo mạch Arduino Uno R3 trang bị vi điều khiển ATmega328 (kiến trúc AVR 8-bit, tần số hoạt động 16 MHz, bộ nhớ Flash 32 KB, SRAM 2 KB, EEPROM 1 KB, 14 chân Digital I/O với 6 chân PWM, 6 chân Analog độ phân giải 10-bit). Bên cạnh đó, bo mạch Arduino Pro Mini cũng sử dụng vi điều khiển ATmega328 nhưng lược bỏ mạch nạp USB tích hợp (sử dụng mạch nạp USB-to-UART rời với các chân VCC, GND, TXD, RXD, DTR) nhằm tối ưu hóa diện tích mạch và chi phí.
- Công nghệ RFID và module RC522: Nhận dạng qua tần số vô tuyến dựa trên nguyên lý cảm ứng điện từ giữa thiết bị đọc (Reader) và thẻ (Tag). Module RFID-RC522 tích hợp IC MFRC522 của Philips, hoạt động ở tần số 13.56 MHz, điện áp làm việc 3.3V, dòng tiêu thụ 13–26 mA, giao tiếp với vi điều khiển qua chuẩn SPI, hỗ trợ các loại thẻ chuẩn Mifare như Mifare1 S50, S70, Ultralight, Pro và DESFire.
- Module truyền thông không dây ESP8266: Thiết bị truyền nhận Wi-Fi hoạt động trên dải tần 2.4 GHz chuẩn IEEE 802.11 b/g/n, hỗ trợ các cơ chế bảo mật WEP, WPA/WPA2, giao tiếp nối tiếp qua cổng UART với tốc độ baud lên đến 115200. Module hỗ trợ cả hai giao thức mạng TCP và UDP, vận hành ở 3 chế độ: Client, Access Point hoặc Both.
- Các module ngoại vi khác: Màn hình LCD 16x2 tích hợp chip điều khiển HD44780 ghép nối cùng module chuyển đổi I2C giúp rút gọn số đường dây tín hiệu từ 7–8 dây xuống còn 2 dây (SDA, SCL) với tốc độ truyền lên tới 400 Kbps; module thời gian thực (RTC) cung cấp mốc giờ chuẩn xác qua bus I2C; module Micro SD Card giao tiếp qua chuẩn SPI (chân CS, MOSI, MISO, SCK) với nguồn cấp 4.5V–5.5V phục vụ ghi nhật ký dữ liệu.
Phương pháp nghiên cứu thực tế bao gồm phương pháp phân tích – tổng hợp tài liệu chuyên ngành về phần cứng nhúng và mạng máy tính; phương pháp so sánh kỹ thuật nhằm đánh giá ưu, nhược điểm giữa các dòng vi điều khiển trên thị trường; phương pháp thiết kế kỹ thuật phân tầng phần cứng – phần mềm; và phương pháp thực nghiệm kiểm thử trực tiếp mô hình điểm danh bằng các mẫu thẻ RFID thực tế.
Thiết kế và triển khai hệ thống
Hệ thống được thiết kế theo mô hình Client – Server, trong đó khối Client đặt tại cổng ra vào doanh nghiệp để ghi nhận sự kiện quẹt thẻ, còn khối Server được triển khai trên môi trường máy tính kết nối mạng Internet.
MÔ HÌNH HỆ THỐNG CHẤM CÔNG ONLINE
+--------------------------------------------------------------+
| KHỐI CLIENT |
| |
| [Thẻ RFID] |
| | |
| [Module RC522] --(SPI)--> [Arduino Pro Mini] |
| | (I2C) |
| v |
| [Module RTC] --(I2C)--> [Arduino Uno R3] --(I2C)--> [LCD] |
| | | |
| (SPI) (UART) |
| v v |
| [Micro SD] [ESP8266] |
+------------------------------------------|-------------------+
| (TCP / Wi-Fi)
v
+--------------------------------------------------------------+
| KHỐI SERVER |
| |
| [Web Server PHP] <---> [CSDL MySQL] |
| (Xử lý GET Request) (Account, Điểm danh, |
| Bảng công) |
+--------------------------------------------------------------+
Thiết kế phần cứng
Quá trình lựa chọn linh kiện vi điều khiển được tác giả thực hiện thông qua việc so sánh các chỉ số kỹ thuật và chi phí thực tế giữa các họ vi điều khiển thông dụng:
| Thông số kỹ thuật |
Bo mạch Arduino Uno R3 |
Vi điều khiển PIC 18F4550 |
Vi điều khiển AT89xx |
| Kiến trúc chip |
AVR 8-bit (ATmega328) |
PIC 8-bit |
8051 8-bit (AT89S52) |
| Tốc độ xử lý |
16 MHz |
20 MHz |
12 MHz |
| Bộ nhớ Flash |
32 KB |
32 KB |
2 KB |
| Bộ nhớ SRAM |
2 KB |
2 KB |
Không tích hợp SRAM ngoài |
| Bộ nhớ EEPROM |
1 KB |
256 Byte |
Không tích hợp |
| Chân vào/ra (I/O) |
14 Digital (6 PWM), 6 Analog |
32 chân I/O |
32 chân I/O |
| Chuẩn giao tiếp |
USB, Serial UART, SPI, I2C |
USB, Serial, SPI, I2C |
Nối tiếp (UART), ISP |
| Chi phí phần cứng |
~210.000 VNĐ (tích hợp sẵn nạp) |
~120.000 VNĐ (chip rời, cần bo nạp 150.000 VNĐ) |
~50.000 VNĐ (chip rời, cần bo nạp 150.000 VNĐ) |
Căn cứ vào bảng so sánh, tác giả chọn Arduino nhờ khả năng tích hợp khối nạp cổng USB, hỗ trợ hệ thống thư viện phong phú, tiết kiệm công đoạn thiết kế mạch in (layout) và chi phí chế tạo.
Sơ đồ kết nối phần cứng của khối Client được phân định cụ thể như sau:
- Khối xử lý phụ và đọc RFID: Module RC522 kết nối với Arduino Pro Mini qua các chân giao tiếp SPI (SDA, MOSI, MISO, RST tương ứng nối với các chân 9, 10, 11, 12, 13). Arduino Pro Mini đóng vai trò đọc mã thẻ và truyền chuỗi định danh (UID) sang Arduino Uno R3 qua đường truyền I2C.
- Khối xử lý trung tâm (Arduino Uno R3): Tiếp nhận tín hiệu từ Pro Mini; giao tiếp với module Realtime (RTC) và màn hình LCD 16x2 (kèm chip I2C) thông qua hai chân A4 (SDA) và A5 (SCL); truyền nhận dữ liệu với module Wi-Fi ESP8266 qua hai chân Digital 10 và 11 (cấu hình UART mềm); kết nối module Micro SD Card qua giao tiếp SPI (chân CS điều khiển nối chân Digital 4, các chân tín hiệu nối chân 11, 12, 13).
- Khối báo hiệu: Các chân Digital 5, 6, 7, 8 của Arduino Uno R3 được nối với các đèn LED chỉ thị trạng thái: LED báo nguồn/hệ thống hoạt động, LED báo quẹt đúng nhân viên, LED báo thẻ không hợp lệ và LED báo trạng thái truyền dữ liệu.
Thiết kế phần mềm và cơ sở dữ liệu
Phần mềm hệ thống được phân định thành hai khối giải thuật độc lập nhưng liên kết chặt chẽ:
- Giải thuật phía Client: Khi nhân viên quẹt thẻ vào đầu đọc RC522, Arduino Pro Mini nhận tín hiệu ngắt, trích xuất ID thẻ và gửi sang Arduino Uno R3 qua bus I2C. Arduino Uno R3 lập tức truy vấn mốc thời gian từ module RTC, điều khiển màn hình LCD hiển thị ID cùng thời gian thực, đồng thời bật LED tương ứng. Dữ liệu (gồm ID và thời gian) được gửi qua module ESP8266 lên Web Server bằng phương thức HTTP GET qua giao thức TCP; song song đó, chuỗi dữ liệu này được ghi trực tiếp vào một tập tin văn bản định dạng
.txt trên thẻ Micro SD nhằm lưu trữ dự phòng khi mất kết nối mạng.
- Giải thuật phía Server: Web Server xây dựng bằng PHP duy trì trạng thái lắng nghe sự kiện HTTP GET. Khi nhận gói tin từ ESP8266, Server bóc tách mã thẻ và thời gian, đối chiếu với cơ sở dữ liệu để xác định nhân viên. Nếu tài khoản tồn tại, hệ thống ghi bản ghi vào bảng nhật ký điểm danh, tự động so sánh mốc giờ quẹt thẻ với khung giờ làm việc mặc định của doanh nghiệp để xác định giờ vào, giờ ra và tính tổng số giờ làm việc thực tế cùng thời gian tăng ca.
- Cấu trúc cơ sở dữ liệu MySQL: Được tổ chức thành 3 bảng dữ liệu chính:
- Bảng
Account: Lưu trữ thông tin nhân sự gồm họ tên, ngày sinh, số CMND, tên đăng nhập (username), mật khẩu (pass) và mã số thẻ RFID (mathe).
- Bảng
Điểm danh: Lưu dữ liệu thô nhận từ khối Client gửi lên gồm trường mã thẻ (mathe) và thời gian quét (thoigian).
- Bảng
Bảng công: Lưu dữ liệu tính toán tổng hợp gồm giờ vào, giờ ra, tổng số giờ làm việc trong ngày và thời gian làm thêm.
- Phân quyền hệ thống: Hệ thống thiết lập hai quyền truy cập rõ rệt: Quyền Quản trị viên (Admin) cho phép tạo, sửa, xóa hồ sơ nhân viên, can thiệp và hiệu chỉnh bảng công; Quyền Nhân viên chỉ cho phép đăng nhập để theo dõi bảng công và lịch trình làm việc của chính bản thân.
Nội dung chính theo từng chương
Chương 1: Giới thiệu
Chương này phân tích tổng quan bối cảnh phát triển của khoa học kỹ thuật và ứng dụng công nghệ RFID trong quản lý hiện đại. Tác giả chỉ ra tính cấp thiết của việc áp dụng RFID tại Việt Nam nhằm giảm tải gánh nặng hạch toán thủ công cho nhân viên kế toán doanh nghiệp. Nội dung chương công bố mục đích nghiên cứu, 5 mục tiêu trọng tâm, 3 nhiệm vụ cụ thể, cùng các giới hạn về công nghệ (sử dụng PHP, MySQL, Wi-Fi ESP8266 và cập nhật dữ liệu mỗi ngày).
Chương 2: Cơ sở lý thuyết
Nội dung chương trình bày chi tiết nền tảng lý thuyết và cấu tạo của các công nghệ thành phần:
- Cú pháp và phương thức hoạt động của ngôn ngữ PHP khi nhúng vào trang HTML.
- Đặc tính của hệ quản trị cơ sở dữ liệu MySQL và các chuẩn lệnh SQL tương thích ANSI.
- Kiến trúc phần cứng bo mạch Arduino Uno R3, thông số vi điều khiển ATmega328, sơ đồ chân nguồn, reset, các chuẩn giao tiếp nối tiếp Serial, USB, SPI và TWI (I2C), kèm môi trường lập trình Arduino IDE.
- Đặc điểm của bo mạch Arduino Pro Mini, cách ghép nối chân UART với cổng nạp ngoài, cùng quy trình 4 bước nạp mã nguồn.
- Cấu tạo, nguyên lý cảm ứng điện từ và thông số kỹ thuật của module RFID RC522 (tần số 13.56 MHz, chip MFRC522).
- Đặc điểm kỹ thuật của module Wi-Fi ESP8266, các chuẩn bảo mật mạng và chế độ truyền thông qua tập lệnh AT.
- Nguyên lý điều khiển màn hình tinh thể lỏng LCD 16x2 kết hợp mạch chuyển đổi giao tiếp I2C và module Micro SD Card.
Chương 3: Thiết kế hệ thống
Chương 3 là phần trọng tâm về kỹ thuật, mô tả chi tiết quá trình hiện thực hóa mô hình:
- Xác định các yêu cầu kỹ thuật cần đạt được của bài toán đối với cả hai phía Client và Server.
- Xây dựng sơ đồ khối toàn hệ thống và trình bày chi tiết nguyên lý hoạt động của từng khối: khối nguồn (5–12V DC), khối RFID, khối điều khiển Arduino Uno, khối hiển thị LCD và LED, khối Pro Mini, khối Realtime, khối ESP8266 và khối Micro SD Card.
- Trình bày bảng so sánh kỹ thuật giữa Arduino, PIC 18F4550 và vi điều khiển họ 8051.
- Thiết kế chi tiết sơ đồ nguyên lý nối chân phần cứng giữa bo vi điều khiển với các module ngoại vi.
- Xây dựng sơ đồ lưu đồ giải thuật cho toàn bộ hệ thống, lưu đồ hoạt động của Client, lưu đồ tiếp nhận dữ liệu và xử lý của Server, lưu đồ quản lý tài khoản nhân viên.
- Thiết kế cấu trúc cơ sở dữ liệu MySQL với 3 bảng:
Account, Điểm danh và Bảng công.
Chương 4: Kết quả đạt được và đánh giá kết quả
Chương này trình bày mô hình phần cứng thực tế đã hoàn thiện và kết quả chạy thử nghiệm hệ thống:
- Mô hình phần cứng máy quẹt thẻ Client hoạt động độc lập, kết nối thành công với mạng Wi-Fi và truyền chuỗi dữ liệu lên máy chủ qua giao thức TCP.
- Giao diện phần mềm Server trên nền web hoạt động ổn định: cho phép người dùng đăng nhập phân quyền, quản trị viên xem danh sách nhân viên, tra cứu bảng công tổng hợp hoặc bảng công chi tiết của từng cá nhân.
- Đánh giá hệ thống: Hoạt động tự động, tiết kiệm chi phí linh kiện, giao diện thân thiện; dữ liệu được bảo toàn nhờ cơ chế ghi song song vào thẻ nhớ SD.
Chương 5: Kết luận và hướng phát triển
Tác giả tổng kết toàn bộ quá trình nghiên cứu: đã hoàn thành việc thiết kế, chế tạo mạch phần cứng, lập trình phần mềm quản trị và xây dựng cơ chế truyền dữ liệu qua Internet. Đồng thời, chương chỉ ra các mặt chưa hoàn thiện và định hướng nâng cấp hệ thống trong tương lai về mặt bảo mật và khả năng mở rộng.
Kết quả và đóng góp
- Kết quả kỹ thuật đạt được:
- Chế tạo thành công khối máy quét Client hoàn chỉnh, phối hợp hoạt động nhịp nhàng giữa hai vi điều khiển ATmega328 (Uno R3 và Pro Mini) thông qua bus truyền thông I2C.
- Hệ thống đọc chính xác mã UID của thẻ RFID chuẩn Mifare 13.56 MHz, trích xuất chính xác thời gian thực từ module RTC và xuất thông tin ra màn hình LCD 16x2.
- Truyền tải thành công gói tin chứa dữ liệu quẹt thẻ từ Client lên Web Server qua module Wi-Fi ESP8266 bằng phương thức HTTP GET.
- Thực hiện thành công cơ chế ghi lưu đồng thời dữ liệu quẹt thẻ vào tập tin
.txt trên module thẻ nhớ Micro SD qua giao tiếp SPI, ngăn ngừa rủi ro mất mát dữ liệu khi mạng gặp sự cố.
- Xây dựng hoàn chỉnh phần mềm quản lý trên máy chủ bằng PHP và CSDL MySQL với đầy đủ chức năng đăng ký, đăng nhập, phân quyền, cập nhật thông tin nhân sự và tự động tổng hợp bảng chấm công.
- Đóng góp của đề tài do tác giả tự nêu:
- Đề xuất một giải pháp quản lý ngày công nhân viên trực tuyến có chi phí chế tạo thấp, tận dụng các linh kiện nguồn mở phổ biến.
- Tự động hóa hoàn toàn quy trình chấm công và tính toán số giờ làm việc, loại bỏ thao tác thủ công của nhân viên kế toán.
- Cung cấp cơ chế lưu trữ dữ liệu kép (vừa đẩy lên cơ sở dữ liệu qua mạng, vừa sao lưu cục bộ tại thẻ nhớ vật lý), nâng cao độ tin cậy vận hành cho hệ thống nhúng.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế của hệ thống (theo văn bản):
- Khả năng cập nhật dữ liệu tức thời lên máy chủ phụ thuộc trực tiếp vào tính ổn định của đường truyền mạng Wi-Fi và Internet.
- Hệ thống chưa xử lý triệt để các biến cố bất thường xảy ra trong quá trình sử dụng thực tế tại doanh nghiệp.
- Chưa tích hợp các cơ chế bảo mật nâng cao để mã hóa chuỗi dữ liệu truyền giữa Client và Server qua cổng UART và sóng Wi-Fi.
- Việc định danh chỉ dựa trên mã UID của thẻ RFID, chưa có biện pháp ngăn chặn hành vi quẹt thẻ hộ giữa các nhân viên.
- Hướng phát triển đề tài:
- Mở rộng quy mô hệ thống cho phép kết nối nhiều máy quét thẻ Client khác nhau về cùng một Web Server trung tâm.
- Bổ sung thuật toán mã hóa dữ liệu truyền nhận nhằm đảm bảo an toàn thông tin trên môi trường mạng Internet.
- Hoàn thiện giải thuật xử lý các tình huống phát sinh phức tạp trong quy trình chấm công tại các doanh nghiệp quy mô lớn.
Giá trị tham khảo
Đồ án tốt nghiệp này mang lại giá trị tham khảo thiết thực cho sinh viên, giảng viên và kỹ sư thuộc các chuyên ngành Công nghệ Kỹ thuật Máy tính, Điện tử – Viễn thông, Công nghệ Thông tin và Hệ thống Nhúng:
- Thiết kế phối hợp đa vi điều khiển: Cung cấp giải pháp mẫu về việc sử dụng hai vi điều khiển (Uno R3 và Pro Mini) giao tiếp qua bus I2C để chia sẻ tải xử lý tác vụ giữa đọc cảm biến tần số cao và quản lý kết nối mạng.
- Tích hợp đa chuẩn truyền thông phần cứng: Tài liệu trình bày rõ cách kết hợp đồng thời nhiều chuẩn giao tiếp nối tiếp trên một hệ thống vi điều khiển duy nhất (I2C cho LCD và RTC; SPI cho RC522 và Micro SD Card; UART mềm cho ESP8266).
- Mô hình tích hợp IoT - Web Server: Cung cấp cấu trúc mã nguồn giải thuật từ khâu đọc cảm biến phần cứng, đóng gói chuỗi dữ liệu, truyền nhận qua Wi-Fi bằng lệnh AT, cho đến khâu xử lý yêu cầu HTTP bằng PHP và lưu trữ trong cơ sở dữ liệu MySQL.
Câu hỏi thường gặp
1. Hệ thống xử lý như thế nào để ngăn chặn việc mất dữ liệu điểm danh khi xảy ra sự cố mất kết nối mạng Internet?
Khi nhân viên quẹt thẻ, ngoài việc truyền dữ liệu qua module Wi-Fi ESP8266 lên Web Server, vi điều khiển Arduino Uno R3 đồng thời xuất dữ liệu gồm mã thẻ và thời gian quẹt thẻ vào một tập tin định dạng .txt lưu trong thẻ nhớ Micro SD (thông qua module Micro SD giao tiếp SPI). Nhờ cơ chế lưu trữ cục bộ này, toàn bộ nhật ký quẹt thẻ vẫn được bảo toàn ngay cả khi mất tín hiệu mạng Internet.
2. Dựa trên cơ sở nào nhóm tác giả quyết định chọn nền tảng Arduino thay vì vi điều khiển PIC 18F4550 hay họ 8051 (AT89xx)?
Căn cứ vào bảng so sánh kỹ thuật và chi phí tại Chương 3, vi điều khiển rời như 89S52 (50.000 VNĐ) hay PIC (120.000 VNĐ) có giá linh kiện rời rẻ hơn Arduino Uno R3 (khoảng 210.000 VNĐ). Tuy nhiên, để sử dụng các vi điều khiển rời, người phát triển phải thiết kế mạch in, rửa hàn mạch và chi thêm khoảng 150.000 VNĐ mua bộ nạp code chuyên dụng. Trong khi đó, Arduino Uno R3 tích hợp sẵn mạch nạp USB, sử dụng chip ATmega328 tốc độ 16 MHz, bộ nhớ Flash 32 KB, hỗ trợ hệ thống thư viện phong phú, giúp tiết kiệm đáng kể thời gian thi công và phù hợp với chi phí nghiên cứu.
3. Nhiệm vụ cụ thể của hai vi điều khiển Arduino Uno R3 và Arduino Pro Mini trong khối Client được phân chia như thế nào?
Arduino Pro Mini đảm nhận nhiệm vụ giao tiếp trực tiếp với module RFID RC522 qua chuẩn SPI để đọc mã thẻ mỗi khi nhân viên quẹt thẻ, sau đó truyền mã ID này sang Arduino Uno R3 qua giao tiếp I2C. Arduino Uno R3 giữ vai trò là khối xử lý trung tâm của Client: tiếp nhận ID thẻ từ Pro Mini, lấy mốc thời gian từ module Realtime qua I2C, điều khiển hiển thị màn hình LCD và hệ thống LED, truyền dữ liệu lên Server qua module Wi-Fi ESP8266 và ghi dữ liệu dự phòng vào thẻ Micro SD.
4. Cơ sở dữ liệu MySQL của hệ thống được cấu trúc gồm những bảng nào và chứa các thông tin gì?
Cơ sở dữ liệu của hệ thống gồm 3 bảng chính: Bảng Account lưu trữ thông tin cá nhân của nhân viên (họ tên, ngày sinh, số CMND, tên đăng nhập, mật khẩu, mã thẻ); Bảng Điểm danh lưu dữ liệu nhật ký truyền từ Client lên (mã thẻ và thời gian quẹt thẻ); Bảng Bảng công lưu kết quả tính toán giờ công làm việc của nhân viên (giờ vào, giờ ra, tổng số giờ làm việc trong ngày và thời gian làm thêm).
5. Cơ chế phân quyền trên phần mềm máy chủ (Server) được thiết lập ra sao đối với người dùng?
Hệ thống thiết lập hai quyền truy cập riêng biệt: Người dùng thuộc cấp Quản lý (Admin) có toàn quyền quản lý tài khoản nhân viên (thêm, xóa, chỉnh sửa thông tin) và theo dõi, điều chỉnh bảng công của tất cả nhân viên trong doanh nghiệp; Người dùng là Nhân viên chỉ được cấp quyền đăng nhập vào hệ thống để tra cứu, theo dõi bảng công và lịch sử làm việc của chính bản thân họ.
Kết luận
Đồ án tốt nghiệp "Hệ thống chấm công online qua RFID" của sinh viên Trần Hoàng Công và Diệp Huỳnh Gia Huy đã xây dựng thành công mô hình điểm danh tự động kết hợp giữa phần cứng nhúng và máy chủ quản trị web. Bằng việc phối hợp linh hoạt giữa vi điều khiển Arduino, công nghệ nhận dạng thẻ RFID 13.56 MHz, module Wi-Fi ESP8266 và cơ sở dữ liệu MySQL, hệ thống đáp ứng tốt các yêu cầu thu thập thời gian vào ra, tính toán ngày công và lưu trữ dự phòng tại chỗ. Đây là tài liệu tham khảo có giá trị học thuật và thực tiễn cao cho các nghiên cứu thuộc lĩnh vực kỹ thuật máy tính và ứng dụng IoT trong quản lý doanh nghiệp.