陳景發(fā) 舒雪姣 譚韻瑩
摘 要:該文采用STM32F103單片機控制器、3G網(wǎng)絡(luò)模塊SIM5320E以及FM-180指紋識別模塊設(shè)計考勤終端,實現(xiàn)考勤數(shù)據(jù)采集與傳輸功能。采用SQLite設(shè)計服務(wù)器端數(shù)據(jù)庫實現(xiàn)考勤數(shù)據(jù)記錄、統(tǒng)計以及導(dǎo)出等功能,通過3G移動通信網(wǎng)絡(luò)將考勤終端連接至服務(wù)器端數(shù)據(jù)庫,最終搭建一個基于3G網(wǎng)絡(luò)傳輸?shù)闹讣y考勤管理系統(tǒng)。
關(guān)鍵詞:3G網(wǎng)絡(luò) 指紋 考勤管理
中圖分類號:TP315 文獻標(biāo)識碼:A 文章編號:1672-3791(2016)03(a)-0009-02
常見的指紋考勤系統(tǒng)有兩種,一種是聯(lián)機式產(chǎn)品,多個系統(tǒng)共享指紋識別設(shè)備,指紋的比對由后臺計算機支持;另一種是脫機型產(chǎn)品,單機就可完成考勤全部過程,使用方便,但必須連接到互聯(lián)網(wǎng)來遠程傳送數(shù)據(jù)。以上兩種考勤系統(tǒng)均是通過寬帶有線網(wǎng)絡(luò)接入來傳送數(shù)據(jù),它們存在一個共同問題:對于偏遠山區(qū)等無寬帶網(wǎng)絡(luò)接入?yún)^(qū)域無法實現(xiàn)考勤,具有一定的局限性。目前3G網(wǎng)絡(luò)建設(shè)已經(jīng)基本達到各個區(qū)域的無縫覆蓋要求,覆蓋區(qū)域遠大于有線寬帶網(wǎng)絡(luò),因此基于3G移動網(wǎng)絡(luò)傳輸?shù)闹讣y考勤方式有更廣闊的應(yīng)用空間,基本能滿足任何單位的考勤需要。
1 指紋考勤管理終端設(shè)計
1.1 硬件方案設(shè)計
該設(shè)計采用STM32F103單片機,通過串口1控制3G網(wǎng)絡(luò)模塊來發(fā)送相應(yīng)的AT指令來實現(xiàn)數(shù)據(jù)傳輸功能,通過串口3控制指紋識別模塊,通過硬件SPI接口實現(xiàn)對TFT顯示屏的控制,通過8個I/O口實現(xiàn)對鍵盤鍵值的檢測(如圖1)。
核心硬件模塊包括指紋識別模塊、3G網(wǎng)絡(luò)傳輸模塊、液晶顯示模塊、鍵盤輸入模塊。指紋識別模塊采用FM-180,能儲存1 000枚指紋模板信息,flash容量大;3G網(wǎng)絡(luò)傳輸模塊采用基于WCDMA網(wǎng)絡(luò)的SIM5320E模塊;液晶顯示模塊采用TFT顯示屏,分辨率320×240,可使用SPI接口傳輸,自帶SPI FLASH字庫電路;鍵盤輸入模塊采用矩陣鍵盤,使用行和列的掃描實現(xiàn)使用8個I/O口來讀取16個按鍵。
1.2 指紋識別功能實現(xiàn)
指紋識別模塊FM-180有比對與識別,指紋刪除,指紋錄入等功能,通過自調(diào)節(jié)的比對算法實現(xiàn)指紋的準(zhǔn)確識別,對干濕指紋均有不錯的效果。該模塊有4個引腳,分別是VCC,GND,RX與TX,可通過串口與STM32的串口連接通訊,RX連接PB10(UART3 TX),TX連接PB11(UART3 RX),VCC可以連接3.6~6 V的電壓。
指紋識別模塊驅(qū)動程序設(shè)計思路:先初始化指紋模塊所用到的通訊接口串口3,在執(zhí)行主函數(shù)的主循環(huán)之前先確認(rèn)指紋識別模塊是否與單片機正常連接;單片機向模塊發(fā)送握手指令,如果指紋模塊正常連接,指紋模塊回復(fù)一個長度為12,確認(rèn)碼為0x00的應(yīng)答包,握手函數(shù)返回1,表示握手成功,同時DS4燈常亮;如果發(fā)送3次指令仍然沒有應(yīng)答包返回或者應(yīng)答包不正確,握手函數(shù)返回0,認(rèn)為握手不成功,DS4亮2 s后滅。
1.3 3G網(wǎng)絡(luò)傳輸功能實現(xiàn)
STM32單片機與3G網(wǎng)絡(luò)傳輸模塊通信使用串口1,單片機通過向3G網(wǎng)絡(luò)傳輸模塊的串口發(fā)送相應(yīng)的AT指令來向上位機實時發(fā)送打卡信息。
打卡信息發(fā)送的格式為:sn;msgType;devID;staffID;time;status。sn代表打卡條目序列號,每次從考勤系統(tǒng)發(fā)送給上位機的sn號應(yīng)該不同,從而區(qū)分不同的打卡條目;msgType代表消息的種類,在開機時,發(fā)送1,代表設(shè)備登錄,在打卡時發(fā)送2,代表有人打卡;devID代表設(shè)備的序列號,設(shè)置為1;staffID代表職員的工號,由四位數(shù)組成,范圍是0000-0999;time代表打卡信息發(fā)送的時間,格式為:年、月、日、時、分、秒;status代表設(shè)備的運行狀態(tài),在線為1,離線為0。
在考勤系統(tǒng)開機時單片機先向3G網(wǎng)絡(luò)傳輸模塊發(fā)送AT指令,如果返回OK,代表單片機與模塊正常連接;等3G網(wǎng)絡(luò)傳輸模塊搜索網(wǎng)絡(luò)成功后,打開數(shù)據(jù)網(wǎng)絡(luò),讀取系統(tǒng)時間;使用隨機函數(shù)產(chǎn)生的6位數(shù)數(shù)字作為sn,用于讓上位機區(qū)分不同條目的打卡信息。假設(shè)上位機所連接的IP地址為“183.238.55.244”,軟件設(shè)置的端口號為8000,而發(fā)送數(shù)據(jù)時需要設(shè)置所發(fā)數(shù)據(jù)長度,在程序設(shè)計中,需要發(fā)送信息的長度會自動改變的變量都轉(zhuǎn)換成了字符型,因此發(fā)送的長度固定為37,使用命令A(yù)T+UDPSEND=37,\"183.238.55.244\",8000\r\n用于發(fā)送請求,等待20 ms,等待程序返回一個>標(biāo)志,然后向上位機發(fā)送設(shè)備登錄信息,格式為sn;msgType;devID;staffID;time;status,使用/x1a命令執(zhí)行發(fā)送操作,當(dāng)有人打卡時,讀取當(dāng)前的時間與指紋號,向上位機發(fā)送實時打卡信息。
2 指紋考勤管理服務(wù)器端方案設(shè)計
服務(wù)器端可以采用SQLite設(shè)計一個輕量級數(shù)據(jù)庫,用VC語言設(shè)計數(shù)據(jù)顯示界面,要求包括考勤終端連接狀態(tài)、員工信息管理、考勤數(shù)據(jù)記錄、考勤數(shù)據(jù)導(dǎo)出等功能。數(shù)據(jù)庫里有員工信息和考勤記錄兩張表,員工管理可通過讀取員工信息表并將記錄展示在界面。當(dāng)考勤終端機將員工考勤記錄發(fā)到服務(wù)器,服務(wù)器將考勤記錄保存在數(shù)據(jù)庫。顯示記錄的功能可從SQLite中讀取員工考勤記錄,并將記錄展示在界面上。導(dǎo)出記錄功能可將數(shù)據(jù)庫中的考勤記錄表中數(shù)據(jù)提取,并保存在本地磁盤(如圖2)。
3 結(jié)語
由于公司跨區(qū)域發(fā)展、行業(yè)固有屬性等因素也一直影響考勤制度有效執(zhí)行,比如在偏遠山區(qū)等無寬帶網(wǎng)絡(luò)接入?yún)^(qū)域進行建筑施工作業(yè)公司、保險行業(yè)經(jīng)常性臨時舉辦的培訓(xùn)班、戶外開設(shè)拓展活動等等都無法實現(xiàn)考勤,而該設(shè)計方案恰恰解決了上述問題。該設(shè)計仍然存在一些不足,比如該設(shè)計只是實現(xiàn)了3G網(wǎng)絡(luò)模塊傳輸?shù)墓δ?,但作為一個完整的產(chǎn)品,還需要集合WIFI、網(wǎng)線、3G網(wǎng)絡(luò)傳輸模塊等不同傳輸方式,方便用戶靈活選擇。該設(shè)計雖不足以成為一個產(chǎn)品,但對于指導(dǎo)通信類、電子類專業(yè)學(xué)生系統(tǒng)化學(xué)習(xí)通信系統(tǒng)設(shè)計還是很有幫助的。
參考文獻
[1] 廖義奎.Cortex-M3之STM32嵌入式系統(tǒng)設(shè)計[M].北京:中國電力出版社,2012.
[2] (英)Joseph Yiu.Cortex-M3權(quán)威指南[M].宋巖,譯.北京:北京航空航天大學(xué)出版社,2009.
[3] 楊軍.指紋識別系統(tǒng)及其應(yīng)用[J].安防科技,2003(1):57-58.