基于RFID的門禁管理系統(tǒng)_第1頁
基于RFID的門禁管理系統(tǒng)_第2頁
基于RFID的門禁管理系統(tǒng)_第3頁
基于RFID的門禁管理系統(tǒng)_第4頁
基于RFID的門禁管理系統(tǒng)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課程設(shè)計(jì)任務(wù)書學(xué)院計(jì)算機(jī)與信息工程學(xué)院專業(yè)物聯(lián)網(wǎng)工程課程名稱RFID條碼與技術(shù)題目基于RFID的門禁管理系統(tǒng)完成期限自2015年12月23日至2016年1月5日共兩周一、項(xiàng)目的目的系統(tǒng)學(xué)習(xí)MicrosoftVisualStdio2010開發(fā)環(huán)境及設(shè)計(jì)語百,學(xué)習(xí)MicrosoftSQLServer2008開發(fā)環(huán)境及設(shè)計(jì)語百;研究基于ISO15693協(xié)議開發(fā)的應(yīng)用,研究RFIDft術(shù)在實(shí)際生活中的具體應(yīng)用;綜合利用上述知識(shí),實(shí)現(xiàn)對(duì)標(biāo)簽寫入人員信息、自動(dòng)識(shí)別人員信息、對(duì)非法人員發(fā)出警報(bào)并顯示門的開關(guān)狀態(tài)等功能。二、項(xiàng)目任務(wù)的主要內(nèi)容和要求1、任務(wù)內(nèi)容設(shè)一套基于RFID的門禁系統(tǒng),利用RFID技術(shù),實(shí)

2、現(xiàn)對(duì)標(biāo)簽寫入人員信息、自動(dòng)識(shí)別人員信息、對(duì)非法人員發(fā)出警報(bào)并顯示門內(nèi)容的開關(guān)狀態(tài)等功能。2、任務(wù)要求該系統(tǒng)能夠完成人員信息的寫入、對(duì)信息的自動(dòng)識(shí)別、監(jiān)控是及否有非法人員闖入和介紹實(shí)驗(yàn)室的諦言播報(bào)。任務(wù)三、項(xiàng)目設(shè)計(jì)(研究)思路系統(tǒng)主要包括硬件電路連接和軟件模塊的設(shè)計(jì)。硬件電路連接部分,主要是將RFID實(shí)驗(yàn)箱中的ISO15693M莫塊通過用口線連接到PC端,進(jìn)行數(shù)據(jù)的傳輸。軟件模塊部分,主要是利用MicrosoftVisualStdio2010開發(fā)環(huán)境來完成軟件界面的設(shè)計(jì),達(dá)到寫入、監(jiān)控、識(shí)別的目的;另外還用到了MicrosoftSQLServer2008數(shù)據(jù)庫開發(fā)環(huán)境,保存人員的相關(guān)信息。四、具

3、體成果形式和要求1、符合設(shè)計(jì)要求的可展示的硬件,軟件系統(tǒng);2、各項(xiàng)設(shè)計(jì)功能滿足設(shè)計(jì)需求,功能完成且運(yùn)行流暢;、3、系統(tǒng)使用說明及設(shè)計(jì)報(bào)告。進(jìn)度安排起止日期工作內(nèi)容12.23-12.25搜集相關(guān)資料,準(zhǔn)備實(shí)驗(yàn)相關(guān)物品以及對(duì)應(yīng)軟件工具12.26-1.4學(xué)習(xí)MicrosoftVisualStdio2010和MicrosoftSQLServer2008開發(fā)環(huán)境及設(shè)計(jì)語言,進(jìn)行設(shè)計(jì)的硬件搭建,數(shù)據(jù)庫建立,界面設(shè)計(jì)1.5項(xiàng)目驗(yàn)收和答辯主要參考資料1孫三才,許熏伊.精通訊ASP.net程序設(shè)計(jì)M.北京:中國鐵道出版社,2003:37-462華國棟,劉文予.基于ADO.NET勺數(shù)據(jù)庫訪問及其性能優(yōu)化J.電腦知

4、識(shí)與技術(shù)學(xué)術(shù)交流,2007(09):20-213朱印紅,蘇振巍.ASP.NET+SQLServe網(wǎng)站模塊化開發(fā)全程實(shí)錄.北京:清華大學(xué)出版社,2009.74常永英.ASP.NET程序設(shè)計(jì)教程:C#版.北京:機(jī)械工業(yè)出版社,2009.95李書濤.SQLServer語言程序設(shè)計(jì)教程.北京:北京理工大學(xué)出版社,1993:65-70.指導(dǎo)教師意見(簽字):年月日系(教研室)主任意見(簽字):年月日課程設(shè)計(jì)說明書學(xué)院名稱:計(jì)算機(jī)與信息工程學(xué)院班級(jí)名稱:物聯(lián)網(wǎng)工程學(xué)生姓名:學(xué)號(hào):題目:基于RFID的門禁管理系統(tǒng)指導(dǎo)教師:起止日期:2止5年12月23-2016年1月5日目錄一、緒論11.1引言1二、相關(guān)知識(shí)

5、11.1 ISO15693協(xié)議11.1.1 ISO15693標(biāo)準(zhǔn)相關(guān)指令簡(jiǎn)介11.1.2 相關(guān)說明31.2 MicrosoftVisualStdio2010開發(fā)環(huán)境31.3 MicrosoftSQLServer2008開發(fā)環(huán)境33 、概要設(shè)計(jì)43.1 總體設(shè)計(jì)43.1.1 需求規(guī)定43.1.2 運(yùn)行環(huán)境43.1.3 基本設(shè)計(jì)概念43.1.4 系統(tǒng)流程53.1.5 人工處理的部分53.2 接口設(shè)計(jì)53.2.1 用戶接口53.2.2 外部接口53.2.3 內(nèi)部接口63.3 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)63.3.1 物理結(jié)構(gòu)設(shè)計(jì)的要點(diǎn)63.3.2 數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系64 、詳細(xì)設(shè)計(jì)64.1 系統(tǒng)流程圖64.2

