徐秀紅,廖忠明,王如意
(1.烏蘭巴托額爾德木大學,蒙古國 烏蘭巴托 11000; 2.江西新能源科技職業(yè)學院,江西 新余 338004;3.新余學院,江西 新余 338004)
智能家居提供了一種信息交互的全方位功能模式,成為物聯(lián)網(wǎng)廣泛應用的領(lǐng)域之一[1]。
智能家居中的物聯(lián)網(wǎng)傳感器網(wǎng)絡關(guān)鍵技術(shù)中,以下兩種較為實用。
1)自動射頻識別技術(shù)。自動射頻技術(shù)通過非接觸集成電路自動進行身份識別,無需人工干涉[2],在實際工作中通過唯一的身份識別碼將標簽與物體進行技術(shù)捆綁,主要由身份識別標簽、標簽閱讀器及物聯(lián)網(wǎng)傳感器組成,如圖1所示。

圖1 自動射頻技術(shù)基本構(gòu)成Fig.1 Basic structure of automatic radio frequency technology
2)物聯(lián)網(wǎng)傳感器網(wǎng)絡技術(shù)。這是一種集信息采集、傳輸與處理于一體的網(wǎng)絡系統(tǒng),其結(jié)構(gòu)小,組裝靈活,可移動性強,節(jié)點結(jié)構(gòu)如圖2所示,主要包括信息采集、數(shù)據(jù)處理、信息發(fā)送、電壓控制4個模塊[3]。工作流程是通過信息采集模塊完成信息獲取并通過數(shù)據(jù)處理模塊將信息轉(zhuǎn)化為可識別數(shù)據(jù),進行信息發(fā)送。電壓控制模塊主要為物聯(lián)網(wǎng)傳感器提供必需的電力供應。

圖2 物聯(lián)網(wǎng)傳感器網(wǎng)絡節(jié)點結(jié)構(gòu)Fig.2 Node structure of IOT sensor network
傳統(tǒng)的智能家居傳感器網(wǎng)絡主要以單個家庭為單位,可擴展性低,兼容性較差,但隨著物聯(lián)網(wǎng)技術(shù)的不斷深入發(fā)展,將物聯(lián)網(wǎng)引入家居網(wǎng)絡成為迫切需要,以物聯(lián)網(wǎng)為依托的智能家居傳感器網(wǎng)絡具有更優(yōu)的便捷性及智能化。智能家居中的物聯(lián)網(wǎng)傳感器網(wǎng)絡是一種具有多功能、便捷性、交互式的控制平臺,可與移動終端進行設(shè)備互聯(lián)互通,與網(wǎng)絡進行數(shù)據(jù)融合,組織架構(gòu)如圖3所示。該平臺將移動終端、移動設(shè)備、家用電器等設(shè)備連接到一個局域網(wǎng)中,通過適當?shù)奈锫?lián)網(wǎng)傳感器接口實現(xiàn)家居設(shè)備的全覆蓋。智能家居系統(tǒng)依賴于家庭網(wǎng)關(guān)進行對外接口的數(shù)據(jù)信息交流,可實現(xiàn)接收及發(fā)送相關(guān)數(shù)據(jù)的遠程控制。

圖3 組織架構(gòu)Fig.3 Organization chart
物聯(lián)網(wǎng)傳感器網(wǎng)絡基于物聯(lián)網(wǎng)技術(shù)整合現(xiàn)有的設(shè)備資源,為用戶提供便捷、安全、無障礙的交互設(shè)備。主要包括設(shè)備接口模塊、數(shù)據(jù)處理模塊、遠程控制模塊。
設(shè)備接口模塊主要負責物聯(lián)網(wǎng)傳感器網(wǎng)絡與各個智能家居間的數(shù)據(jù)通信及數(shù)據(jù)融合,實現(xiàn)計算機與家庭數(shù)據(jù)的及時、有效數(shù)據(jù)轉(zhuǎn)接及交換,完成智能家居控制指令,用例如圖4所示。

圖4 設(shè)備接口模塊用例圖Fig.4 Device interface module use case diagram
數(shù)據(jù)處理模塊主要用來實現(xiàn)智能家居中的數(shù)據(jù)記錄及數(shù)據(jù)處理,通過小型關(guān)系型數(shù)據(jù)庫及嵌入式實時數(shù)據(jù)庫快速、輕量的存儲相關(guān)信息,支持用戶隨時進行信息查詢、修改、增刪操作,用例如圖5所示。

圖5 數(shù)據(jù)處理模塊用例圖Fig.5 Data processing module use case diagram
遠程控制模式為智能家居中的物聯(lián)網(wǎng)傳感器網(wǎng)絡用戶實現(xiàn)遙控管理,通過接收用戶內(nèi)外部及其他節(jié)點的操作命令進行安全驗證后將指令發(fā)送到家居設(shè)備上再執(zhí)行,具有定時執(zhí)行及條件管理等功能,令該平臺具有很好的實時性,用例如圖6所示。

