徐秀紅,廖忠明,王如意
(1.烏蘭巴托額爾德木大學(xué),蒙古國 烏蘭巴托 11000; 2.江西新能源科技職業(yè)學(xué)院,江西 新余 338004;3.新余學(xué)院,江西 新余 338004)
智能家居提供了一種信息交互的全方位功能模式,成為物聯(lián)網(wǎng)廣泛應(yīng)用的領(lǐng)域之一[1]。
智能家居中的物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)關(guān)鍵技術(shù)中,以下兩種較為實(shí)用。
1)自動射頻識別技術(shù)。自動射頻技術(shù)通過非接觸集成電路自動進(jìn)行身份識別,無需人工干涉[2],在實(shí)際工作中通過唯一的身份識別碼將標(biāo)簽與物體進(jìn)行技術(shù)捆綁,主要由身份識別標(biāo)簽、標(biāo)簽閱讀器及物聯(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)絡(luò)技術(shù)。這是一種集信息采集、傳輸與處理于一體的網(wǎng)絡(luò)系統(tǒng),其結(jié)構(gòu)小,組裝靈活,可移動性強(qiáng),節(jié)點(diǎn)結(jié)構(gòu)如圖2所示,主要包括信息采集、數(shù)據(jù)處理、信息發(fā)送、電壓控制4個(gè)模塊[3]。工作流程是通過信息采集模塊完成信息獲取并通過數(shù)據(jù)處理模塊將信息轉(zhuǎn)化為可識別數(shù)據(jù),進(jìn)行信息發(fā)送。電壓控制模塊主要為物聯(lián)網(wǎng)傳感器提供必需的電力供應(yīng)。
圖2 物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)結(jié)構(gòu)Fig.2 Node structure of IOT sensor network
傳統(tǒng)的智能家居傳感器網(wǎng)絡(luò)主要以單個(gè)家庭為單位,可擴(kuò)展性低,兼容性較差,但隨著物聯(lián)網(wǎng)技術(shù)的不斷深入發(fā)展,將物聯(lián)網(wǎng)引入家居網(wǎng)絡(luò)成為迫切需要,以物聯(lián)網(wǎng)為依托的智能家居傳感器網(wǎng)絡(luò)具有更優(yōu)的便捷性及智能化。智能家居中的物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)是一種具有多功能、便捷性、交互式的控制平臺,可與移動終端進(jìn)行設(shè)備互聯(lián)互通,與網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)融合,組織架構(gòu)如圖3所示。該平臺將移動終端、移動設(shè)備、家用電器等設(shè)備連接到一個(gè)局域網(wǎng)中,通過適當(dāng)?shù)奈锫?lián)網(wǎng)傳感器接口實(shí)現(xiàn)家居設(shè)備的全覆蓋。智能家居系統(tǒng)依賴于家庭網(wǎng)關(guān)進(jìn)行對外接口的數(shù)據(jù)信息交流,可實(shí)現(xiàn)接收及發(fā)送相關(guān)數(shù)據(jù)的遠(yuǎn)程控制。
圖3 組織架構(gòu)Fig.3 Organization chart
物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)基于物聯(lián)網(wǎng)技術(shù)整合現(xiàn)有的設(shè)備資源,為用戶提供便捷、安全、無障礙的交互設(shè)備。主要包括設(shè)備接口模塊、數(shù)據(jù)處理模塊、遠(yuǎn)程控制模塊。
設(shè)備接口模塊主要負(fù)責(zé)物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)與各個(gè)智能家居間的數(shù)據(jù)通信及數(shù)據(jù)融合,實(shí)現(xiàn)計(jì)算機(jī)與家庭數(shù)據(jù)的及時(shí)、有效數(shù)據(jù)轉(zhuǎn)接及交換,完成智能家居控制指令,用例如圖4所示。
圖4 設(shè)備接口模塊用例圖Fig.4 Device interface module use case diagram
數(shù)據(jù)處理模塊主要用來實(shí)現(xiàn)智能家居中的數(shù)據(jù)記錄及數(shù)據(jù)處理,通過小型關(guān)系型數(shù)據(jù)庫及嵌入式實(shí)時(shí)數(shù)據(jù)庫快速、輕量的存儲相關(guān)信息,支持用戶隨時(shí)進(jìn)行信息查詢、修改、增刪操作,用例如圖5所示。
圖5 數(shù)據(jù)處理模塊用例圖Fig.5 Data processing module use case diagram
遠(yuǎn)程控制模式為智能家居中的物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)用戶實(shí)現(xiàn)遙控管理,通過接收用戶內(nèi)外部及其他節(jié)點(diǎn)的操作命令進(jìn)行安全驗(yàn)證后將指令發(fā)送到家居設(shè)備上再執(zhí)行,具有定時(shí)執(zhí)行及條件管理等功能,令該平臺具有很好的實(shí)時(shí)性,用例如圖6所示。
圖6 遠(yuǎn)程控制模式用例圖Fig.6 Remote control mode use case diagram
物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)的內(nèi)部架基于JCR SYSTEM物聯(lián)網(wǎng)綜合數(shù)據(jù)處理平臺,實(shí)現(xiàn)了物聯(lián)網(wǎng)與互聯(lián)網(wǎng)的互聯(lián)互通操作,為物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)應(yīng)用提供SQL語句查詢,突破傳統(tǒng)RFID的限制。圖7為智能家居中的物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)內(nèi)部架構(gòu),基于JCR進(jìn)行二次開發(fā),可忽略不同硬件接口及不同的數(shù)據(jù)類型,實(shí)現(xiàn)故障處理、設(shè)備開放、數(shù)據(jù)分析、多線程任務(wù)并發(fā)及數(shù)據(jù)標(biāo)準(zhǔn)化輸出。
圖7 內(nèi)部架構(gòu)Fig.7 Internal structure
物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)的另一個(gè)架構(gòu)是通過以太網(wǎng)實(shí)現(xiàn)網(wǎng)關(guān)節(jié)點(diǎn)與外部網(wǎng)絡(luò)的連通。傳統(tǒng)模式主要采用超過80引腳的封裝方式,設(shè)計(jì)復(fù)雜,體積龐大,成本昂貴。本研究采用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ù)響應(yīng)時(shí)間和存儲空間都有嚴(yán)格要求。針對數(shù)據(jù)特點(diǎn)及存儲規(guī)則,采用Berkeley DB 進(jìn)行開發(fā),可支持C++、Java等面向?qū)ο蟮囊活愰_發(fā)語言。線程工作流程如圖9所示,通過考慮頁面大小、高速緩沖區(qū)大小、定期清理緩沖區(qū)、順序?qū)懭牒A繑?shù)據(jù)(B+Tree)進(jìn)行實(shí)時(shí)優(yōu)化。
圖9 線程工作流程Fig.9 Threaded workflow
遠(yuǎn)程控制的網(wǎng)絡(luò)連接控制采用CSC模式,其中C為客戶端,S為服務(wù)器。服務(wù)器是服務(wù)器端的通信模塊。用戶通過客戶端界面對智能家居進(jìn)行網(wǎng)絡(luò)操作,物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)將這些指令轉(zhuǎn)換為服務(wù)器可接收的操作,服務(wù)器對指令進(jìn)行校驗(yàn)及解析,傳入相應(yīng)的智能設(shè)備。整體應(yīng)用流程如圖10所示。
圖10 應(yīng)用流程Fig.10 Application process
基于以太網(wǎng)通信進(jìn)行物聯(lián)網(wǎng)網(wǎng)關(guān)與外部網(wǎng)絡(luò)連接,主要完成兩個(gè)過程:接收客戶端口的Modbus TCP命令幀,將Modbus串行鏈路上的響應(yīng)幀轉(zhuǎn)換為Modbus TCP的消息反饋給客戶端。算法流程如圖11,核心代碼如下。
圖11 物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)通訊模塊算法流程Fig.11 IOT sensor network communication module algorithm workflow
1)創(chuàng)建客戶端,連接服務(wù)器。
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ù)到服務(wù)器
outputStream.write(data);
3)創(chuàng)建數(shù)據(jù)接收線程,處理服務(wù)器返回消息。
newThread(()→{
while(true){
//從服務(wù)器讀取返回消息
Stringmsg=inputStream.read();
//對返回消息進(jìn)行處理
processMessage(msg);
}
}).start();
4)關(guān)閉資源。
client.close()
利用BDB提供的接口進(jìn)行二次開發(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)絡(luò)性能是否滿足用戶需求進(jìn)行性能測試,測試指標(biāo)如表1所示??梢钥闯?物聯(lián)網(wǎng)傳感器網(wǎng)絡(luò)性能測試符合需求。
表1 性能測試數(shù)據(jù)