6、 打開串口的程序說明74.3 讀卡的程序說明84.4 增加、刪除、修改的程序說明84.5 自動(dòng)讀卡的程序說明85 、系統(tǒng)測(cè)試85.1 串口的測(cè)試95.2 初始化卡片105.2.1 讀卡105.2.2 添加105.2.3 修改115.2.4 刪除125.3 門禁監(jiān)視125.3.1 自動(dòng)讀卡135.3.2 語音136 、結(jié)論14附錄15參考文獻(xiàn)300一、緒論1.1引言射頻識(shí)別(RadioFrequencyIdentification,RFID)技術(shù)是從20世紀(jì)80年代開始走向成熟的一項(xiàng)自動(dòng)識(shí)別技術(shù),是當(dāng)前最受人們關(guān)注的熱點(diǎn)之一,該項(xiàng)技術(shù)既傳統(tǒng)也充滿新意和活力。射頻識(shí)別是無線電識(shí)別的簡(jiǎn)稱,它源于無線

7、電通信技術(shù),綜合了現(xiàn)代計(jì)算機(jī)智能控制、智能識(shí)別、計(jì)算機(jī)網(wǎng)絡(luò)等高新技術(shù),順應(yīng)了計(jì)算機(jī)集成制造系統(tǒng),電子商務(wù)等熱點(diǎn)應(yīng)用的發(fā)展需要。射頻識(shí)別應(yīng)用電磁場(chǎng),以非接觸、無視覺、高可靠的方式傳遞特定識(shí)別信息,由于大規(guī)模集成電路技術(shù)的日益成熟,使得射頻識(shí)別系統(tǒng)的體積大大減少,從而進(jìn)入了實(shí)用化階段。射頻識(shí)別技術(shù)具有工作距離大、信息收集處理快捷及較好的環(huán)境適應(yīng)性等優(yōu)點(diǎn),極大地加速了有關(guān)信息的采集和處理,在近年來獲得了極為迅速的發(fā)展。隨著科技的發(fā)展,人們開始追求智能化的生活,而門禁系統(tǒng)則是生活中非常實(shí)用的系統(tǒng),在這個(gè)即要求效率又要求安全的需求下,門禁系統(tǒng)將逐漸走進(jìn)人們的生活。隨著建設(shè)的發(fā)展,公司、工廠、學(xué)校都安裝了

8、門禁系統(tǒng)。門禁系統(tǒng)的普及率快速增長,由于其安全和便捷使得門禁系統(tǒng)得到了用戶的認(rèn)可。但系統(tǒng)可能還不夠完善,存在某些不夠人性化的方面。如果技術(shù)足夠成熟,系統(tǒng)足夠健壯那么會(huì)得到廣大用戶的實(shí)用。針對(duì)社會(huì)發(fā)展的需求和面臨的問題結(jié)合RFID技術(shù),設(shè)計(jì)并實(shí)現(xiàn)基于RFID的門禁管理系統(tǒng),實(shí)現(xiàn)人員信息的錄入、人員識(shí)別、陌生人警報(bào)等。二、相關(guān)知識(shí)2.1ISO15693協(xié)議ISO15693是針對(duì)射頻識(shí)別應(yīng)用的一個(gè)國際標(biāo)準(zhǔn),該標(biāo)準(zhǔn)定義了工作在13.56Mhz下智能標(biāo)簽和讀寫器的空氣接口及數(shù)據(jù)通信規(guī)范,符合此標(biāo)準(zhǔn)的標(biāo)簽最遠(yuǎn)識(shí)讀距離達(dá)到2米。1.1.1 ISO15693標(biāo)準(zhǔn)相關(guān)指令簡(jiǎn)介在RFID_ReaderPC機(jī)軟件控

9、制下可執(zhí)行ISO15693標(biāo)準(zhǔn)相關(guān)指令,其必備指令和常用可選指令一共有15個(gè)。指令定義如下表2-1所示,具體如下:表2-1指令定義CommandCodeMethodDiscription01InventoryAnti-CollisionCheckRFfieldandreadallUIDsofRFIDtags.UsesInventorycommand.02StayQuietStayQuiet:Putaspecifictagintoquietstate.Tagsinquietstatewillnotreplytoinventorycommand.03SelectSelect:Putaspecifi

10、ctagintoselectedstate.Tagsinselectedstatewillonlyreplytocommandswithselectbiton.04ResetToReadyResetToReadyPutalltagsintheinitialreadystate.AlltagsareinreadystatewhentheyfirstentertheRFfield.05WriteAFIWriteAFIByteChangingtheAFIbyteoftag(s)toanewvalue.06LockAFILockAFIByteDisallowingfuturechangingoftag

11、(s)'AFIvalue07ReadSngleBlockReadSingleBlockReadthedatastoredintag(s)'singleblock.08WriteSingleBlockWriteSingleBlockWriteuserdataintotag(s)'singleblock09LockBlockLockSingleBlocD:isallowfuturewritingintoselectedtag(s)single'block.0AReadMultiBlockReadMultiBlockReadthedatastoredintag(s)m

