物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊

基于RFID圖書館智能書架設(shè)計(jì)實(shí)例

作者:韓亮 郎筠
來源:現(xiàn)代情報(bào)
日期:2018-01-11 15:49:05
摘要:為徹底解決圖書館亂架問題,根據(jù)RFID技術(shù)特點(diǎn),利用C#和SQL Sever2008,設(shè)計(jì)了一個(gè)基于RFID的圖書館智能書架系統(tǒng)。該系統(tǒng)硬件主要由頻率為920MHz的UHF電子標(biāo)簽、RFID讀取器、天線組成,軟件系統(tǒng)包含書庫檢查和亂架檢查兩大部分,能夠?qū)崿F(xiàn)對(duì)在架、外借圖書的清點(diǎn)、統(tǒng)計(jì)工作。通過RFID讀取器讀取電子標(biāo)簽信息,并將結(jié)果與數(shù)據(jù)庫進(jìn)行比對(duì),從而檢查并找出亂架圖書以及相對(duì)應(yīng)的正確架位。經(jīng)過測試,結(jié)果表明該系統(tǒng)運(yùn)行穩(wěn)定,數(shù)據(jù)讀取精確度較高,查找、比對(duì)結(jié)果達(dá)到預(yù)期目的,在實(shí)際工作中既可以節(jié)省人力,又可以提高工作效率。
關(guān)鍵詞:RFID圖書智能書架

  隨著圖書館向“藏借閱一體”全開架管理模式轉(zhuǎn)變,原本一直困擾圖書館工作的亂架問題變得愈發(fā)嚴(yán)重。無論是配發(fā)書位牌、還是專設(shè)臨時(shí)書架等方法,都無法很好地解決亂架問題,從而造成館內(nèi)死書不斷產(chǎn)生,帶來了文獻(xiàn)資源的大量浪費(fèi)。在RFID(Radio Frequency Identification)引入圖書館后,為解決圖書亂架問題提供了一種全新的技術(shù)手段。現(xiàn)通行的主流方式是由管理員手持RFID讀取器,沿書架依次掃描,根據(jù)報(bào)警提示,及時(shí)發(fā)現(xiàn)亂架圖書。相比傳統(tǒng)方法,在效率上有了極大提高,但仍需要管理員進(jìn)行走動(dòng)管理,逐架檢查,要花費(fèi)不少人力。本文基于RFID技術(shù),構(gòu)建了智能書架設(shè)計(jì)實(shí)例一則,以期實(shí)現(xiàn)對(duì)亂架圖書的自動(dòng)檢查。

  智能書架的主要設(shè)計(jì)目的是采用RFID技術(shù),來改進(jìn)圖書館現(xiàn)有在架、外借圖書的統(tǒng)計(jì)工作,是以即時(shí)書庫檢查和亂架圖書檢查為主要功能的系統(tǒng)。它通過對(duì)書庫的掃描,檢查并找出亂架圖書,并提供與之對(duì)應(yīng)的正確架位。此外,系統(tǒng)還將根據(jù)圖書的最新狀態(tài)顯示細(xì)節(jié),即哪些在架、哪些已外借以及正在館內(nèi)使用的圖書。

  1 硬件需求

  智能書架所應(yīng)用的硬件主要包括:UHF(Ultra High Frequency)電子標(biāo)簽、RFID讀取器以及天線。系統(tǒng)采用C/S架構(gòu),硬件需求以館內(nèi)現(xiàn)有服務(wù)器為準(zhǔn)。

  1.1 UHF電子標(biāo)簽

  盡管絕大多數(shù)應(yīng)用RFID技術(shù)的圖書館都采用了HF(High Frequency)方案,但在本案中通過對(duì)HF與UHF進(jìn)行對(duì)比后(表1、表2[1]),選擇了后者。

基于RFID圖書館智能書架設(shè)計(jì)實(shí)例

  從以上對(duì)比可以看出,UHF相對(duì)于HF具有標(biāo)簽較小,讀取距離遠(yuǎn),讀取速度快,適用于遠(yuǎn)場數(shù)據(jù)傳輸,天線尺寸合適,電磁噪聲小等優(yōu)點(diǎn),因此本案選擇的是頻率為920MHz的UHF電子標(biāo)簽。由于實(shí)驗(yàn)選擇用書厚度不均,僅保證每層書架存放30冊圖書,因此標(biāo)簽一律置于圖書的第二頁。

  1.2 讀取器及天線

  與手持式RFID讀取器不同,智能書架采用的是固定讀取器,安裝于書架頂部及底部。書架每層各有2根天線,分別置于兩側(cè)。具體讀取器和天線的安裝數(shù)量,取決于書架的層數(shù)。如果一個(gè)書架有4層,每層安裝2根天線,就需要用到2個(gè)讀取器和8根天線。在本案中僅設(shè)計(jì)了2層書架,只需要1個(gè)讀取器和4根天線。采用成本較低的鋼制天線盒,將天線盒安裝于每層書架的兩側(cè)(見圖1)。

