趙鑫+王亞剛+王凱
摘 要:為了解決當前用戶反映智能家居控制系統(tǒng)占用了手機或電腦大量內(nèi)存而導致電子設備運行緩慢的問題,設計了基于B/S模式的智能家居管理系統(tǒng)。運用B/S結構模式,結合Node.js平臺,通過MongoDB數(shù)據(jù)庫與Socket.IO通訊協(xié)議,搭建Express框架的服務器,并布置網(wǎng)站到云服務器上,使用戶可以通過4G和WiFi等網(wǎng)絡控制與管理設備。經(jīng)測試,系統(tǒng)在不同設備終端均運行正常,系統(tǒng)的擴展也非常容易,可實現(xiàn)客戶端的零安裝、零維護,只要有網(wǎng)絡即可控制設備。
關鍵詞:物聯(lián)網(wǎng);智能家居;B/S模式
DOIDOI:10.11907/rjdk.172945
中圖分類號:TP319
文獻標識碼:A 文章編號:1672-7800(2018)002-0099-03
0 引言
“智能家居”的概念,伴隨著物聯(lián)網(wǎng)技術的不斷推進,已頻繁出現(xiàn)在實際生活應用中,切實改變了人們的生活方式與工作習慣。它包含兩層含義,一層是自動化處理過程,自動化處理過程是智能的基礎,包括遠程監(jiān)測、控制設備開關,根據(jù)設備的功能性分類進行參數(shù)設置、定時啟動等,能夠以自動和手動兩種方式,在家庭內(nèi)或家庭外達到遠程同步控制,不再受地理位置限制,給予作為“控制者”的用戶最大程度的自由;另一層是信息分析過程,對從物理層采集的數(shù)據(jù)進行分析處理,實現(xiàn)數(shù)據(jù)統(tǒng)計、行為預測等功能。提供處理后的有價值的生活信息能讓用戶或系統(tǒng)本身成為家居的智能“管理者”,實現(xiàn)在應用層的不同應用。本文基于B/S架構模式,設計并實現(xiàn)了一個智能家居管理系統(tǒng)。綜合運用智能化家居技術和Web技術,能夠使用戶在客戶端零安裝的前提下通過不同的設備終端訪問系統(tǒng),建立個人家居管理檔案,實現(xiàn)設備遠程監(jiān)控、智能信息分析等功能。
1 基于Web的B/S模式架構
在系統(tǒng)的組成結構方面,最常見的架構主要為B/S模式(Browser/Server)和C/S模式(Client/Server)。通常B/S模式的構成可分為三層,其體系結構如圖1所示。
B/S模式由瀏覽器和服務器組成,服務器包括Web服務器、數(shù)據(jù)庫服務器、應用服務器等多層結構,并存有應用程序與數(shù)據(jù)信息。在網(wǎng)頁端加載服務器端運行程序,瀏覽器向用戶提供應用界面顯示。B/S模式利用Web技術結合瀏覽器的多種腳本語言,瀏覽器作為通信平臺實現(xiàn)交互功能。C/S模式與B/S應用程序架構對比如表1所示。
考慮到智能家居對滿足用戶需求的實時性要求很高,本文采用了B/S模式。
2 智能家居管理系統(tǒng)設計
將智能家居管理系統(tǒng)分為用戶信息模塊、設備列表模塊,分別進行功能設計。
(1)用戶信息模塊:建立用戶信息檔案,有系統(tǒng)注冊、登錄等基本功能。提交以常用郵箱為地址的用戶名,可向郵箱發(fā)送系統(tǒng)信息等。核實信息采用MD5驗證方式,以保證系統(tǒng)安全性。
(2)設備列表模塊:主要具有顯示和控制功能,顯示信息分為屬性信息和使用信息兩類。前者以列表方式呈現(xiàn),列明設備名稱、編號,后者顯示如設備實時電量、累計電量,設備狀態(tài)是處于開啟還是關閉等使用信息情況。控制功能包括遠程控制設備開關和設置定時開關,還可以根據(jù)用電對象進行模式修改如調節(jié)空調溫度等。另外,加入第三方天氣數(shù)據(jù)接口,向用戶提供溫度變化、空氣質量等信息,以便對溫控及風控設備進行控制。系統(tǒng)具體結構如圖2所示。
3 系統(tǒng)軟件實現(xiàn)
3.1 用戶模塊實現(xiàn)
首先需要實現(xiàn)系統(tǒng)Web服務器,本文用到的軟件開發(fā)工具有:①Node.js v4.4.3運行平臺;②Node Package Manager v2.15.1 JavaScript包管理器;③MongoDB v3.2.6數(shù)據(jù)庫;④可視化數(shù)據(jù)庫Robomongo v0.9.0;⑤IDE工具Sublime Text。對以上工具進行下載、安裝并在系統(tǒng)環(huán)境下進行配置。
由Express搭建HTTPs服務器,具體步驟如下:①用NPM在全局安裝express模塊(V4.13.1)“npm install-g express”;②采用Express創(chuàng)建網(wǎng)站基本結構和項目名稱smarthome “exprss-e smarthome”;③進入工程目錄cd./smarthome,根據(jù)package.json文件“npm install”自動安裝文件內(nèi)所有指定的dependencies依賴模塊。
由Node.js搭建http服務器,先引入http模塊,設定端口號并存儲(默認端口號3000),用http.createServer方法新建一個App實例,監(jiān)聽端口號并啟動服務器“npm start”,終端顯示Express server listening on port 3000 in development mode。在服務器上,軟件運行環(huán)境是Windows Server 2012 R2系統(tǒng),瀏覽器地址輸入http://182.61.17.241:3000(云服務器公網(wǎng)IP地址)。
用戶模塊主要功能實現(xiàn)原理如下:用戶在/reg注冊頁中填寫表單信息,采用POST方式得到req.body.username,req.body.password,req.body.email三個參數(shù),按照預設的User.protype.save保存到數(shù)據(jù)庫中。在/login登錄頁中填寫表單信息,得到的username和password用User.get方法進行檢驗。
3.2 設備控制模塊實現(xiàn)
在數(shù)據(jù)庫中建立設備集合Device,用于將設備對象的屬性信息和控制信息保存到數(shù)據(jù)庫中。對需要定時的設備也建立集合Schedule,用于保存定時事件信息、觸發(fā)時間與觸發(fā)事件,使用mongoose模塊可以更加簡化地使用native mongoDB。簡要實現(xiàn)代碼如下:endprint
//Device集合
var mongoose = require('./database.js');
var Schema=mongoose.Schema;
var deviceSchema=
new Schema({
owner:String,
name:String,
type:{type:Number,default:0},
online:{type:Boolean,default:true},
status:{type:Boolean,default:false},
power:{type:Number,default:0},
sumpower:{type:Number,default:0},
time:{type:String,default:Date.now}
//Schedule集合
var mongoose=require('./database.js');
var Schema=mongoose.Schema;
var scheduleSchema=
new Schema({
device_id:String,
task:{type:Boolean,default:false},
scheduletimestart:{type:String,default:Date.now}
},
scheduletimefinish:{type:String,default:Date.now}
}
界面功能實現(xiàn)如圖3所示。
4 結語
結合用戶需求,本文分析了B/S和C/S的架構特點,提出基于B/S架構模式的Web應用程序。在無需安裝App、無需占用移動設備內(nèi)存的前提下,實現(xiàn)了智能家居管理系統(tǒng)設計。在軟件實現(xiàn)上,運用了Node.js平臺,結合MongoDB數(shù)據(jù)庫和Socket.IO通訊協(xié)議,搭建Express框架的服務器,并布置網(wǎng)站到云服務器上,使用戶在任何時間、地點都可以通過4G和WiFi等網(wǎng)絡控制與管理設備。經(jīng)測試,該系統(tǒng)中各個功能模塊均運行良好。因此,本文的設計具有良好的通用性和可擴展性,可以作為其它智能項目的基礎框架。
參考文獻:
[1] 廖俊.基于B/S模式的遠程監(jiān)控系統(tǒng)的研究及軟件實現(xiàn)[D].成都:西南交通大學,2006.
[2] 閆石.基于嵌入式B/S架構的智能家居遠程監(jiān)控系統(tǒng)開發(fā)[D].南京:南京理工大學,2014.
[3] 丁智剛.C/S模式與B/S模式相結合的數(shù)據(jù)庫系統(tǒng)技術研究[J].信息安全與技術,2011(11):41-44.
[4] CHONG G, ZHIHAO L, YIFENG Y. The research and implement of smart home system based on Internet of Things[C].2011 International Conference on Electronics, Communications and Control (ICECC),2011.
[5] YANG W. Smart home system conception based on Internet of Things[J]. Management Science and Engineering,2016.
[6] 董紀國.基于B/S架構的物聯(lián)網(wǎng)應用組態(tài)平臺研發(fā)[D].南京:南京大學,2015.
[7] 郭家寶.Node.js開發(fā)指南[M].北京:人民郵電出版社,2012.
[8] KARAGOEZ M F, TURGUT C. Design and implementation of RESTful wireless sensor network gateways using Node.js framework[C].European Wireless 2014,20th European Wireless Conference,2014.
[9] 單振華,王舒憬,陳凱,等.基于NodeJS的智能家居語音控制系統(tǒng)服務器端設計與實現(xiàn)[J].工業(yè)控制計算機,2016(4):66-67.
[10] 王越.基于node.js的微博系統(tǒng)的設計與實現(xiàn)[D].成都:電子科技大學,2014.
[11] 陳敏敏.基于MongoDB云存儲平臺的論壇信息抽取與存儲研究[D].上海:上海交通大學,2012.
[12] 劉嬋媛.基于物聯(lián)網(wǎng)的智能家居系統(tǒng)研究與實現(xiàn)[D].北京:北京郵電大學,2012.endprint