RFID智能书架工作于920MH2-925MHz频段,是一种通过标签与读写器之间双向通讯实现图书智能管理的创应用。
该设备采用钢制架构,外形可按要求定制木材装饰,最小单元为双面双列五展设计,每层可放置约60本图书,多个单元拼接成列使用,拼接的书架側面安装触摸显示屏,可显示整列书架上的图书的信息外,还可以通过连接网络后检索图书所在书架的位置。设备配置专用天线,可有效避免误读该层上下,前后、左右相邻或相邻书架的图书标,井可实现图书识别成功98%以上。
智能书架的主要设计目的是采用RFID技术,来改进图书馆现有在架、外借图书的统计工作,是以即时书库检查和乱架图书检查为主要功能的系统。它通过对书库的扫描,检查并找出乱架图书,并提供与之对应的正确架位。此外,系统还将根据图书的最新状态显示细节,即哪些在架、哪些已外借以及正在馆内使用的图书。 1 硬件需求 智能书架所应用的硬件主要包括:UHF(Ultra High Frequency)电子标签、RFID读取器以及天线。系统采用C/S架构,硬件需求以馆内现有服务器为准。 1.1 UHF电子标签 尽管绝大多数应用RFID技术的图书馆都采用了HF(High Frequency)方案,但在本案中通过对HF与UHF进行对比后(表1、表2[1]),选择了后者。 从以上对比可以看出,UHF相对于HF具有标签较小,读取距离远,读取速度快,适用于远场数据传输,天线尺寸合适,电磁噪声小等优点,因此本案选择的是频率为920MHz的UHF电子标签。由于实验选择用书厚度不均,仅保证每层书架存放30册图书,因此标签一律置于图书的第二页。 1.2 读取器及天线 与手持式RFID读取器不同,智能书架采用的是固定读取器,安装于书架顶部及底部。书架每层各有2根天线,分别置于两侧。具体读取器和天线的安装数量,取决于书架的层数。如果一个书架有4层,每层安装2根天线,就需要用到2个读取器和8根天线。在本案中仅设计了2层书架,只需要1个读取器和4根天线。采用成本较低的钢制天线盒,将天线盒安装于每层书架的两侧(见图1)。 在电源方面,通过测试最终确定最适用于读取器的功率为29.50dBm。 2 系统设计 管理员登入:在进入系统工作界面之前,设置了管理员登陆窗口,用以限制用户。有权限的管理员键入ID及相应的密码后即可登陆系统主页。 系统主要有两部分组成:书库检查和乱架检查部分。书库检查部分的功能是进行及时书目校对,并根据图书的状态显示在架、外借、使用中等细节。乱架检测部分被分为人工生成和自动生成两个小部分,其功能是显示所有乱架图书、乱架位置及其正确位置。其中自动检查会根据设定的检查时间,自动生成并弹出乱架图书页面,管理员需根据页面信息将乱架图书归位,否则该页面会一直停留,直至全部乱架图书归位。 书库检查部分,系统设有启动、暂停两个按钮,用于启动、暂停、重新启动书库检查工作进程。此处需调取馆内现有书目数据库的相关数据,用于更新已外借图书状态。当按下启动键,系统自动读取电子标签,并将读取结果与书目数据库进行比对,如数据状态发生改变,则更新数据库,如果没有改动则继续读取、比对进程直至结束。最终将书目数据按在架、已外借、使用中3个状态分别列表在页面上显示。在架表示图书可外借,已外借表示图示已被借出,使用中表示图书正在馆内使用或放于馆内某处。 系统还设置有启动和终止人工乱架检查和自动乱架检查的按钮,用于启动或终止人工或自动乱架检查进程。但不管哪种运行方式,最终结果均按照乱架图书、乱架位置、正确架位分类显示不同之处在于,人工操作可以在任意时间选择任意架次执行,而自动操作则是书库检查结束后,按照设定时间,每隔一定时间进行自动检查(本案设为1小时),并弹出检查结果,直至管理员将乱架图书归位后才能再次激活书库检查系统。 3 数据库开发 本案数据库系统采用C#和SQL Sever2008开发,此处重点介绍数据库SOL Sever2008的使用。 首先,创建一个名为Library的数据库,在该库中初始创建了3个永久表:Librarian、Antennalocation、Book。当书架上的天线检查到某本图书,参照天线位置图,就可以知道该书在哪个书架的第几层。 系统运行后,会创建4个新的临时表:Reader、Inventorylatest、Misplace、Correctplace。这4个表中所记录的内容都需要及时更新,因此可以随机写入和清除。系统每运行1次,这4个表都会被重新创建1次。 数据库内所有图书的初始状态均被置为使用中,当图书被借出时,其状态更新为已外借,当图书通过借还书系统归还后又将恢复使用状态,当图书被置于书架上时,状态则被更新为在架。以上状态的更改变化均通过读取器读取电子标签自动完成。 3.1 书库检查 当系统启动书库检查后,读取器按照定时器设定的时间间隔,定时读取电子标签(本案设为10秒读取1次)。读取到的信息被存入数据库的Reader表中。以下是用于显示图书状态的查询语句: 查询语句1 Update Book set Status=’Using’ from Book.Reader where Reader.BookID<>Book.BookID and Book.Status<>’Borrowed’ 该查询语句用于更新那些非已外借和使用中的图书状态,当读取器没有读取到图书的ID,并且图书的状态也不是已外借,则该书的状态被更新为使用中(Reader表中的图书ID与Book表不同,并且图书状态为非已外借)。其功能主要是清除之前读取到的状态。 查询语句2 update Book set Status=’Available’ from Book,Reader where Book.BookID=Reader.BookID 该查询语句用于更新可外借图书的状态为在架,当读取器读取到图书ID并且该ID存在于Book表中,该书的状态即被更新为在架(Reader表中的图书ID与Book表中的ID一致)。 3.2 乱架检查 当系统启动人工乱架检查后,系统会自行判断乱架检查进程是否是初次运行。如果是初次运行,程序将通过查询语句3,继续将书库检查中的最新数据保存至Inventorylatest表,然后执行查询语句4,将最新的数据表(Inventorylatest)与原始数据表(Book)进行比对,同时将乱架图书信息保存至Misplace表中。 如果曾经运行过乱架检查,系统将首先清除原有Inventorylatest、Misplace、Correctplace表中内容,然后再将书库检查中的最新数据保存至Inventorylatest表,并将最新的数据表(Inventorylatest)与原始数据表(Book)进行比对,同时将乱架图书信息保存至Misplace表中。 比对结束后,如果有乱架图书,程序将通过查询语句5创建Correctplace表,以获取乱架图书的正确位置。然后通过查询语句6,以乱架图书的乱架位置、正确位置为题头,显示人工乱架检查结果。如果没有乱架图书,系统将会显示没有乱架图书的检查结果。如果要终止人工乱架检查,只需要点击页面上的退出按钮即可。