0 引言
随着自动化技术、计算机网络技术以及通信技术的快速发展,智能的数字设备和家用电器正在不断渗入到现代家庭。这些智能设备的运用使人们与住宅之间的交互变得更为简单和方便,也为智能家居的实现提供了可能。同时,随着经济的高速发展,人们的生活水平不断提高,个人对居住的环境也有了更高的要求,智能家居将成为人们生活的主流。
智能家居的概念起源于20世纪70、80年代,世界上经济比较发达的国家先后提出了各种各样的智能家居系统的设计方案,使智能家居系统在发达国家中得到了广泛的应用。国内智能家居产品的研发起步较晚,上世纪90年代才开始专注于智能家居的研究,在整体水平上参差不齐,对产品的核心技术缺少了自主知识产权。随着物联网技术和云计算技
术的发展,智能家居系统也迎来了新一轮的挑战和机遇。近年来,关于智能家居的项目不断涌现,这些项目包括麻省理工学院媒体实验室及其他部门共同主导的 House_n、美国杜克大学的Smart Home以及卡耐基梅隆大学的Intelligent Workplace。虽然这些项目所带来的研究成果为智能家居发展奠定了基石,但是这些研究仅限于示范性项目并不能被广泛应用于人们的生活。为了使智能家居商业化,各大科技巨头也争相进军智能家居市场,国外主要有谷歌的Android@Home智能家居计划、微软的家庭自动化系统HomeOS、苹果公司的智能家居平台HomeKit和三星的smart Home,国内主要有清华同方的e—Home数字家园,海尔的U_home等。然而,现有的这些智能家居产品由于普遍存在价格昂贵,可靠性和稳定性差,标准不一致,远程控制响应慢以及设备兼容性和扩展性差等问题而没有被用户广泛采用。针对智能家居发展所面临的问题,文献分析了智能家居遭遇的重大挑战源于其价格高、灵活性差、可管理性差以及难以实现的安全性。文献说明了不同硬件和软件之间的互操作性,有限的服务可扩展性和结构的复杂性阻碍了智能家居的大规模应用。
针对上述现有智能家居系统存在的问题和缺陷,为实现对智能设备控制的灵活性、良好的系统扩展性与经济性,本文设计并实现了一种基于开源软件openHAB 的智能家居系统。该系统设计主要包括基于树莓派的嵌入式家庭网关、家庭网络方案以及具有控制住宅内智能设备的统一友好界面,能够实现对家庭数字设备和智能电器的自动化监测和智能控制,为用户生活提供极大的方便。
1 智能家居基本概念
智能家居是未来家庭的发展趋势,它是指将住宅中的各种电子、电气设备通过网络连接起来,进而实现对这些设备和家庭环境的智能管理、远程监控和资源共享。其目的是为人们提供一个安全、舒适、高效和便利的生活环境。
图1描述了一个基本的智能家居系统框架。在图示的室内环境中,所有的数字设备和家用电器都被连接到家庭网络来接收指令或者更新状态,家庭网关不仅使住宅完全连接在一起,也提供了以太网和因特网的外部访问方式,因而使室内环境和室外环境连接在一起,方便于用户远程控制。
2 openHAB平台
openHAB是一种能够将不同家庭自动化系统和技术集成到一个单一解决方案的开源软件。这种方案涵盖广泛的自动化规则并且提供统一的用户接口,旨在为家庭自动化构建提供一个简单通用的集成平台,其基本的结构如下图2所示:
openHAB的设计是与硬件/协议无关,它通过绑定汇集了不同的总线系统、硬件设备和接口协议。这些绑定可以通过openHAB事件总线发送和接收命令,并更新状态。开发者可以在openHAB的基础上设计独特的操作界面以开发自己的家庭自动化系统,或者利用其它技术来创建设备新的控制方式。 openHAB作为一个开源项目,其运行时是基于Eclipse Equinox。如上图2所示,openHAB运行时是一组部署在OSGi框架(Equinox)的OSGi Bundles。
OSGi服务平台由OSGi联盟制定,它由两部分组成:OSGi框架和OSGi标准服务。OSGi框架是实现OSGi功能的运行环境,OSGi标准服务定义了很多用于执行常见的可重用API。OS Gi系统主要由三个构件组成:Framework,Bundle和Service。Framework架构在JVM(Java Virtual Machine)上运行,Bundle是运行在Framework上的应用程序,而Service是Bund le所提供(Export)或所需(Import)的服务。OSGi服务平台是一个通用的、安全的、可管理的Java软件框架结构,因此它具有平台独立性、可移植性和安全性等优良特性。目前,OSGi规范主要面向家庭网关和机顶盒领域。
3 系统方案
本文利用开源软件openHAB设计并实现一种具有灵活控制性、良好系统扩展性与经济性的智能家居系统。系统的总体架构如图3所示,整个系统包括应用域,网络域,智能设备域和云端四个组成部分。应用域实际上就是客户端,网络域由家庭内部网络和外界因特网构成,智能设备区域包括各种智能电子设备和家用电器,云端涵盖了云计算和物联网技术,其所提供的服务能够使openHAB客户端通过互联网进行远程监控住宅。
为了实现图3所示的智能家居系统,本文分别设计了关键组件家庭网关和家庭网络。家庭网关能够管理集成到家庭网络中的智能设备和家用电器并且具有灵活的扩展性和动态更新软件的机制,而家庭网络则主要实现对智能设备的组网和对不同接入方式的兼容。
3. 1 智能家居系统中的家庭网关
家庭网关是智能家居系统中的控制中心,本文图3所示的家庭网关是基于树莓派(Raspberry Pi)和openHAB而搭建。树莓派由注册于英国的慈善组织“Raspberry Pi基金会”开发,它是一款基于ARM的微型电脑主板,以SD卡为内存硬盘,卡片主板周围有两个USB接口和一个网口,可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口。由于其能耗小,价格低廉,并且性能也可以满足本文提出的智能家居系统的需求,因此本系统采用树莓派作为家庭网关的硬件设备,而且树莓派中运行的是基于Debian的Linux的操作系统,有着丰富的开源软件,因而开发也方便。
本文设计的家庭网关体系结构如图4所示。用户界面为用户提供Web工具或者远程App等,主要负责为整个智能家居提供可视化操作,从而使用户能够方便控制整个住宅中的智能设备。I/O服务为终端用户提供Http接口、Socket接口等服务。安全模块主要是为了使用户远程监控住宅而提供认证和授权功能。云服务模块为家庭用户或者家庭设备使用云服务提供适配功能。数据分析模块主要用于对家庭设备的监控数据进行处理和分析。逻辑控制策略模块能够根据数据分析结果实现对设备的智能控制,同时也为智能设备之间的相互协作提供策略。数据存储与日志分析模块主要负责处理、存储和检索住宅中各种智能设备的历史数据,这些数据便于后续研究分析。
针对其中的用户界面模块,用户可以使用openHAB中org.openhab.ui.webapp工程中的CmdServlet和WebAppServlet入口类来定制自己的用户界面。逻辑控制策略模块可以借助openHAB所提供的包予以实现,例如:
上述代码只是为了说明逻辑控制策略模块的实现方式。设备驱动/数据采集模块可以依据OSGi技术规范为各种智能设备开发并实现其Bindings,一个 Binding对应于OSGi的一个Bundle。Binding的目的就是对openHAB事件总线上的事件和外部系统之间进行转换。Binding需要常规配置设置,这可以通过在OSGi配置管理服务(Configuration Admin)来实现,具体可以实现接口ManagedService。Binding的通信方式有两种,一种是从openHAB事件总线发送命令或者更新状态到外部系统,另一种就是从外部系统获取信息并且传给openHAB事件总线。Binding所需要实现的关键方法有:
通过openHAB并且结合所开发的智能设备驱动模块(即Bundles),使得所有家庭智能设备能够和家庭网关进行正常通信,便于用户控制。为了实现整个家庭网关架构,还需在嵌入式硬件设备树莓派中安装Raspbian操作系统以及Java运行环境JRE。
3.2 智能家居系统中的家庭网络
如上图1所示,针对智能家居的通信问题,不仅需要使室内电子设备和家用电器能够进行通信,并且还要将智能家居与外界因特网进行通信。根据图3提出的智能家居系统整体设计方案,本文专注于实现智能家居室内通信。
依据通信网络的范围和规模,一般通信网络可分为如上图5所示的四种类型。PAN(Personal Area Network)个人局域网通常是无线的,并且是以按需或者自组织方式建立连接,其通信范围距离短,常常限制在10米及其以内范围。LAN(Local Area Network)局域网是一个小范围地理区域的相对较小的网络,例如笔记本电脑、台式电脑、打印机和其他联网设备在相对较近的距离能够彼此互联组建一个局域网。MAN(Metropolitan Area Network)城域网通常用来描述覆盖全市或者城镇的一个网络,城域网比传统的局域网覆盖范围要大得多,它主要使用光纤电缆等高速介质传输数据。WAN(Wide Area Network)广域网比LANs和MANs覆盖更大的地理区域,并且它将不同地理区域的设备连接在一起分享信息,一个广域网能够包含多个较小的网络,例如LANs或者MANs。
针对智能家居室内通信问题(如下图6所示),本文依据上述四种不同通信网络的各自特点,将专注于个人局域网(PAN)无线通信技术和局域网(LAN)技术。本文提出的架构都是基于上述范围内的通信技术及相应的智能设备。从技术的角度来看,家庭网络的主要挑战来源于不兼容的通信技术标准。为了解决住宅中的复杂多样的异构网络,本文设计了基于openHAB的家庭网关,它能够使整个系统适应不同的网络技术如蓝牙,ZigBee,Z—Wave,Wi— Fi,EnOcean等,并且通过家庭网关为不同的通信子网提供桥接能力,因而整个住宅中的网络设备能够全部连接在一起。在openHAB中,为智能设备相关协议开发并实现其Bundle,然后将其加载到openHAB运行时,这样就使得家庭网关支持不同的协议类型,具备连接家庭各种类型子网能力,以适应于家庭网络的异构性。
更进一步,若要为智能家居系统提供安全可靠的因特网外部访问方式,还需要深入研究家庭网络以及家庭网关,因为家庭网络已然发展成为无处不在的计算环境并且大量的私人信息变得是可以访问的。因此在这样一个开放式的网络环境中,我们有必要而且必须要保护家庭网络免受非法访问和安全威胁,关于这方面研究工作可以参考文献。
4 实验验证
图7所示为本文实验平台组件和设备的部署图。为了简化实验方案而不失一般性,并且能够实现对本文提出的智能家居系统的有效性和可靠性的验证,实验平台仅采用B型绿版UK树莓派和Milight等硬件搭建了智能家居原型系统,并使用开源软件openHAB1.4版本。
实验中所使用的硬件连接示意图如下图8所示:
可以使用命令行终端观察整个系统后台运行的状态如下图9所示:
经过连续一个月的运行和测试,系统运行状态稳定。
使用手机终端或者平板电脑登录到家庭网关的Web服务器中,以获取已设计开发出来的用户界面。通过用户界面(如下图11所示),用户可以控制Milight灯的亮度以及色度,其实验结果如下图10所示:
经过长时间的运行和测试,试验表明该套系统可以很方便控制住宅内的智能设备,系统对于智能硬件设备控制的实时性以及系统自身的稳定性都能够满足日常生活需求并且给用户带来极大的方便和好处,同时该系统也具有价格低廉,节能,易扩展,界面友好等优点。
5 结论
本文介绍了智能家居的基本概念,并针对当前智能家居系统所面临的挑战,基于openHAB设计并实现一种具有灵活控制性、良好系统扩展性与经济性的智能家居系统。该系统能够实现对住宅内智能电子设备和家用电器的监控和智能控制。然而本文仅仅验证并实现部分室内智能家居控制,因此还需对系统作进一步的完善。