12、ulti'block.0BWriteMultiBlockWriteMultiBlock:Writeuserdataintotag(s)multiblock0CWriteDSFIDWriteDSFID:WriteanewDSFIDbytevalueintotag(s).0DLockDSFIDLockDSFIDDisallowchangingofDSFIDbytevalueinthefuturefortag(s).0EGetSystemInfoGetSystemInformationGettaginformation(e.g.manufacturer,size,etc)fromtag.0F

13、GetMultiBlockSecurityStatusGetMultipleBlockSecurityStatus:Getthesecuritystatusofblock(s)fromtag(s).1.1.2 相關(guān)說明對(duì)命令功能通俗的描述和使用相關(guān)要求如下:01(Inventory)指令:強(qiáng)制的指令,對(duì)應(yīng)ISO15693標(biāo)準(zhǔn)的0x01指令;讀取RF場(chǎng)強(qiáng)范圍內(nèi)處于激活狀態(tài)的RFID標(biāo)簽。根據(jù)相應(yīng)的標(biāo)志,可以只讀取單個(gè)標(biāo)簽,也可以讀取多個(gè)標(biāo)簽,執(zhí)行防沖突功能,理論上可以一次讀出所有處于激活狀態(tài)的標(biāo)簽。02(StayQuiet):強(qiáng)制的指令,對(duì)應(yīng)ISO15693標(biāo)準(zhǔn)的0x02指令;使激活的標(biāo)簽進(jìn)入靜

14、默狀態(tài)。一次只能對(duì)單個(gè)標(biāo)簽操作,且必須跟在同一個(gè)標(biāo)簽的01(Inventory)指令之后。本系統(tǒng)的開發(fā)就是基于ISO15693協(xié)議,其中主要使用了Inventory方法,就行尋卡的操作,進(jìn)行功能的實(shí)現(xiàn)。2.2 MicrosoftVisualStdio2010開發(fā)環(huán)境VisualStudio可以用來創(chuàng)建Windows平臺(tái)下的Windows應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和Office插件。.NET的通用語言框架機(jī)制(CommonLanguageRuntime,CLR),其目的是在同一個(gè)項(xiàng)目中支持不同的語言所開發(fā)的組件。所有CLR支持的代碼都會(huì)被解釋成為CLR可執(zhí)行

15、的機(jī)器代碼然后運(yùn)行。高效的開發(fā)環(huán)境MicrosoftVisualStudio2010采用拖曳式便能完成軟件的開發(fā)。簡(jiǎn)簡(jiǎn)單單的操作便可以實(shí)現(xiàn)一個(gè)界面的生成。本系統(tǒng)就是利用MicrosoftVisualStudio2010開發(fā)環(huán)境中的Winform開發(fā)模板,進(jìn)行系統(tǒng)控制界面的開發(fā)。2.3 MicrosoftSQLServer2008開發(fā)環(huán)境SQL是英文StructuredQueryLanguage的縮寫,意思為結(jié)構(gòu)化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通。按照ANSI(美國國家標(biāo)準(zhǔn)協(xié)會(huì))的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL語句可以用來執(zhí)行各種各樣的操

16、作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)SQLServer是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng)。該系統(tǒng)具有以下特點(diǎn):安全性:可以以很高的安全性、可靠性和可擴(kuò)展性來運(yùn)行他們最關(guān)鍵任務(wù)的應(yīng)用程序。高效性:可以降低開發(fā)和管理他們的數(shù)據(jù)基礎(chǔ)設(shè)施的時(shí)間和成本。智能性:提供了一個(gè)全面的平臺(tái),可以在你的用戶需要的時(shí)候給他發(fā)送觀察和信息。所以本系統(tǒng)就采用了MicrosoftSQLServer2008開發(fā)環(huán)境作為用戶相關(guān)信息的數(shù)據(jù)庫保存體,用來方便快捷的獲取到用戶的信息。三、概要設(shè)計(jì)3.1 總體設(shè)計(jì)3.1.1 需求規(guī)定利用RFID技術(shù),實(shí)現(xiàn)對(duì)標(biāo)簽寫入用戶信息、對(duì)用戶信息的識(shí)別與監(jiān)控。標(biāo)簽寫入學(xué)用戶信息,通過讀取標(biāo)簽,

17、將獲取的標(biāo)簽號(hào),寫入數(shù)據(jù)庫,同時(shí)跟此標(biāo)簽編號(hào)對(duì)應(yīng)的還有用戶姓名,單位名稱,聯(lián)系電話等信息也同時(shí)寫進(jìn)數(shù)據(jù)庫的一張表中。也就是說,實(shí)際上標(biāo)簽里沒有存儲(chǔ)關(guān)于用戶的任何信息,所有的信息都存放在數(shù)據(jù)庫中。門禁監(jiān)視,讀到的RFID標(biāo)簽的編號(hào),根據(jù)該編號(hào)從數(shù)據(jù)庫中讀出該用戶的信息顯示在界面上,并且歡迎該用戶;若數(shù)據(jù)庫中沒有該便簽編號(hào),界面上顯示為“無效卡”,發(fā)出警報(bào)信息提示出示有效證件。3.1.2 運(yùn)行環(huán)境操作系統(tǒng):Windows7操作系統(tǒng)軟件環(huán)境:MicrosoftVisualStdio2010開發(fā)環(huán)境+SQLServer2008數(shù)據(jù)庫硬件環(huán)境:RFID系統(tǒng)實(shí)驗(yàn)箱3.1.3 基本設(shè)計(jì)概念本系統(tǒng)的設(shè)計(jì)由UI

