基于B/S模式的智能家居管理系统设计

2018-03-10 00:39赵鑫王亚刚王凯
软件导刊 2018年2期
关键词:S模式智能家居物联网

赵鑫+王亚刚+王凯

摘 要:为了解决当前用户反映智能家居控制系统占用了手机或电脑大量内存而导致电子设备运行缓慢的问题,设计了基于B/S模式的智能家居管理系统。运用B/S结构模式,结合Node.js平台,通过MongoDB数据库与Socket.IO通讯协议,搭建Express框架的服务器,并布置网站到云服务器上,使用户可以通过4G和WiFi等网络控制与管理设备。经测试,系统在不同设备终端均运行正常,系统的扩展也非常容易,可实现客户端的零安装、零维护,只要有网络即可控制设备。

关键词:物联网;智能家居;B/S模式

DOIDOI:10.11907/rjdk.172945

中圖分类号:TP319

文献标识码:A 文章编号:1672-7800(2018)002-0099-03

0 引言

“智能家居”的概念,伴随着物联网技术的不断推进,已频繁出现在实际生活应用中,切实改变了人们的生活方式与工作习惯。它包含两层含义,一层是自动化处理过程,自动化处理过程是智能的基础,包括远程监测、控制设备开关,根据设备的功能性分类进行参数设置、定时启动等,能够以自动和手动两种方式,在家庭内或家庭外达到远程同步控制,不再受地理位置限制,给予作为“控制者”的用户最大程度的自由;另一层是信息分析过程,对从物理层采集的数据进行分析处理,实现数据统计、行为预测等功能。提供处理后的有价值的生活信息能让用户或系统本身成为家居的智能“管理者”,实现在应用层的不同应用。本文基于B/S架构模式,设计并实现了一个智能家居管理系统。综合运用智能化家居技术和Web技术,能够使用户在客户端零安装的前提下通过不同的设备终端访问系统,建立个人家居管理档案,实现设备远程监控、智能信息分析等功能。

1 基于Web的B/S模式架构

在系统的组成结构方面,最常见的架构主要为B/S模式(Browser/Server)和C/S模式(Client/Server)。通常B/S模式的构成可分为三层,其体系结构如图1所示。

B/S模式由浏览器和服务器组成,服务器包括Web服务器、数据库服务器、应用服务器等多层结构,并存有应用程序与数据信息。在网页端加载服务器端运行程序,浏览器向用户提供应用界面显示。B/S模式利用Web技术结合浏览器的多种脚本语言,浏览器作为通信平台实现交互功能。C/S模式与B/S应用程序架构对比如表1所示。

考虑到智能家居对满足用户需求的实时性要求很高,本文采用了B/S模式。

2 智能家居管理系统设计

将智能家居管理系统分为用户信息模块、设备列表模块,分别进行功能设计。

(1)用户信息模块:建立用户信息档案,有系统注册、登录等基本功能。提交以常用邮箱为地址的用户名,可向邮箱发送系统信息等。核实信息采用MD5验证方式,以保证系统安全性。

(2)设备列表模块:主要具有显示和控制功能,显示信息分为属性信息和使用信息两类。前者以列表方式呈现,列明设备名称、编号,后者显示如设备实时电量、累计电量,设备状态是处于开启还是关闭等使用信息情况。控制功能包括远程控制设备开关和设置定时开关,还可以根据用电对象进行模式修改如调节空调温度等。另外,加入第三方天气数据接口,向用户提供温度变化、空气质量等信息,以便对温控及风控设备进行控制。系统具体结构如图2所示。

3 系统软件实现

3.1 用户模块实现

首先需要实现系统Web服务器,本文用到的软件开发工具有:①Node.js v4.4.3运行平台;②Node Package Manager v2.15.1 JavaScript包管理器;③MongoDB v3.2.6数据库;④可视化数据库Robomongo v0.9.0;⑤IDE工具Sublime Text。对以上工具进行下载、安装并在系统环境下进行配置。

由Express搭建HTTPs服务器,具体步骤如下:①用NPM在全局安装express模块(V4.13.1)“npm install-g express”;②采用Express创建网站基本结构和项目名称smarthome “exprss-e smarthome”;③进入工程目录cd./smarthome,根据package.json文件“npm install”自动安装文件内所有指定的dependencies依赖模块。

由Node.js搭建http服务器,先引入http模块,设定端口号并存储(默认端口号3000),用http.createServer方法新建一个App实例,监听端口号并启动服务器“npm start”,终端显示Express server listening on port 3000 in development mode。在服务器上,软件运行环境是Windows Server 2012 R2系统,浏览器地址输入http://182.61.17.241:3000(云服务器公网IP地址)。

用户模块主要功能实现原理如下:用户在/reg注册页中填写表单信息,采用POST方式得到req.body.username,req.body.password,req.body.email三个参数,按照预设的User.protype.save保存到数据库中。在/login登录页中填写表单信息,得到的username和password用User.get方法进行检验。

3.2 设备控制模块实现

在数据库中建立设备集合Device,用于将设备对象的属性信息和控制信息保存到数据库中。对需要定时的设备也建立集合Schedule,用于保存定时事件信息、触发时间与触发事件,使用mongoose模块可以更加简化地使用native mongoDB。简要实现代码如下: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}

}

界面功能實现如图3所示。

4 结语

结合用户需求,本文分析了B/S和C/S的架构特点,提出基于B/S架构模式的Web应用程序。在无需安装App、无需占用移动设备内存的前提下,实现了智能家居管理系统设计。在软件实现上,运用了Node.js平台,结合MongoDB数据库和Socket.IO通讯协议,搭建Express框架的服务器,并布置网站到云服务器上,使用户在任何时间、地点都可以通过4G和WiFi等网络控制与管理设备。经测试,该系统中各个功能模块均运行良好。因此,本文的设计具有良好的通用性和可扩展性,可以作为其它智能项目的基础框架。

参考文献:

[1] 廖俊.基于B/S模式的远程监控系统的研究及软件实现[D].成都:西南交通大学,2006.

[2] 闫石.基于嵌入式B/S架构的智能家居远程监控系统开发[D].南京:南京理工大学,2014.

[3] 丁智刚.C/S模式与B/S模式相结合的数据库系统技术研究[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架构的物联网应用组态平台研发[D].南京:南京大学,2015.

[7] 郭家宝.Node.js开发指南[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的智能家居语音控制系统服务器端设计与实现[J].工业控制计算机,2016(4):66-67.

[10] 王越.基于node.js的微博系统的设计与实现[D].成都:电子科技大学,2014.

[11] 陈敏敏.基于MongoDB云存储平台的论坛信息抽取与存储研究[D].上海:上海交通大学,2012.

[12] 刘婵媛.基于物联网的智能家居系统研究与实现[D].北京:北京邮电大学,2012.endprint

猜你喜欢
S模式智能家居物联网
基于Zigbee的无线通信技术在智能家居中的应用
中国或成“物联网”领军者
关于智能家居真正需求的探讨
基于LD3320的智能家居控制