RFID技術是一種非接觸式自動識別技術,由電子標籤及讀寫器組成,具有信息容量大、保密性高、無需人工幹預、識別效率高等優點。其與上層應用軟體及後臺資料庫相結合,可實現物品管理、物品防偽、物品定位、身份識別等功能,被廣泛使用於物流管理、交通運輸、工業自動化等領域。
在智能家居中,RFID主要用於門禁系統、人員定位[1]等。智能家居(Smart Home)是以住宅為平臺,兼備建築、網絡通信、信息家電、設備自動化等功能,集系統、結構、服務、管理為一體的,體現高效、舒適、安全、便利、環保的居住環境[2]。智能家居的核心功能是安防報警與智能控制。當前市場上的智能家居系統主要有基於樓宇對講技術的智能家居系統、基於現場總線技術的家庭自動化系統和基於智慧型手機的智能家居系統三大類[3]。主要的產品有:智能鎖、監控設備、各類環境傳感器、智能電動窗簾系統、家電控制等。國內智能家居行業起步較晚,智能家居產品存在系統複雜、價格昂貴、不切實際等問題。智能家居企業所銷售的並不是產品,而是為特定的某部分人量身定做的一套完整的個性化服務,價格昂貴,是面向富人群體的消費,且系統設計複雜,產品也不夠多元化。這將不利於智能家居的長期發展[4]。
因此,在當前客戶個性化需求強烈的市場狀況下,開發適合大眾消費、操作方便的智能家居產品具有重要意義。本文基於可攜式RFID與Android智能終端,是一款適用人群較廣、操作方便的智能物品清點的移動應用系統,用於實現家庭式倉儲管理。
1 相關技術
1.1 RFID技術
無線電射頻識別RFID(Radio Frequency Identification)是一種利用無線電的自動識別技術。典型的RFID系統通常由電子標籤、讀寫器、RFID中間件和應用系統軟體組成[5]。電子標籤及讀寫器通過無線電天線進行通信,可讀取標籤中的物品ID信息,實現非接觸識別,並能同時識別多個標籤。電子標籤具有一定的存儲容量,能唯一標識物品,具有使用壽命長、可重複使用等優點。RFID中間件是讀寫器與應用系統軟體的中介,管理著讀寫器及其讀取的數據,並將數據交付給上層的應用軟體(如資料庫)。帶無線通信功能(如藍牙、WiFi)的RFID讀寫器將無線通信模塊嵌入讀寫器中,上層軟體通過無線通信信號獲取電子標籤信息,使得用戶可以隨時隨地獲取RFID標籤信息,解決有線讀寫器不可移動的限制。
RFID系統按其使用的無線電頻率可分為低頻RFID系統、高頻RFID系統及超高頻RFID系統。被廣泛應用於門禁系統、身份識別、產品管理、貨櫃管理、生產線自動化管理等領域。在識別距離方面,讀寫器的可識別範圍與其製作工藝有關,比如天線設計、讀寫器功率設計等。一般的,低高頻系統讀寫距離較小,在10 cm左右,高頻標準ISO15693在降低傳輸速率、加大天線設計與讀寫功率的情況下,識別距離可達1 m;超高頻在較大工作範圍,能做到較快的傳輸速率,工作距離可達3 m~10 m,但是超高頻電波受環境影響大,不能穿透許多材料,比如水、灰塵等。在實際應用中,需要考慮價格、讀寫距離、安全特性、存儲信息量等因素,用於確定合適的頻段及方案[6]。
1.2 藍牙技術
藍牙是一種低功耗、中短距離的無線通信技術,為行動裝置之間提供快速、方便的無線通信連接,被廣泛應用於手機中,其中藍牙耳機是一個典型的應用。藍牙通信規範是全球統一的,工作頻段為全球統一開放的2.4 GHz頻段,該頻段的使用無需向各國的無線電資源管理部門申請許可證。不同的藍牙設備通信時,可以建立臨時性的實時對等連接。皮網(Piconet)是藍牙最基本的一種網絡形式,通常由一個主設備(即主動發起連接請求的藍牙設備)和幾個從設備組成,能同時實現一對多的通信[7]。藍牙技術的優點是:可以方便地建立無線連接;移植性強,適用面廣;安全性較高;設備功耗低,成本較低;開發設計較簡單。
1.3 安卓系統藍牙編程
藍牙技術的開發核心是根據藍牙標準所實現的藍牙協議棧。該協議棧包含了眾多協議,主要有邏輯鏈路控制和適配協議(L2CAP)、服務發現協議(SDP)、串口模擬協議(RFCOMM)等。其中SDP協議是一個基於C/S結構的協議,是藍牙協議棧中的核心協議。在藍牙系統中,用戶依靠SDP獲取建立藍牙連接所需的設備信息、服務信息及服務特徵[8]。
Android SDK從2.0版本開始支持藍牙功能,應用程式必須在AndroidManifest.xml文件中加入一定的權限才能使用藍牙服務:android.permission.BLUETOOTH權限允許用戶連接藍牙設備,android.permission.BLUETOOTH_ADMIN權限允許用戶管理藍牙硬體及使用相關服務,包括開啟或關閉藍牙硬體、掃描可連接藍牙設備、傳送數據等。相關的藍牙API在android.bluetooth包中進行定義,包含以下幾個主要類:
(1)BluetoothAdapter類代表設備上的藍牙硬體;
(2)BluetoothDevice類定義遠程藍牙設備;
(3)BluetoothServerSocket類用來打開監聽到達連接的套接字,並且在連接後提供一個BluetoothSocket對象;
(4)BluetoothSocket類用來建立同遠程設備的連接,獲取輸入輸出流。
通過藍牙進行數據傳輸的過程包括:
(1)檢查可用的藍牙硬體。並不是所有Android終端都具有藍牙功能,因此使用前需確定是否有可用的藍牙硬體;
(2)開啟藍牙;
(3)查詢已配對設備;
(4)搜索設備;
(5)建立設備間的連接;
(6)數據交互;
(7)關閉藍牙硬體。
當兩個設備連接後,各自擁有一個BluetoothSocket對象,並獲得用來讀取信息的InputStream對象和發送信息的OutputStream對象[9]。
1.4 Android平臺數據存儲方式
基於Android平臺的數據存儲方式分外部存儲和內部存儲兩類。外部存儲方式指:內容提供器和網絡資料庫,內部存儲方式有:系統配置、文件存儲、SQLite資料庫[10]。在實際應用開發中主要使用內部存儲方式。系統配置方式指通過Android平臺提供的SharedPreferences類,保存應用程式的一些簡單的配置信息的機制。文件存儲方式使用Java中的IO類實現對內部存儲器或SD卡等外部存儲設備中的文件的讀寫與解析,該方式實現數據插入與修改操作較複雜,每次操作都需讀取整個文件,效率較低。SQLite是一款超輕量級的嵌入式資料庫,支持SQL語句,能實現查詢、插入、刪除、修改等操作,具有小、安全、免費等特點。本文提到的系統所選擇的數據存儲方式便是SQLite資料庫,對數據進行操作簡單而快速。
2 系統概述
在日常生活中,當家庭裡物品被閒置一段時間後,會出現被遺忘的狀況,而得不到再次使用;在外出需要攜帶較多物品時,常常在清點過後,依然會出現遺漏東西的狀況。本系統的功能是幫助人們記錄物品信息,能自動識別對物品進行清點,並顯示清點結果(該步操作類似於倉庫管理中的出庫,對照出庫清單清點出庫物品是否有遺漏)。其系統結構如圖1所示。
首先根據物品的不同特性,準備好合適的RFID電子標籤,貼或掛在物品上;使用帶藍牙通信功能的手機和可攜式RFID讀寫器。當系統工作時,由讀寫器讀取標籤上的ID信息,通過藍牙傳給手機應用程式端;在應用程式上填寫與標籤ID對應的物品名稱,並保存於本地的SQLite資料庫中。登記完標籤信息後,用戶可根據每次不同需求,選中要清點的物品名稱,通過RFID讀寫器的掃描後,便可完成對一定空間內的物品的清點。
3 軟硬體設計及系統評價
3.1 軟體設計
軟體開發所涉及模塊有:物品RFID標籤信息添加、物品信息刪除、物品信息修改、物品選擇、物品RFID標籤清點掃描等。
應用程式的工作流程如圖2所示。
應用程式在實現物品RFID標籤信息添加及物品RFID標籤清點掃描前,應首先打開藍牙連接,搜索附近的藍牙設備,然後選擇與便攜RFID讀寫器建立連接。在進行添加操作時,應用程式向讀寫器發送單標籤掃描的命令,讀寫器返回標籤的ID,用戶輸入物品名稱後,應用程式將其錄入資料庫中並標註為未選中狀態。
在列出所有物品界面中,用戶可對需要清點的物品進行選中或取消選中。當用戶選中物品後,物品的狀態屬性(THING_STATUS)值為「1」,表示該物品將要被清點;否則為「0」,表示該物品已在資料庫中登記,但暫時不需要清點。
應用程式清點掃描物品時,向讀寫器發送防衝突識別(多標籤識別)命令,讀寫器不斷返回帶標籤ID信息的數據流。應用程式從數據流中提取出標籤ID,並在資料庫中查詢其狀態,若為「1」,則在已掃描列表中以系統默認字體顏色(灰色)顯示其物品名稱;若為「0」,則以其他非系統默認字體顏色(深灰色)顯示物品名稱。掃描個數是在掃描過程中實時顯示已被讀寫器掃描到的、並進行登記過的標籤個數。
當識別完一定空間內的物品後,用戶按下讀寫器上的停止識別按鈕,讀寫器向應用程式發送停止識別的響應。應用程式接收後,在未掃描列表中輸出已被選中未被掃描到的物品名稱,掃描結果顯示界面如圖3所示。
3.2 硬體選擇
現如今,藍牙通信在智慧型手機中是一種十分常見的功能。本系統開發選用Android 2.3版本系統的觸屏手機,有藍牙硬體模塊,具備藍牙通信功能,且自帶SQLite資料庫,無需用戶安裝。RFID讀寫器的選擇要考慮讀寫距離不能太短,否則識別效率較低,容易掃描不全;價格應較適合大眾消費;為了便於使用及攜帶,外形應小巧。因此選擇帶藍牙通信功能的超高頻讀寫器,讀寫距離20 cm左右,體積小,易於攜帶,如圖4所示。當按下圖中所示的扇形按鈕「R」時,讀寫器開始或停止識別標籤。
3.3 系統評價
目前該系統是一個獨立的系統,能實現文中提到的功能。受讀寫器讀寫距離限制,進行清點掃描過程中需來回在電子標籤中移動,以確保掃描結果的準確度。系統在未部署智能家居系統的場所中亦能使用。用戶只需擁有具備藍牙通信功能的Android終端及便攜RFID讀寫器,即可實現物品清點工作,移動性強。所使用的電子標籤,可貼或掛於物品上,使用方便。適用於家庭式倉儲管理、外出或旅行的物品清點等個人日常或辦公物品管理。
當下手機已成為人們日常生活的一部分。智慧型手機為開發各種移動應用軟體提供了很好的平臺。關於RFID技術的研究倍受關注,RFID應用範圍在摸索中越來越廣。目前智能家居市場仍具有很大的發展空間及潛力。本文中的智能物品清點系統,作為智能家居的子系統將來可以:(1)通過無線通信技術,實現智慧型手機本地數據與智能家居系統中個人資料庫的對接;(2)選用讀寫距離合適的讀寫器,增加包裹內物品防盜功能;(3)開發基於其他移動平臺的應用程式,如IOS、windows phone等。
1