18、層,邏輯層和數(shù)據(jù)庫層三部分組成,如表3-1所示:表3-1三層架構(gòu)UI層(C-邏輯層(標(biāo)簽寫入用戶信息,修改信息,門禁監(jiān)視功能)數(shù)據(jù)庫層(保存信息)UI層:完成PC端的控制界面,完成與用戶之間的交互邏輯層:具體的功能實(shí)現(xiàn)層,完成具體的功能,與用戶界面進(jìn)行銜接數(shù)據(jù)庫層:保存關(guān)于人員的相關(guān)信息,包括卡的編號(hào)、用戶姓名、單位名稱本系統(tǒng)的設(shè)計(jì)概念就是將代碼與界面分開,既保證用戶的良好的交互也保證數(shù)據(jù)的分離,達(dá)到方便、快捷的目的。3.1.4 系統(tǒng)流程該門禁管理系統(tǒng),系統(tǒng)運(yùn)行時(shí),主要有以下步驟: 先選擇串口號(hào)以及波特率,接著進(jìn)行打開串口; 為某一個(gè)用戶錄入信息,選取一張白卡,讀出卡號(hào),填寫用戶的信息,點(diǎn)擊保

19、存按鈕,數(shù)據(jù)成功保存至數(shù)據(jù)庫,同樣的方法,將要進(jìn)入該房間的用戶的姓名、單位名稱、聯(lián)系電話、稱謂以及用戶照片都添加到數(shù)據(jù)庫進(jìn)行保存; 用戶刷卡進(jìn)入某房間,已成功注冊(cè)的用戶可以進(jìn)入房間,系統(tǒng)根據(jù)用戶所持卡的編號(hào)查詢出用戶的信息,顯示在系統(tǒng)界面,歡迎用戶進(jìn)入,如果用戶持未注冊(cè)的卡刷卡進(jìn)入房間,則系統(tǒng)界面上回顯示該卡無無效卡,并發(fā)出警報(bào);注:1).修改已注冊(cè)的用戶信息,若發(fā)現(xiàn)已注冊(cè)的用戶信息有誤,可進(jìn)行修改用戶信息或者刪除用戶信息和所持卡的卡號(hào)。2) .點(diǎn)擊界面上的實(shí)驗(yàn)室介紹,語音播報(bào)實(shí)驗(yàn)室介紹。3.1.5 人工處理的部分在本系統(tǒng)中,需要人工處理的部分,主要是讀卡時(shí),將用戶的相關(guān)信息與卡片綁定,然后存

20、入數(shù)據(jù)庫,可省去用戶進(jìn)入房間的相關(guān)行為,使進(jìn)入房間的過程更加便捷,也使管理人員可以更容易的統(tǒng)計(jì)相關(guān)信息。3.2 接口設(shè)計(jì)3.2.1 用戶接口用戶接口是為了方便用戶與計(jì)算機(jī)應(yīng)用交流的窗口,通過接口,用戶可以操作使用應(yīng)用程序,本系統(tǒng)中,使用者可以添加用戶的信息,可以對(duì)用戶進(jìn)入房間進(jìn)行門禁監(jiān)視,也可以查看對(duì)房間(實(shí)驗(yàn)室等)的介紹或者注意事項(xiàng)。3.2.2 外部接口本系統(tǒng)中的外部接口主要是指PC端的串口與RFID實(shí)驗(yàn)箱上的串口進(jìn)行連接,設(shè)置波特率等基本的連接操作。3.2.3 內(nèi)部接口內(nèi)部接口方面,各模塊之間采用函數(shù)調(diào)用、參數(shù)傳遞、返回值的方式進(jìn)行信息傳遞。具體參數(shù)的結(jié)構(gòu)將在下面數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的內(nèi)容中說明。

21、接口傳遞的信息將是以數(shù)據(jù)結(jié)構(gòu)封裝了的數(shù)據(jù),以參數(shù)傳遞或返回值的形式在各模塊間傳輸。3.3 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)3.3.1 物理結(jié)構(gòu)設(shè)計(jì)的要點(diǎn)物理數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)主要是設(shè)計(jì)數(shù)據(jù)在模塊中的表示形式。數(shù)據(jù)在模塊中都是以結(jié)構(gòu)的方式表示。用戶的信息表名:tb1_UserInfo表的屬性:TagNumber(卡的編號(hào)),UserName(用戶姓名),UserCompany(單位名稱),UserAppellative(習(xí)慣稱謂),UserTelephone(聯(lián)系電話),UserPhoto(用戶照片)。3.3.2 數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系通過定義用戶的數(shù)據(jù)表,在程序中可通過SQL語句對(duì)數(shù)據(jù)表進(jìn)行基本的增刪改查操作。在后臺(tái)

22、對(duì)用戶進(jìn)行數(shù)據(jù)庫添加、修改、刪除等都要對(duì)數(shù)據(jù)表進(jìn)行操作。以及自動(dòng)讀卡階段,要從數(shù)據(jù)庫中提取信息,然后將信息顯示出來。四、詳細(xì)設(shè)計(jì)4.1 系統(tǒng)流程圖該系統(tǒng)的運(yùn)行過程,先打開串口,然后進(jìn)行讀卡操作,修改數(shù)據(jù)庫信息,最后進(jìn)行門禁監(jiān)視的功能,本系統(tǒng)的詳細(xì)流程圖如下圖4-1所示:開始打開串口F是否在數(shù)據(jù)庫中通過關(guān)閉串口結(jié)束圖4-1系統(tǒng)流程圖4.2 打開串口的程序說明打開串口的程序主要是靠按鈕btn_Open_Dem0勺事件觸發(fā)程序來打開串口,其中程序中主要是靠reader.OpenSerialPort這個(gè)函數(shù)來實(shí)現(xiàn)對(duì)串口以及波特率的選擇操作,具體的程序代碼見附錄btn_Open_Demo_Click函數(shù)