基于RFID圖書館智能書架設(shè)計(jì)實(shí)例

  在電源方面,通過測試最終確定最適用于讀取器的功率為29.50dBm。

  2 系統(tǒng)設(shè)計(jì)

  管理員登入:在進(jìn)入系統(tǒng)工作界面之前,設(shè)置了管理員登陸窗口,用以限制用戶。有權(quán)限的管理員鍵入ID及相應(yīng)的密碼后即可登陸系統(tǒng)主頁。

  系統(tǒng)主要有兩部分組成:書庫檢查和亂架檢查部分。書庫檢查部分的功能是進(jìn)行及時(shí)書目校對(duì),并根據(jù)圖書的狀態(tài)顯示在架、外借、使用中等細(xì)節(jié)。亂架檢測部分被分為人工生成和自動(dòng)生成兩個(gè)小部分,其功能是顯示所有亂架圖書、亂架位置及其正確位置。其中自動(dòng)檢查會(huì)根據(jù)設(shè)定的檢查時(shí)間,自動(dòng)生成并彈出亂架圖書頁面,管理員需根據(jù)頁面信息將亂架圖書歸位,否則該頁面會(huì)一直停留,直至全部亂架圖書歸位。

基于RFID圖書館智能書架設(shè)計(jì)實(shí)例

  書庫檢查部分,系統(tǒng)設(shè)有啟動(dòng)、暫停兩個(gè)按鈕,用于啟動(dòng)、暫停、重新啟動(dòng)書庫檢查工作進(jìn)程。此處需調(diào)取館內(nèi)現(xiàn)有書目數(shù)據(jù)庫的相關(guān)數(shù)據(jù),用于更新已外借圖書狀態(tài)。當(dāng)按下啟動(dòng)鍵,系統(tǒng)自動(dòng)讀取電子標(biāo)簽,并將讀取結(jié)果與書目數(shù)據(jù)庫進(jìn)行比對(duì),如數(shù)據(jù)狀態(tài)發(fā)生改變,則更新數(shù)據(jù)庫,如果沒有改動(dòng)則繼續(xù)讀取、比對(duì)進(jìn)程直至結(jié)束。最終將書目數(shù)據(jù)按在架、已外借、使用中3個(gè)狀態(tài)分別列表在頁面上顯示。在架表示圖書可外借,已外借表示圖示已被借出,使用中表示圖書正在館內(nèi)使用或放于館內(nèi)某處。

  系統(tǒng)還設(shè)置有啟動(dòng)和終止人工亂架檢查和自動(dòng)亂架檢查的按鈕,用于啟動(dòng)或終止人工或自動(dòng)亂架檢查進(jìn)程。但不管哪種運(yùn)行方式,最終結(jié)果均按照亂架圖書、亂架位置、正確架位分類顯示不同之處在于,人工操作可以在任意時(shí)間選擇任意架次執(zhí)行,而自動(dòng)操作則是書庫檢查結(jié)束后,按照設(shè)定時(shí)間,每隔一定時(shí)間進(jìn)行自動(dòng)檢查(本案設(shè)為1小時(shí)),并彈出檢查結(jié)果,直至管理員將亂架圖書歸位后才能再次激活書庫檢查系統(tǒng)。

  3 數(shù)據(jù)庫開發(fā)

  本案數(shù)據(jù)庫系統(tǒng)采用C#和SQL Sever2008開發(fā),此處重點(diǎn)介紹數(shù)據(jù)庫SOL Sever2008的使用。

  首先,創(chuàng)建一個(gè)名為Library的數(shù)據(jù)庫,在該庫中初始創(chuàng)建了3個(gè)永久表:Librarian、Antennalocation、Book。當(dāng)書架上的天線檢查到某本圖書,參照天線位置圖,就可以知道該書在哪個(gè)書架的第幾層。

  系統(tǒng)運(yùn)行后,會(huì)創(chuàng)建4個(gè)新的臨時(shí)表:Reader、Inventorylatest、Misplace、Correctplace。這4個(gè)表中所記錄的內(nèi)容都需要及時(shí)更新,因此可以隨機(jī)寫入和清除。系統(tǒng)每運(yùn)行1次,這4個(gè)表都會(huì)被重新創(chuàng)建1次。

  數(shù)據(jù)庫內(nèi)所有圖書的初始狀態(tài)均被置為使用中,當(dāng)圖書被借出時(shí),其狀態(tài)更新為已外借,當(dāng)圖書通過借還書系統(tǒng)歸還后又將恢復(fù)使用狀態(tài),當(dāng)圖書被置于書架上時(shí),狀態(tài)則被更新為在架。以上狀態(tài)的更改變化均通過讀取器讀取電子標(biāo)簽自動(dòng)完成。

  3.1 書庫檢查

  當(dāng)系統(tǒng)啟動(dòng)書庫檢查后,讀取器按照定時(shí)器設(shè)定的時(shí)間間隔,定時(shí)讀取電子標(biāo)簽(本案設(shè)為10秒讀取1次)。讀取到的信息被存入數(shù)據(jù)庫的Reader表中。以下是用于顯示圖書狀態(tài)的查詢語句:

  查詢語句1

  Update Book

  set Status=’Using’

  from Book.Reader

  where Reader.BookID<>Book.BookID and Book.Status<>’Borrowed’

  該查詢語句用于更新那些非已外借和使用中的圖書狀態(tài),當(dāng)讀取器沒有讀取到圖書的ID,并且圖書的狀態(tài)也不是已外借,則該書的狀態(tài)被更新為使用中(Reader表中的圖書ID與Book表不同,并且圖書狀態(tài)為非已外借)。其功能主要是清除之前讀取到的狀態(tài)。

  查詢語句2

  update Book

  set Status=’Available’

  from Book,Reader

  where Book.BookID=Reader.BookID

  該查詢語句用于更新可外借圖書的狀態(tài)為在架,當(dāng)讀取器讀取到圖書ID并且該ID存在于Book表中,該書的狀態(tài)即被更新為在架(Reader表中的圖書ID與Book表中的ID一致)。

  3.2 亂架檢查

  當(dāng)系統(tǒng)啟動(dòng)人工亂架檢查后,系統(tǒng)會(huì)自行判斷亂架檢查進(jìn)程是否是初次運(yùn)行。如果是初次運(yùn)行,程序?qū)⑼ㄟ^查詢語句3,繼續(xù)將書庫檢查中的最新數(shù)據(jù)保存至Inventorylatest表,然后執(zhí)行查詢語句4,將最新的數(shù)據(jù)表(Inventorylatest)與原始數(shù)據(jù)表(Book)進(jìn)行比對(duì),同時(shí)將亂架圖書信息保存至Misplace表中。

  如果曾經(jīng)運(yùn)行過亂架檢查,系統(tǒng)將首先清除原有Inventorylatest、Misplace、Correctplace表中內(nèi)容,然后再將書庫檢查中的最新數(shù)據(jù)保存至Inventorylatest表,并將最新的數(shù)據(jù)表(Inventorylatest)與原始數(shù)據(jù)表(Book)進(jìn)行比對(duì),同時(shí)將亂架圖書信息保存至Misplace表中。

  比對(duì)結(jié)束后,如果有亂架圖書,程序?qū)⑼ㄟ^查詢語句5創(chuàng)建Correctplace表,以獲取亂架圖書的正確位置。然后通過查詢語句6,以亂架圖書的亂架位置、正確位置為題頭,顯示人工亂架檢查結(jié)果。如果沒有亂架圖書,系統(tǒng)將會(huì)顯示沒有亂架圖書的檢查結(jié)果。如果要終止人工亂架檢查,只需要點(diǎn)擊頁面上的退出按鈕即可。

  該部分用到的查詢語句:

  查詢語句3

  select R.BookID,B.Title,A.Shelf,A.Levell into inventorylatest from Reader R,Book B,Antennalocation A where R.BookID=B.BookID and R.Antenna=A.Antenna

  查詢語句4

  select Title,Shelf,Levell into misplace from inventorylatest WHERE NOT EXISTS (SELECT Title,Shelf,Levell FROM Book WHERE Book.BookID=inventorylatest.BookID and Book.Shelf=inventorylatest.Shelf and Book.Levell=inventorylatest.Levell)

  查詢語句5

  select A.Title,B.Shelf,B.Levell into from misplace A,Book B where B.Title=A.Title

  查詢語句6

  Select A.Title,A.Shelf,A.Levell,B.Shelf,B.Levell FROM misplace A LEFT JOIN correctplace B ON A.Title=B.Title

  自動(dòng)亂架檢查與人工檢查程序大致相同,不同之處在于需要設(shè)置一個(gè)定時(shí)器,確保自動(dòng)亂架檢查結(jié)果每隔一定的時(shí)間彈出1次(本案設(shè)為1小時(shí))。此外,自動(dòng)亂架檢查結(jié)果頁面將會(huì)保持停留狀態(tài),直至管理員將圖書歸位,并且點(diǎn)擊核實(shí)按鈕,系統(tǒng)將會(huì)再次進(jìn)行亂架檢查,確保是否還有亂架圖書。如果沒有,則關(guān)閉頁面返回主頁。如果有,頁面將會(huì)停留,管理員此時(shí)無法進(jìn)行其他操作。

  4 系統(tǒng)測試

  4.1 讀取器讀取能力測試

  在本案所設(shè)的兩層書架上,每層各安置30冊圖書,共計(jì)60冊。為了驗(yàn)證讀取器的讀取能力,本案在10分鐘內(nèi),每隔2分鐘進(jìn)行1次讀取測試,一共進(jìn)行了5輪測試,結(jié)果如表3。

