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

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

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

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

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

  1 硬件需求

  智能書(shū)架所應(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ù)的圖書(shū)館都采用了HF(High Frequency)方案,但在本案中通過(guò)對(duì)HF與UHF進(jìn)行對(duì)比后(表1、表2[1]),選擇了后者。

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

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

  1.2 讀取器及天線

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

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

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

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

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

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

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

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

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

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

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

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

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

  3.1 書(shū)庫(kù)檢查

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

  查詢語(yǔ)句1

  Update Book

  set Status=’Using’

  from Book.Reader

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

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

  查詢語(yǔ)句2

  update Book

  set Status=’Available’

  from Book,Reader

  where Book.BookID=Reader.BookID

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

  3.2 亂架檢查

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

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

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

  該部分用到的查詢語(yǔ)句:

  查詢語(yǔ)句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

  查詢語(yǔ)句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)

  查詢語(yǔ)句5

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

  查詢語(yǔ)句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é)果頁(yè)面將會(huì)保持停留狀態(tài),直至管理員將圖書(shū)歸位,并且點(diǎn)擊核實(shí)按鈕,系統(tǒng)將會(huì)再次進(jìn)行亂架檢查,確保是否還有亂架圖書(shū)。如果沒(méi)有,則關(guān)閉頁(yè)面返回主頁(yè)。如果有,頁(yè)面將會(huì)停留,管理員此時(shí)無(wú)法進(jìn)行其他操作。

  4 系統(tǒng)測(cè)試

  4.1 讀取器讀取能力測(cè)試

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

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

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

  4.2 書(shū)庫(kù)檢查準(zhǔn)確率測(cè)試

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

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

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

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

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

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

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

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

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

  4.4 亂架檢查流程測(cè)試

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

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

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

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

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

  5 結(jié) 語(yǔ)

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