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