基于RFID圖書館智能書架設(shè)計(jì)實(shí)例

  由以上數(shù)據(jù)可以看出,讀取器的讀取能力還是非??煽?,總共25次測試當(dāng)中24次成功讀取全部圖書,1次讀取到59冊圖書,準(zhǔn)確率達(dá)96%。

  4.2 書庫檢查準(zhǔn)確率測試

  從書架上隨機(jī)取出1本圖書,然后啟動(dòng)書庫檢查程序,驗(yàn)證其準(zhǔn)確率。測試重復(fù)進(jìn)行了10次,結(jié)果如表4。表4 書庫檢查準(zhǔn)確率測試

基于RFID圖書館智能書架設(shè)計(jì)實(shí)例

  由以上數(shù)據(jù)可以看出,書庫檢查系統(tǒng)對(duì)于不在架圖書的檢測10全部成功,準(zhǔn)確率達(dá)到100%。

  4.3 亂架檢查準(zhǔn)確率測試

  本案將書架分為6個(gè)分區(qū)(見圖3),每層3個(gè)分區(qū),每個(gè)分區(qū)各放置一本亂架圖書,然后分別運(yùn)行人工檢查和自動(dòng)檢查程序,測試各重復(fù)5次,結(jié)果如表5、表6。

基于RFID圖書館智能書架設(shè)計(jì)實(shí)例

