• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      RFID的圖書館自助借閱系統(tǒng)的身份識別實(shí)現(xiàn)

      2022-03-16 07:16:18楊永明徐海霞
      物聯(lián)網(wǎng)技術(shù) 2022年3期
      關(guān)鍵詞:開發(fā)板用戶名刷卡

      楊永明,徐海霞

      (1.西安建筑科技大學(xué) 理學(xué)院,陜西 西安 710055;2.寧夏醫(yī)科大學(xué) 圖書館,寧夏 銀川 750004)

      0 引 言

      高效、方便、人性化的檢索方式是數(shù)字圖書館為用戶提供優(yōu)質(zhì)信息服務(wù)的必要保障。在數(shù)字圖書館的基礎(chǔ)上,近年來出現(xiàn)了一種新型的智慧圖書館,即在智能技術(shù)基礎(chǔ)上,以各種新技術(shù)、新服務(wù)理念以及新管理模式為輔助,所建立的不受時(shí)間和空間限制的新型圖書館模式。智慧圖書館將利用物聯(lián)網(wǎng)技術(shù)達(dá)到智慧化服務(wù)和管理的目的,當(dāng)然在這個(gè)萬物互聯(lián)的時(shí)代,還需要通過云計(jì)算和智慧化的一些設(shè)備來改造現(xiàn)有的傳統(tǒng)圖書館。其中當(dāng)屬RFID技術(shù)應(yīng)用最為廣泛,它改變了傳統(tǒng)圖書館的運(yùn)營服務(wù)模式,大大提高了圖書館管理人員的工作效率,極大地減少了工作量。圖書館的館藏量日益增大,如若按照以往傳統(tǒng)圖書館的管理方式,只有更加智能的信息系統(tǒng)才能在減輕管理人員負(fù)擔(dān)的同時(shí),為讀者提供更加綜合的信息服務(wù)。

      1 RFID定位技術(shù)

      RFID定位技術(shù)的基本原理是:通過一組固定式讀寫器讀取目標(biāo)RFID標(biāo)簽的特征信息(如身份ID、接收信號強(qiáng)度等),同樣可以采用近鄰法、多邊定位法、接收信號強(qiáng)度等方法確定RFID電子標(biāo)簽所在位置。RFID室內(nèi)定位系統(tǒng)的基本結(jié)構(gòu)通常由RFID電子標(biāo)簽、讀寫器、中間件及計(jì)算機(jī)數(shù)據(jù)庫組成。該系統(tǒng)通過參考標(biāo)簽和待定標(biāo)簽的信號強(qiáng)度RSSI的分析計(jì)算,利用“最近鄰居”算法和經(jīng)驗(yàn)公式得出定位標(biāo)簽的坐標(biāo)。

      RFID定位技術(shù)的優(yōu)點(diǎn):RFID電子標(biāo)簽的成本較低,可以大規(guī)模部署;RFID提供有源和無源兩種方案,無源方案沒有供電的問題,有源方案可以用紐扣電池持續(xù)數(shù)年地待機(jī),極大地降低功耗;RFID基站設(shè)備相對豐富,大功率設(shè)備和小功率的讀寫器產(chǎn)品比較多,項(xiàng)目實(shí)施更方便,也更便于維護(hù),適合各種場合的組網(wǎng)。

      隨著圖書館藏書量和建筑面積的逐漸增大,傳統(tǒng)的圖書館管理方式已經(jīng)不再適用。鑒于此,本文主要研究如何在用Java語言編寫的圖書管理系統(tǒng)中加入RFID進(jìn)行讀者的身份識別?;赗FID技術(shù)實(shí)現(xiàn)系統(tǒng)的登錄,即不刷卡或者沒有卡的無關(guān)人員并沒有該系統(tǒng)的使用權(quán)限。如果沒有RFID技術(shù)的應(yīng)用,無關(guān)人員只須注冊就能實(shí)現(xiàn)該系統(tǒng)的登錄,這顯然是不規(guī)范的。該技術(shù)的應(yīng)用,使得新用戶在注冊的同時(shí),需要獲得圖書館辦理的身份卡才能成為真正的用戶,這大大提高了圖書館的管理效率。

      2 開發(fā)實(shí)現(xiàn)

      2.1 硬件系統(tǒng)開發(fā)環(huán)境

      Arduino UNO是一款基于ATMEGA328P微控制器設(shè)計(jì)的Arduino開發(fā)板,它有14個(gè)數(shù)字輸入/輸出引腳、6個(gè)模擬輸入引腳、16 MHz石英晶振、USB接口、電源接口,支持在線串行編程以及復(fù)位按鍵。Arduino UNO開發(fā)板是Arduino系列中最經(jīng)典的開發(fā)板,而且它的編譯較為簡單,適合新手入門使用,只需要將開發(fā)板與電腦通過USB接口連接就可以通過開發(fā)軟件Arduino IDE進(jìn)行編譯開發(fā)。

      RFID-RC522模塊是采用MF RC522原裝芯片設(shè)計(jì)讀卡電路,使用方便,成本低廉,適用于設(shè)備開發(fā)、讀卡器開發(fā)等高級應(yīng)用以及進(jìn)行射頻卡終端設(shè)計(jì)/生產(chǎn)。該模塊可直接裝入各種讀卡器模具。模塊采用電壓為3.3 V,通過SPI接口簡單的幾條線就可以直接與用戶的任何CPU主板相連接進(jìn)行通信,可以保證模塊穩(wěn)定可靠地工作,并且讀卡距離遠(yuǎn)。模塊中的SDA引腳是用于選擇設(shè)備的引腳,SCK引腳用來接收時(shí)鐘信號,MOSI引腳是模塊的串口外圍接口,MISO引腳是串口數(shù)據(jù)輸出口,IRQ引腳是中段警告引腳,GND為接地引腳,RST引腳是復(fù)位和斷點(diǎn)輸入引腳,3.3 V是模塊的VCC引腳,該模塊只能在3.3 V的電壓下工作。

      2.2 軟件系統(tǒng)開發(fā)環(huán)境

      Eclipse是一種可擴(kuò)展的開放源代碼集成開發(fā)環(huán)境(IDE),是一款非常受歡迎的Java開發(fā)工具。該系統(tǒng)之所以選擇以Eclipse為開發(fā)環(huán)境,是因?yàn)樵搼?yīng)用完美適配Java Swing圖形管理界面,具有豐富的GUI插件,使得編程更加方便。在設(shè)計(jì)過程中能夠簡化操作。

      MySQL是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就提高了速度并增加了靈活性。MySQL使用更加容易,復(fù)雜程度較低。最重要的是,在Java連接數(shù)據(jù)庫的過程中適配性更高。

      完整的RFID系統(tǒng)由數(shù)據(jù)管理系統(tǒng)、閱讀器、電子標(biāo)簽三部分組成。數(shù)據(jù)管理系統(tǒng)通過網(wǎng)絡(luò)向閱讀器發(fā)出指令,閱讀器接收指令后通過天線發(fā)送射頻信息,射頻能量形成電磁場,其內(nèi)的電子標(biāo)簽被觸發(fā)并向閱讀器發(fā)送或修改存儲在內(nèi)的數(shù)據(jù),閱讀器通過解調(diào)和解碼后反饋信息給數(shù)據(jù)管理系統(tǒng)。在工作狀態(tài)下,讀寫器經(jīng)由射頻天線向標(biāo)簽發(fā)射一定頻率的信號,并接收返回信號,經(jīng)過簡單處理后把這些信號發(fā)送到后臺網(wǎng)絡(luò)。電子標(biāo)簽也叫射頻標(biāo)簽、感應(yīng)標(biāo)簽,主要用于存儲數(shù)據(jù),由天線和芯片組成,其中芯片又由控制器和存儲器構(gòu)成。電子標(biāo)簽是RFID系統(tǒng)中的關(guān)鍵組件,每個(gè)標(biāo)簽都擁有獨(dú)一無二的電子編碼。

      3 硬件設(shè)計(jì)

      本設(shè)計(jì)是基于RFID設(shè)計(jì)的自主借閱系統(tǒng),在該實(shí)驗(yàn)中最重要的是如何在一個(gè)普通的圖書管理系統(tǒng)中加入RFID技術(shù)。MF RC522是一款非接觸式讀寫卡芯片,能夠?qū)崿F(xiàn)本系統(tǒng)所需要的RFID功能。但是該芯片并不能直接將讀取到的信號發(fā)送至計(jì)算機(jī)串口,所以本系統(tǒng)還需要使用到Arduino開發(fā)板。本文選用的是Arduino UNO開發(fā)板。通過RC522芯片讀取卡片ID,將讀取到的信號傳輸給Arduino UNO,再經(jīng)由UNO打印至計(jì)算機(jī)串口,實(shí)現(xiàn)身份識別的功能。RC522與UNO的接線方式如圖1所示。

      圖1 硬件連線方式

      3.1 程序燒錄

      硬件連接好后,將UNO通過USB線連接至電腦,打開Arduino軟件,下載MF RC522外部庫。通過外部庫的實(shí)例,編寫需要燒錄至開發(fā)板的程序。

      首先添加頭文件,并對RST_PIN和SS_PIN定義引腳。運(yùn)用void setup()函數(shù)進(jìn)行初始化設(shè)置,設(shè)置串口的波特率為9 600 b/s,此設(shè)置其實(shí)不是固定的,只要與之后的Java串口通信中寫入的參數(shù)一致即可,否則系統(tǒng)會發(fā)生無法讀取的現(xiàn)象。使用loop()函數(shù),檢查MF RC522是否讀取到卡片的信息。然后將讀取到的卡片信息用Serial.print方法打印至串口。最后將編譯好的程序燒錄至UNO開發(fā)板,端口選擇為UNO所使用的端口。

      3.2 硬件測試

      Java具有串口通信的功能,可以讀取到串口的數(shù)據(jù),再將串口的數(shù)據(jù)與創(chuàng)立的數(shù)據(jù)庫進(jìn)行對比,這樣就能起到身份識別的作用。打開Arduino自帶的串口監(jiān)視器,完成刷卡操作,觀察串口監(jiān)視是否有數(shù)據(jù)傳輸,如果有,說明硬件部分RFID功能設(shè)計(jì)成功。

      3.3 類方法創(chuàng)建

      為了在自助借閱系統(tǒng)中加入RFID功能,首先需要打開電腦的串口,這樣才能通過串口收發(fā)數(shù)據(jù)。因此,創(chuàng)建一個(gè)OpenerAndCloser類,以查看計(jì)算機(jī)可用的串口。波特率設(shè)置為9 600 b/s,數(shù)據(jù)位設(shè)置為8,停止位為1。RxTx第三方類庫提供了豐富的對串口進(jìn)行操作的方法,在編寫Java串口通信部分的代碼時(shí),最常用的便是其中的CommPortIdentifier類。CommPortIdentifier類能夠管理和設(shè)置電腦可用的串口,是RxTx中的一個(gè)核心類。因?yàn)樾枰谐霰镜仉娔X可用的所有串口,所以用到這個(gè)類。其次,為了使該系統(tǒng)能成功接收到串口的數(shù)據(jù),需要對串口的參數(shù)進(jìn)行設(shè)置,即波特率為9 600 b/s,數(shù)據(jù)位為8,停止位為1。在RxTx第三方類庫中,提供了一個(gè)方法,為setSerialPortParams,能夠?qū)Υ趨?shù)進(jìn)行設(shè)置。此參數(shù)設(shè)置并不是固定的,只要在之后的模擬軟件中,與該系統(tǒng)寫入的參數(shù)一致即可,否則會發(fā)生無法讀取的現(xiàn)象。最后,為了避免本地串口被其他設(shè)備占用而導(dǎo)致該系統(tǒng)出現(xiàn)異常、發(fā)生崩潰的情況出現(xiàn),需要在編寫程序代碼的時(shí)候拋出該異常。在RxTx第三方類庫中,將此種異常定義為PortInUseException,使用try-catch語句進(jìn)行異常捕獲,并將該異常拋出。

      為了能夠成功接收到串口發(fā)出的數(shù)據(jù),并將其與現(xiàn)有數(shù)據(jù)庫中的用戶和管理員數(shù)據(jù)進(jìn)行比對,需要再創(chuàng)建一個(gè)Com4EventListener類方法,用于監(jiān)聽串口的數(shù)據(jù)流輸入,以便在之后登錄操作時(shí)調(diào)用。在獲取串口數(shù)據(jù)之前,需要先打開使用的串口,并拋出串口被其他設(shè)備占用的異常。為了獲取串口的輸入流,需要用到Java自帶的IO包。在Java串口通信中,主要用到了IO包中的InputStream類,對串口的輸入流進(jìn)行操作。首先,定義一個(gè)變量為從串口獲取到的輸入流,并對該輸入流進(jìn)行讀取。此時(shí),就需要用到InputStream類中的read方法,讀取串口的輸入流。為了避免程序使用過程中,發(fā)生IO錯誤,導(dǎo)致系統(tǒng)異常,需要在編寫代碼的過程中拋出該異常,避免程序出現(xiàn)錯誤;同時(shí)對打開的端口添加事件監(jiān)聽來監(jiān)聽端口發(fā)生的變化,這樣才能獲取串口的輸入流。在RxTx第三方類庫中,提供了一個(gè)名為SerialPort的類,其中的addEventListener方法能夠?qū)Υ谔砑邮录O(jiān)聽。因?yàn)樘砑邮录O(jiān)聽的目的是為了獲取串口的輸入流,所以監(jiān)聽事件類型應(yīng)為是否有數(shù)據(jù)達(dá)到,這樣才能讀取串口的數(shù)據(jù)。在SerialPort類中,使用notifyOnDataAvailable方法,將監(jiān)聽的事件類型定義為是否有數(shù)據(jù)到達(dá)串口。最后,將后端接收到的輸入流與數(shù)據(jù)庫中的用戶ID進(jìn)行對比,并在控制臺輸出該用戶的用戶名,以方便之后對系統(tǒng)進(jìn)行測試時(shí)找出系統(tǒng)的邏輯錯誤。

      4 系統(tǒng)測試

      將設(shè)計(jì)好的硬件設(shè)備通過USB接口連接至電腦。打開Eclipse,運(yùn)行編寫的圖書管理系統(tǒng),點(diǎn)擊“請刷卡”按鈕,之后完成刷卡操作,如圖2所示??梢钥闯?,原本不可編輯的用戶名文本框出現(xiàn)用戶名“cgd”的原因是:完成刷卡操作之后,UNO將RC522識別的卡片ID發(fā)送至端口,程序后端在數(shù)據(jù)庫中查找ID為64482076的數(shù)據(jù),并將其用戶名返回給文本框,用戶名文本框則自動出現(xiàn)了該用戶對應(yīng)的用戶名。

      圖2 圖書管理系統(tǒng)登錄界面

      圖3所示的Eclipse控制臺視圖清晰地展示了上述過程。點(diǎn)擊“請刷卡”按鈕后,系統(tǒng)接收到串口發(fā)送的數(shù)據(jù),在已經(jīng)創(chuàng)建的t_user數(shù)據(jù)表中找到ID=64482076的數(shù)據(jù),并將用戶名返回,成功模擬了刷卡登錄這一功能。

      圖3 Eclipse控制臺視圖

      5 結(jié) 語

      由于硬件和軟件的結(jié)合,離不開串口通信,軟件需要讀取并識別硬件發(fā)送的數(shù)據(jù)。本文選擇了目前最為流行的Java語言,因?yàn)樗哂心軌蛲瓿纱谕ㄐ诺奶攸c(diǎn);同時(shí)采用的Eclipse是一個(gè)開源的軟件,有很多簡化設(shè)計(jì)過程的插件可用。本文的創(chuàng)新點(diǎn)在于在普通圖書管理系統(tǒng)的基礎(chǔ)上加入RFID技術(shù),達(dá)到刷卡登錄的目的,即不通過鍵盤鍵入用戶和管理員的用戶名。RFID射頻識別系統(tǒng)由閱讀器和電子標(biāo)簽組成。對比于條形碼,它的適用范圍更廣。隨著時(shí)代的發(fā)展以及科技的進(jìn)步,圖書館不再需要人力看守管理,讀者也不需要自己前往圖書館就能進(jìn)行借還書。RFID將助力于無人值守自助借閱圖書館的實(shí)現(xiàn)。

      猜你喜歡
      開發(fā)板用戶名刷卡
      《護(hù)士進(jìn)修雜志》投稿程序
      機(jī)智的快遞員
      故事會(2017年17期)2017-09-04 17:36:42
      Microchip最新推出兩款PIC32 Curiosity開發(fā)板
      淺析單片機(jī)開發(fā)板的設(shè)計(jì)與制作
      電子制作(2017年22期)2017-02-02 07:10:14
      刷卡
      成長日記
      刷臉就可以購物
      奧秘(2014年8期)2014-08-30 06:32:04
      Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
      Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
      第一次刷卡
      淄博市| 班戈县| 台中市| 忻州市| 梓潼县| 双峰县| 大安市| 麻城市| 兴仁县| 三门县| 普格县| 沁水县| 大田县| 合肥市| 合作市| 景东| 辽源市| 虎林市| 汉沽区| 大宁县| 吉木乃县| 清涧县| 仪陇县| 治县。| 珠海市| 资源县| 鹤壁市| 平原县| 嘉荫县| 大安市| 九龙坡区| 曲阳县| 饶平县| 南江县| 类乌齐县| 澎湖县| 嫩江县| 泾川县| 晋中市| 承德县| 隆回县|