23、??梢酝ㄟ^重置按鈕來清除串口和波特率的文本框中的數(shù)據(jù),重置的程序主要是靠按鈕btn_Refresh_Demo的事件觸發(fā)程序來清除數(shù)據(jù),其中程序中主要是靠btn_Refresh_Demo_Click來實(shí)現(xiàn)的,具體代碼見附錄btn_Refresh_Demo_Click函數(shù)。4.3 讀卡的程序說明讀卡的程序主要是通過讀卡按鈕btn_InventoryDemo的事件觸發(fā)程序來進(jìn)行讀卡的操作,在事件觸發(fā)程序中,主要用到了Inventory函數(shù)用來進(jìn)行尋卡操作,可以將讀卡器上放置的所有卡片都讀取出來,具體的程序代碼見附錄btn_InventoryDemo_Click函數(shù)。4.4 增加、刪除、修改的程序說明

24、在讀出卡的編號(hào)之后,增加、刪除、修改的程序也主要是通過按鈕btn_Add、btn_Modify、btn_Delete的事件觸發(fā)程序來進(jìn)行對(duì)用戶的相關(guān)信息進(jìn)行操作,其中主要是用到了SQM旬進(jìn)行增加、刪除、修改的操作,具體的程序代碼見附錄btn_Add_Click、btn_Modify_Click、btn_Delete_Click函數(shù)。4.5 自動(dòng)讀卡的程序說明在門禁監(jiān)視程序中還有語音選項(xiàng),選擇語音選項(xiàng),則可以有語音提示。其中自動(dòng)讀卡的程序,也主要是是通過按鈕btn_Monitor的事件觸發(fā)程序來進(jìn)行讀卡的操作,其中用到了線程Monitor函數(shù),是讀卡器能都不間斷的進(jìn)行讀卡操作,具體的代碼見附錄b

25、tn_Monitor_Click函數(shù)和Monitor_Click函數(shù)。語音提示的程序,主要是通過chk_Voice的觸發(fā)來進(jìn)行語音的提示,具體的代碼見附錄chk_Voice.Checked中。五、系統(tǒng)測(cè)試基于上述的思路,本小組開發(fā)出來的系統(tǒng)界面如下圖5-1所示:班D應(yīng)用申目|清除圖5-1RFID門禁管理系統(tǒng)界面從上述的圖片中可以看出,本界面的主要分區(qū),第一分區(qū)是串口的分區(qū),包括選擇串口以及設(shè)置波特率;第二分區(qū)主要是初始化卡片的分區(qū),包括讀卡操作、添加、修改、刪除、清除、瀏覽等操作;第三分區(qū)主要是門禁監(jiān)視的分區(qū),包括自動(dòng)讀卡的操作,以及語音的功能操作。5.1串口的測(cè)試當(dāng)利用RFID實(shí)驗(yàn)箱與PC端