基于RFID圖書館智能書架設(shè)計(jì)實(shí)例

基于RFID圖書館智能書架設(shè)計(jì)實(shí)例

  由以上數(shù)據(jù)可以看出,人工檢查在對(duì)6個(gè)分區(qū)的5次測試中,全部成功。自動(dòng)檢查在對(duì)6個(gè)分區(qū)的5次測試中,成功29次,失敗1次,準(zhǔn)確率達(dá)到97%。

  4.4 亂架檢查流程測試

  將自動(dòng)檢查定時(shí)器設(shè)置為間隔1小時(shí),然后運(yùn)行自動(dòng)亂架檢查程序,結(jié)果如下:

  第一次:正常運(yùn)行自動(dòng)亂架檢查程序,1小時(shí)后,檢查結(jié)果自動(dòng)彈出。

  第二次:啟動(dòng)人工亂架檢查程序,并記錄結(jié)果,1小時(shí)后,人工亂架檢查結(jié)果自動(dòng)關(guān)閉,自動(dòng)亂架檢查結(jié)果自動(dòng)彈出。

  第三次:連續(xù)點(diǎn)擊兩次書庫檢查按鈕啟動(dòng)按鈕,1小時(shí)后,自動(dòng)亂架檢查結(jié)果自動(dòng)彈出,此后沒有第二次彈出。

  由以上結(jié)果可以看出,整個(gè)系統(tǒng)流程運(yùn)行正常,沒有出現(xiàn)意外卡死或報(bào)錯(cuò)。

  5 結(jié) 語

  以上智能書架系統(tǒng)設(shè)計(jì),作為一個(gè)小型的實(shí)驗(yàn)?zāi)P蛠碇v基本達(dá)到了最初的設(shè)計(jì)目的,能夠?qū)崿F(xiàn)對(duì)館藏圖書的自動(dòng)檢查、比對(duì),以及對(duì)亂架圖書的自動(dòng)報(bào)錯(cuò),這也證實(shí)了基于RFID設(shè)計(jì)智能書架是完全可行的。但本案僅僅是對(duì)局部進(jìn)行了小范圍實(shí)驗(yàn),對(duì)于動(dòng)輒數(shù)千個(gè)書架的整體館藏規(guī)模尚沒有充分的驗(yàn)證,因此擴(kuò)大實(shí)驗(yàn)樣本后的準(zhǔn)確率究竟有多高,還無法做出明確的估計(jì)。而且本案在整個(gè)設(shè)計(jì)過程中對(duì)于成本問題沒有過多的考慮,對(duì)于推廣應(yīng)用中的成本核算也沒有明確的預(yù)估。從這些角度來看,本案仍有待于進(jìn)一步改進(jìn)提高。