基於W5500實現的考勤系統

概述

工具:W5500EVB,RC-522射頻模塊,蜂鳴器模塊

編譯環境:keil5

目的:通過W5500EVB講讀取到的IC卡信息上傳到後台數據庫,後台處理後實現瀏覽器端登錄瀏覽用戶打卡信息。

後台接收到相應的數據後開始處理數據並實現在瀏覽器端顯示IC卡的ID以及綁定客戶的用戶名,打卡時間,簽到狀態等信息。該系統還添加有用戶註冊,登錄,密碼找回等功能。

過程

整個系統的實現主要分為以下兩部分:

如圖1所示,模塊驅動及數據上傳;

2,後台數據處理及前端顯示;

整個系統的前端顯示可通過瀏覽器註冊,登錄,添加和查詢用戶信息,密碼找回,生產用戶的Excel表格等。下面分別介紹兩個部分的實現過程。

 

  • 模塊驅動及數據上傳

該部分的實現相對簡單,網上有很多關於RC-522的驅動代碼,我就不在贅述了。這裡主要說一下讀取到卡的ID以後的操作。在這之前還要先講一下單片機的網絡連接方案。

網絡連接方案有很多,例如傳統的軟件TCP / IP協議棧方案;較新的硬件的TCP / IP協議棧方案;軟件協議棧代碼量較大,對工程師來說工作量也相對較大硬件協議棧較為簡單,只需要將要發送的數據交給網絡芯片處理就行了。數據的發送和接收都有該芯片來實現。我們只需在應用層傳輸/讀取數據就行了。

硬件協議棧的方案是由WIZnet的首次提出,並成功推出以太網芯片系列.W5500EVB就是採用以STM32RCT6為主控芯片加W5500以太網芯片的方案來實現網絡接入的功能。

設備在讀取到卡的ID以後將ID數據封裝打包以後交給W5500,W5500將數據通過HTTP協議將數據發送給後台服務器並接收服務器返回的響應報文。成功發送和響應後蜂鳴器會發出50ms的響聲來提示數據上傳成功。如不成功則會發出100ms的響聲來提示數據上傳錯誤。數據上傳的代碼如下:

其中post_data_to_server()函數是將ID數據打包成HTTP報文的格式。Send函數是W5500的官方庫函數用來執行數據的發送。getSn_RX_RSR()函數是讀取SOCKET的接收緩存來判斷是否有數據需要接收,這裡是來接收HTTP服務器的響應報文。

以上就實現了IC卡數據讀取和上傳的功能,下面說一下後台服務器和前端實現的部分。

 

後台數據處理及前端顯示 

2、後台數據處理及前端顯示

該系統的後台服務器的環境搭建採用的是

該系統的後台服務器的環境搭建採用的是Apache + php+ MySQL組合,該組合非常適合開發中小型的web應用,開發的速度比較快。本系統中在硬件設備將卡的ID數據上傳到服務器以後,服務器接收並將數據與數據庫中的數據進行對比,然後更新與此ID對應的用戶信息。瀏覽器再向服務器發出請求報文,服務器將數據庫中的數據發送給瀏覽器並顯示。

根據上面說的在設備上傳數據之前我們需要先將卡的ID插入到數據庫中,而且還要在已登錄的狀態下插入、查看、刪除數據。再加上權限設置,這樣才算是一個相對較完整的系統設置。

首先我們在phpMyAdmin中新建自己的數據庫,如圖:

其中company是註冊用戶是所填寫的用戶信息;

Record是用來存儲用戶所添加的員工打卡簽到的信息;

Register是用來存儲用戶添加的員工信息;

Test是存儲用戶員工的簽到狀態;

Time是存儲簽到時間;

Uaccount是存儲用戶的賬戶信息;

以上字段是用來存儲用戶的各項數據和信息的,瀏覽器在向服務器請求數據的時候服務器會從這裡將對應的數據取出交給瀏覽器並顯示。

服務器部分的功能是由服務器腳本語言PHP來編寫實現的。首先我們要寫一個系統註冊和登陸的頁面,然後將註冊信息存儲在數據庫,這樣下次登陸就可以直接比對數據庫來判斷是否為有效用戶。如圖為註冊登陸界面:

註冊登陸成功以後就可進入簽到信息列表界面,該界面用來顯示用戶所添加的員工信息的簽到狀態。因為剛註冊所以我們要先添加員工信息。

如圖點擊用戶管理中心進入員工信息界面:

在該界面我們可查看、添加、修改、刪除員工信息以及添加上下班時間。在完善這些信息後瀏覽器將這些數據信息發送給服務器,服務器再將這些數據插入到數據庫中。上圖中的信息列表、員工列表都是在完善員工信息和簽到信息以後服務器從數據庫中拿出發送到瀏覽器顯示的結果。

這些工作完成以後服務器就可以接受來自設備上傳的卡ID數據並將改數據與數據庫中的已記錄數據進行對比進而執行相應的操作。

此外該系統還有密碼找回、生產Excel報表、用戶搜索等功能。關於密碼找回在登陸界面點擊忘記密碼然後填寫註冊時的郵箱就可通過郵件來重新設置自己的登陸密碼;如圖:

關於生產報表點擊了信息列表頁面的生成報表就可以直接下載系統自動生成的員工信息列表;該過程是由服務器自動完成,服務器向數據庫索要用戶員工信息然後生成Excel表格;如圖:

關於用戶搜索是在瀏覽器部分輸入用戶員工姓名信息,瀏覽器將這些數據提交給服務器,服務器再將這些數據與數據庫中的數據進行對比然後將該員工的信息以表格的形式顯示在瀏覽器頁面,如圖:

以上就是關於後台處理數據及前端瀏覽器顯示的全部過程,到此整個系統的後台處理就完成了,我們可以通過瀏覽器登陸查看相關數據信息。

關於考勤系統的總結:

該系統主要有註冊,登陸,密碼找回,添加員工信息,設置簽到時間,查看/修改/刪除員工信息,查看員工簽到信息以及搜索的功能。在實現這些功能的開發過程中主要運用PHP服務器腳本語言和MySQL的數據庫語言以及HTML瀏覽器腳本語言來完成數據在數據庫和服務器以及瀏覽器之間的傳輸。在瀏覽器顯示的代碼中還添加了CSS代碼來修改HTML標籤的樣式以增強瀏覽器端顯示的可視性。