26、的串口進(jìn)行連接時(shí),通過查看本機(jī)的設(shè)備管理器,查看對(duì)應(yīng)的用口號(hào),查看的結(jié)果如下圖5-2所示:自設(shè)至管理鑿文件操作聞董看(V)幫助&畛I直I口演I啰V當(dāng)DES<TOP*ARTAHTK*DVD/CD-ROM驅(qū)igIDEATA/ATAPI拄制靠Q處理器g再福控制建>=打印隊(duì)列>等電池VT7加口(COM和LPT)卡USB-SERIALCH34O(COM3>?計(jì)算機(jī)IIUfaClajp圖5-2串口的查看當(dāng)用口選擇之后,在串口分區(qū)中,選擇正確的串口,然后設(shè)置波特率,這里程序中自動(dòng)將波特率設(shè)置為115200;串口打開成功,在ListBox控件中,顯示出來串口打開成功提示信息,具

27、體的顯示如下圖5-3所示;WKWLXLSJKr-.KtARFI口自用工歷H2D16X1/31G:-14:4<itil*LjC圖5-3用口打開提示信息5.2 初始化卡片本功能分區(qū)中的主要功能有讀卡的功能、添加、修改、刪除等功能。具體的圖示見圖5-1所示。5.2.1 讀卡當(dāng)點(diǎn)擊讀卡按鈕時(shí),觸發(fā)讀卡按鈕的事件處理程序,此時(shí)放置兩張卡片在讀寫器上,可讀取出來卡片的編號(hào),具體如圖5-4所示式線當(dāng)正別式觸門禁提示一RF工D應(yīng)用項(xiàng)目2016/1/31&:a:必invent口巷令執(zhí)行成功讀取至U的卡片數(shù)量為:2,2016/1/316:妙:如|:串口匚。股打開成功!圖5-4讀卡的示意圖從上述圖中可

28、以看出,放置的兩張白卡,下面ListBox中顯示出來了讀取到的卡片的數(shù)量,同時(shí)也讀取出來了卡的編號(hào),在下拉框中可以選擇不同的卡片編號(hào),進(jìn)行添加用戶姓名以及單位名稱,完善用戶的基本信息。5.2.2 添加當(dāng)讀取到白卡的編號(hào)時(shí),在下面的TextBlock文本框中,填入用戶姓名以及單位名稱等,點(diǎn)擊添加按鈕,信息將自動(dòng)保存到數(shù)據(jù)庫tb1_UserInfo表中,以此類推,再放置兩張白卡,完善三張卡片所對(duì)應(yīng)的用戶信息,以及后續(xù)的使用,數(shù)據(jù)庫中tb1_UserInfo中的信息保存如下圖5-5所示。TagNumberMe削am。JserCompany版dkpart"LrAppel編.UserTWeUs

29、erTelepho.HUserPhctoE0M01Q0O12.,盤三2ANULL磷NULL1233412«32NULLE0(b4i)00013.26NULL立NULL1524231234NULLE033MOOOQO.至區(qū)2CNUU.老威NULL1312543245NULLMLNULLNULLNULLNULLNULLNULL圖5-5數(shù)據(jù)庫用戶信息從圖中可以看出數(shù)據(jù)庫中保存了卡片的卡號(hào)、用戶姓名以及單位名稱等信5.2.3 修改當(dāng)想修改一張卡片所對(duì)應(yīng)的習(xí)慣稱謂等信息時(shí),可以將卡片放置在讀卡器上,點(diǎn)擊讀卡,此時(shí)界面上將顯示出來卡片所對(duì)應(yīng)的信息,在TextBlock文本框中,可以直接更改卡片所

30、對(duì)應(yīng)的習(xí)慣稱謂等信息,然后再點(diǎn)擊修改按鈕,即可完成修改信息的功能,若修改成功,會(huì)在下方的ListBox中提示修改成功修改之前,放置卡片,界面顯示如下如5-6所示;即工D應(yīng)用項(xiàng)目打開重置美閉2712016/1/3豬;07門1:工mentsy命令執(zhí)行成功,讀取到的卡片數(shù)量為,U圖5-6修改之前修改之后,例如習(xí)慣稱謂王二,改為老王,然后點(diǎn)擊修改按鈕,結(jié)果如下圖5-7所示;鄢口通置F-選擇靂口 COM3 1波特率市2口01打開 關(guān)閉重置實(shí)驗(yàn)室介紹20ie/l/318二06:;4:InuentQr道令執(zhí)行成功.讀取到的卡片數(shù)量為,1.2016/1/318二06:1露修改成功42016/1/31比口6;。

31、5:工皿3。通令執(zhí)行成功,讀取到的卡片數(shù)量為1<.圖5-7修改之后從上述圖片中,可以看出來,已將習(xí)慣稱謂更改,且更改成功,在數(shù)據(jù)庫中進(jìn)行查看習(xí)慣稱謂的信息,此時(shí)的信息顯示如下圖5-8所示;TaqNumberUserNameUserComp3nrvUserDepart,UerAppellat,.UwrTitleUserTelephOr.,UserPhoinE0040100012,.,壇2ANULLNULL12334124332NULLE005400001扛之日NULL老王NULL15431234NULLE0330400000.起四2CNLill碎NULl12312543245NULLNUL

32、LNULLNULLNULLNULLNULL圖5-8修改之后的數(shù)據(jù)庫從數(shù)據(jù)庫中的信息來看,卡片所對(duì)應(yīng)的信息已經(jīng)改變,完成了修改的功能。5.2.4 刪除當(dāng)某一用戶已經(jīng)不在被允許進(jìn)入時(shí),則可以選擇刪除按鈕進(jìn)行操作,刪除掉數(shù)據(jù)庫中關(guān)于某一用戶的信息。放置一張卡片,如趙四的卡片,點(diǎn)擊刪除按鈕,然后查看數(shù)據(jù)庫中的信息,查看信息是否被刪除,具體數(shù)據(jù)庫中信息如下圖5-9所示;UserNaiTbeDwtCompanvterAppellat,wrTillfrUserTelfrphcji,-,wrPhoto£0040100012Q2ANULLNULL12334124332NULL卜E0054000013.

33、-Q2BNULL老王NULL152W31234NULLNULLNULLNULLNULLNULLNULLNULLNULL圖5-9刪除用戶后的數(shù)據(jù)庫從上述圖片上,可以看出此時(shí)用戶趙四已經(jīng)不在數(shù)據(jù)庫中,已刪除成功。5.3 門禁監(jiān)視門禁監(jiān)視分區(qū)主要是完成自動(dòng)讀卡,語音提示的功能操作。當(dāng)卡片放到讀卡器上時(shí),自動(dòng)讀取卡片內(nèi)的信息,讀取處卡片的編號(hào)、用戶姓名、單位名稱、聯(lián)系電話和照片。當(dāng)選擇了語音后,自動(dòng)尋卡時(shí)會(huì)有語音提示“歡迎您某某",如果為非數(shù)據(jù)庫中卡則會(huì)提示“請(qǐng)您出示有效證件”,界面顯示如下圖5-10所示;圖5-10讀無效卡時(shí)的門禁顯示5.3.1 自動(dòng)讀卡點(diǎn)擊StartMonitor按鈕,開

34、啟自動(dòng)讀卡模式,接著把卡放在讀卡器上,進(jìn)行讀卡,完成讀卡動(dòng)作。例如,選擇張三的卡片,自動(dòng)讀卡時(shí),讀取到張三的單位名稱,聯(lián)系電話,照片等信息;此時(shí)界面上的顯示為圖5-11所示。圖5-11自動(dòng)讀卡在用戶進(jìn)入時(shí),在讀卡器上放上數(shù)據(jù)庫中存在的卡,則可以看到卡片的編號(hào)和用戶姓名等信息。5.3.2 語音勾選語音,自動(dòng)尋卡時(shí)會(huì)有語音提示,如果為數(shù)據(jù)庫中存在的卡則會(huì)有“歡迎您某某”的語音提示,如果為數(shù)據(jù)庫中不存在的卡則會(huì)提示“請(qǐng)您出示有效證件”并顯示無效卡;界面如下圖5-12所示:1門禁監(jiān)視£StopLlfonitor10語音圖5-12打開語音界面綜上所示,串口的連接、初始化卡片、門禁監(jiān)視三個(gè)分區(qū)分

35、別實(shí)現(xiàn)了不同的功能需求,基本上滿足了項(xiàng)目的基本需求,完成了人員信息的寫入、對(duì)信息的自動(dòng)識(shí)別、監(jiān)控是否有非法人員闖入和介紹實(shí)驗(yàn)室的語言播報(bào)的功能,且測(cè)試成功,系統(tǒng)基本完成。六、結(jié)論通過這次的RFID原理與應(yīng)用的課程設(shè)計(jì)的學(xué)習(xí),在這門禁管理系統(tǒng)中,能夠?qū)崿F(xiàn)將用戶的信息進(jìn)行快速的識(shí)別和準(zhǔn)確的存儲(chǔ)。通過本次的學(xué)習(xí)了解到了RFID的工作原理和技術(shù)特點(diǎn),進(jìn)而做出了基于RFID的門禁管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。用戶信息錄入門禁系統(tǒng)的數(shù)據(jù)庫后,用戶可以將卡放在讀卡器上,如果是數(shù)據(jù)庫中存在的用戶,這打開門,讓用戶進(jìn)入,如果卡片為數(shù)據(jù)庫中沒有的,那么將進(jìn)入不了,并且發(fā)出警報(bào),提示處事有效證件。并顯示信息無效。并且可以實(shí)