圖6 遠程控制模式用例圖Fig.6 Remote control mode use case diagram
物聯(lián)網(wǎng)傳感器網(wǎng)絡的內(nèi)部架基于JCR SYSTEM物聯(lián)網(wǎng)綜合數(shù)據(jù)處理平臺,實現(xiàn)了物聯(lián)網(wǎng)與互聯(lián)網(wǎng)的互聯(lián)互通操作,為物聯(lián)網(wǎng)傳感器網(wǎng)絡應用提供SQL語句查詢,突破傳統(tǒng)RFID的限制。圖7為智能家居中的物聯(lián)網(wǎng)傳感器網(wǎng)絡內(nèi)部架構(gòu),基于JCR進行二次開發(fā),可忽略不同硬件接口及不同的數(shù)據(jù)類型,實現(xiàn)故障處理、設(shè)備開放、數(shù)據(jù)分析、多線程任務并發(fā)及數(shù)據(jù)標準化輸出。

圖7 內(nèi)部架構(gòu)Fig.7 Internal structure
物聯(lián)網(wǎng)傳感器網(wǎng)絡的另一個架構(gòu)是通過以太網(wǎng)實現(xiàn)網(wǎng)關(guān)節(jié)點與外部網(wǎng)絡的連通。傳統(tǒng)模式主要采用超過80引腳的封裝方式,設(shè)計復雜,體積龐大,成本昂貴。本研究采用Microchip公司推出的28引腳的以太網(wǎng)控制器,降低了系統(tǒng)開發(fā)成本,提高了系統(tǒng)的可靠性,架構(gòu)體系如圖8所示。

圖8 物聯(lián)網(wǎng)網(wǎng)關(guān)架構(gòu)體系Fig.8 IOT gateway architecture
物聯(lián)網(wǎng)傳感器在引入過程中對于數(shù)據(jù)響應時間和存儲空間都有嚴格要求。針對數(shù)據(jù)特點及存儲規(guī)則,采用Berkeley DB 進行開發(fā),可支持C++、Java等面向?qū)ο蟮囊活愰_發(fā)語言。線程工作流程如圖9所示,通過考慮頁面大小、高速緩沖區(qū)大小、定期清理緩沖區(qū)、順序?qū)懭牒A繑?shù)據(jù)(B+Tree)進行實時優(yōu)化。

圖9 線程工作流程Fig.9 Threaded workflow
遠程控制的網(wǎng)絡連接控制采用CSC模式,其中C為客戶端,S為服務器。服務器是服務器端的通信模塊。用戶通過客戶端界面對智能家居進行網(wǎng)絡操作,物聯(lián)網(wǎng)傳感器網(wǎng)絡將這些指令轉(zhuǎn)換為服務器可接收的操作,服務器對指令進行校驗及解析,傳入相應的智能設(shè)備。整體應用流程如圖10所示。

圖10 應用流程Fig.10 Application process
基于以太網(wǎng)通信進行物聯(lián)網(wǎng)網(wǎng)關(guān)與外部網(wǎng)絡連接,主要完成兩個過程:接收客戶端口的Modbus TCP命令幀,將Modbus串行鏈路上的響應幀轉(zhuǎn)換為Modbus TCP的消息反饋給客戶端。算法流程如圖11,核心代碼如下。

圖11 物聯(lián)網(wǎng)傳感器網(wǎng)絡通訊模塊算法流程Fig.11 IOT sensor network communication module algorithm workflow
1)創(chuàng)建客戶端,連接服務器。
Socketclient=newSocket(“server_ip”,port);
2)創(chuàng)建數(shù)據(jù)讀取線程,從傳感器讀取數(shù)據(jù)。
newThread(()→{
while(true){//從傳感器讀取數(shù)據(jù)
outputStream.write(data);
doubledata=sensor.read();
//發(fā)送數(shù)據(jù)到服務器
outputStream.write(data);
3)創(chuàng)建數(shù)據(jù)接收線程,處理服務器返回消息。
newThread(()→{
while(true){
//從服務器讀取返回消息
Stringmsg=inputStream.read();
//對返回消息進行處理
processMessage(msg);
}
}).start();
4)關(guān)閉資源。
client.close()
利用BDB提供的接口進行二次開發(fā),算法流程如圖12,核心代碼如下。

圖12 數(shù)據(jù)管理模塊算法流程Fig.12 Data management module algorithm workflow
1)初始化數(shù)據(jù)庫環(huán)境。

2)初始化數(shù)據(jù)庫對象。
DatabaseConfigdbConfig=newDatabaseConfig();
dbConfig.setAllowCreate(true);
DatabasetableDB=env.openDatabase(null, ″table″,dbConfig);
3)打開數(shù)據(jù)庫。
tableDB.open();
4)讀取數(shù)據(jù)庫數(shù)據(jù)
DatabaseEntrykey=newDatabaseEntry();
DatabaseEntryvalue=newDatabaseEntry();
//處理鍵值數(shù)據(jù)
……
}
5)關(guān)閉數(shù)據(jù)庫。
cursor.close();
為了全面評估物聯(lián)網(wǎng)傳感器網(wǎng)絡性能是否滿足用戶需求進行性能測試,測試指標如表1所示。可以看出,物聯(lián)網(wǎng)傳感器網(wǎng)絡性能測試符合需求。

表1 性能測試數(shù)據(jù)