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