36、現(xiàn)用戶的增加和刪除,錯(cuò)誤的信息也可以修改,用戶還可以提交自己的相片。經(jīng)過我們小組成員的不斷努力,該系統(tǒng)雖然實(shí)現(xiàn)了門禁管理系統(tǒng)的基本功能,但還有很多的不足之處。比如,如果用戶卡丟失了,怎么通過別的方式進(jìn)入房間,預(yù)想方案有,通過輸入密碼進(jìn)入,或者通過上傳的照片進(jìn)行人臉識(shí)別。但是現(xiàn)在還不能完成,希望在以后的不斷地學(xué)習(xí)中能夠更加完善該門禁管理系統(tǒng)的功能。附錄打開串口的程序代碼如下所示:privatevoidbtn_Open_Demo_Click(objectsender,EventArgse)if(!reader.IsOpen)if(cmb_PortName_Demo.SelectedIndex<

37、;0)AddInfoDemo(String.Format("錯(cuò)誤:請(qǐng)您選擇要打開的用口!");cmb_PortName_Demo.Focus();return;if(cmb_PortName_Demo.SelectedIndex<0)AddInfoDemo(String.Format("錯(cuò)誤:請(qǐng)您選擇要使用的波特率!");cmb_PortName_Demo.Focus();return;StringPortName=cmb_PortName_Demo.SelectedItem.ToString();Int32BaudRate=115200;/Int

38、32.Parse(cmb_BaudRate.Text.Trim();Bytevalue=reader.OpenSerialPort(PortName,BaudRate);if(value=0x00)AddInfoDemo(String.Format("串口0打開成功!",PortName);elseAddInfoDemo(String.Format("錯(cuò)誤:串口0打開失敗!",PortName);elseAddInfoDemo(String.Format("錯(cuò)誤:串口已經(jīng)處于打開狀態(tài)!");重置的程序代碼如下所示:privatevoi

39、dbtn_Refresh_Demo_Click(objectsender,EventArgse)cmb_PortName_Demo.Text=""cmb_BaudRate_Demo.Text=""讀卡的程序代碼如下所示:privatevoidbtn_InventoryDemo_Click(objectsender,EventArgse)if(!reader.IsOpen)AddInfoDemo("請(qǐng)先打開用口。");return;Int32TagCount=0x00;String口TagNumbers=newString0;Byter

40、esult=reader.Inventory(ModulateMethod.FSK,InventoryModel.Multiple,refTagCount,refTagNumbers);/Byteresult=reader.GetAllTagsNum(outTagCount,outTagNumbers);if(result=0x00)AddInfoDemo(String.Format("Inventory命令執(zhí)行成功,讀取到的卡片數(shù)量為:0。",TagCount);elseAddInfoDemo(String.Format("Inventory命令執(zhí)行失敗,失敗代

41、碼0。",result);return;if(TagCount>0)cmb_TagNumbers.Items.Clear();for(Int32i=0;i<TagNumbers.Length;i+)cmb_TagNumbers.Items.Add(TagNumbersi);cmb_TagNumbers.SelectedIndex=0;添加功能的程序代碼如下所示:privatevoidbtn_Add_Click(objectsender,EventArgse)if(txt_UserName.Text.Trim().Length<1)AddInfoDemo("

42、請(qǐng)?zhí)顚懹脩粜彰?quot;);txt_UserName.Focus();if(txt_UserCompany.Text.Trim().Length<1)AddInfoDemo("請(qǐng)?zhí)顚懝久Q。");txt_UserCompany.Focus();if(txt_UserTelephone.Text.Trim().Length<1)AddInfoDemo("請(qǐng)?zhí)顚懧?lián)系電話。");txt_UserTelephone.Focus();if(txt_Appellative.Text.Trim().Length<1)");AddInf

43、oDemo("請(qǐng)?zhí)顚懥?xí)慣稱謂txt_Appellative.Focus();SqlParameter口sp;if(pic_UserPhoto.ImageLocation=null)sp=newSqlParameter口newSqlParameter("TagNumber",SqlDbType.NVarChar,50),newSqlParameter("UserName",SqlDbType.NVarChar,50),newSqlParameter("UserCompany",SqlDbType.NVarChar,50),ne

44、wSqlParameter("UserTelephone",SqlDbType.NVarChar,50)newSqlParameter("UserAppellative",SqlDbType.NVarChar,50);elsesp=newSqlParameter口newSqlParameter("TagNumber",SqlDbType.NVarChar,50),newSqlParameter("UserName",SqlDbType.NVarChar,50),newSqlParameter("UserC

45、ompany",SqlDbType.NVarChar,50),newSqlParameter("UserTelephone",SqlDbType.NVarChar,50),newSqlParameter("UserAppellative",SqlDbType.NVarChar,50),newSqlParameter("UserPhoto",SqlDbType.Image);sp0.Value=cmb_TagNumbers.SelectedItem.ToString().Trim();sp1.Value=txt_UserNam

46、e.Text.Trim();sp2.Value=txt_UserCompany.Text.Trim();sp3.Value=txt_UserTelephone.Text.Trim();sp4.Value=txt_Appellative.Text.Trim();/rb_Male.Checked?"先生":"女士";if(pic_UserPhoto.ImageLocation!=null)Byte口imagedata;using(FileStreamfs=newFileStream(pic_UserPhoto.ImageLocation,FileMode.O

47、pen)imagedata=newBytefs.Length;fs.Read(imagedata,0,imagedata.Length);fs.Close();sp5.Value=imagedata;Int32count;if(pic_UserPhoto.ImageLocation=null)count=SqlHelper.ExecuteNonQuery(SqlHelper.CONSTRINGCommandType.Text,"InsertIntotbl_UserInfo(TagNumber,UserName,UserCompany,UserTelephone,UserAppella

48、tive)Values(TagNumber,UserName,UserCompany,UserTelephone,UserAppellative)sp);elsecount=SqlHelper.ExecuteNonQuery(SqlHelper.CONSTRINGCommandType.Text,"InsertIntotbl_UserInfo(TagNumber,UserName,UserCompany,UserTelephone,UserAppellative,UserPhoto)Values(TagNumber,UserName,UserCompany,UserTelephone

49、,UserAppellative,UserPhoto)”,sp);if(count>0)AddInfoDemo("添加成功。");btn_InventoryDemo_Click(sender,e);elseAddInfoDemo("添力口失敗。");)修改功能的程序代碼如下所示:privatevoidbtn_Modify_Click(objectsender,EventArgse)if(cmb_TagNumbers.SelectedIndex<0)AddInfoDemo("請(qǐng)選擇要修改的用戶");cmb_TagNumber

50、s.Focus()return;if(txt_UserName.Text.Trim().Length<1)AddInfoDemo("請(qǐng)?zhí)顚懹脩粜彰?quot;);txt_UserName.Focus();if(txt_UserCompany.Text.Trim().Length<1)AddInfoDemo("請(qǐng)?zhí)顚懝久Q。");txtUserCompany.Focus();if(txt_UserTelephone.Text.Trim().Length<1)AddInfoDemo("請(qǐng)?zhí)顚懧?lián)系電話。");txt_UserTe

51、lephone.Focus();if(txt_Appellative.Text.Trim().Length<1)AddInfoDemo("請(qǐng)?zhí)顚懥?xí)慣稱謂。");txt_Appellative.Focus();SqlParameter口sp;if(pic_UserPhoto.ImageLocation=null)sp=newSqlParameter口newSqlParameter("TagNumber",SqlDbType.NVarChar,50),newSqlParameter("UserName",SqlDbType.NVar

52、Char,50),newSqlParameter("UserCompany",SqlDbType.NVarChar,50),newSqlParameter("UserTelephone",SqlDbType.NVarChar,50),newSqlParameter("UserAppellative",SqlDbType.NVarChar,50);elsesp=newSqlParameter口newSqlParameter("TagNumber",SqlDbType.NVarChar,50),newSqlParame

53、ter("UserName",SqlDbType.NVarChar,50),newSqlParameter("UserCompany",SqlDbType.NVarChar,50),newSqlParameter("UserTelephone",SqlDbType.NVarChar,50),newSqlParameter("UserAppellative",SqlDbType.NVarChar,50),newSqlParameter("UserPhoto",SqlDbType.Image);sp

54、0.Value=cmb_TagNumbers.SelectedItem.ToString().Trim();sp1.Value=txt_UserName.Text.Trim();sp2.Value=txt_UserCompany.Text.Trim();sp3.Value=txt_UserTelephone.Text.Trim();sp4.Value=txt_Appellative.Text.Trim();/rb_Male.Checked?"先生":"女士";if(pic_UserPhoto.ImageLocation!=null)Byte口imaged

55、ata;using(FileStreamfs=newFileStream(pic_UserPhoto.ImageLocation,FileMode.Open)imagedata=newBytefs.Length;fs.Read(imagedata,0,imagedata.Length);fs.Close();sp5.Value=imagedata;Int32count;if(pic_UserPhoto.ImageLocation=null)count=SqlHelper.ExecuteNonQuery(SqlHelper.CONSTRINGCommandType.Text,"Upda

56、tetbl_UserInfoSetUserName=UserName,UserCompany=UserCompany,UserTelephone=UserTelephone,UserAppellative=UserAppellativeWhereTagNumber=TagNumber",sp);elsecount=SqlHelper.ExecuteNonQuery(SqlHelper.CONSTRINGCommandType.Text,"Updatetbl_UserInfoSetUserName=UserName,UserCompany=UserCompany,UserTelephone=UserTelephone,UserAppellative=UserAppellative,UserPhoto=User

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論