智能家居系统结构标准化

版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖。如要转贴,必须注明原文网址
http://www.cnblogs.com/Colin-Cai/p/8490423.html
作者:窗户
QQ:6679072
E-mail:6679072@qq.com

0 引 言

智能家居是指利用先进的计算机技术、网络通信技术、综合布线技术,将与家居生活有关的各种子系统有机地结合在一起,通过统筹管理,让家居生活更加舒适、安全、有效。随着社会全面的信息化、智能化和网络化,智能家居的日益普及将是一种必然。

智能家居作为一个新生事物,目前处于只有初步概念,尚未有任何标准的阶段。

本文为智能家居系统提供一个可能的设计模式以及未来发展的行业方向。

1 整体结构

    智能家居的家庭内部结构,需要包含一个嵌入式的智能网关,作为家庭智能家居的核心存在。围绕着智能网关,智能家居可以扩展性的加入各种方式的节点,用于各种对于家用电器/家庭通信设备/安防设备/计费仪表/节能设备/家具等进行控制与数据交互。另外,智能网关需要提供一个人机交互的手段。其内部的关系拓扑结构如下:

                      

                           图1  智能家居内部结构

                 Fig.1 The internal structure of the smart home

    考虑到小区可能需要一定的管理,比如包括物业信息传达,交纳费用等,智能家居可以再往上扩展,并以Internet为载体,以便于远程访问。以下为可能的小区拓扑结构:

                   

                            图2 小区网络结构

                 Fig.2 The structure of the community network

小区网关对内和小区内所有家庭的智能家居网关在同一个局域网内,可以随时和智能网关进行通信。小区网关对外接Internet。这样就可以从外部通过Internet访问该小区内任何一个家庭的智能家居。

由上,我们可以看出,对于单个家庭的智能家居来说,其智能网关是作为系统正常工作的核心设备存在的,而对于一个小区所有的智能家居来说,小区网关是作为关联所有智能家居系统,提供Internet服务的核心存在。这样,整个小区的智能家居网络结构成一个树形。最顶层是小区网关,第二层是智能网关,第三层是各种类型的节点。树状拓扑结构清晰,控制路径单一,小区网关也可以分为多层,对低层的智能家居节点也一样可以分为多层,根据实际情况而定,但在普通的情况下,三层是比较普遍的。

2  通信方式

智能家居系统中,节点用来控制家庭的各个部分以及反馈各个部分的相关信息,用于家用电器/家庭通信设备/安防设备/计费仪表/节能设备/家具等。

安防设备中,比如摄像头,一般采用以太网或者WIFI来做为通信手段,而其他安防设备,比如门禁,通信数据量并不大,不一定需要较高速率的传输手段。

智能计费仪表有些可能带有各自的无线通信模块,电表采用电力载波(PLC)传输比较常见。虽然智能网关一般来说不太会为了和电表通信而加一个电力载波模块,但可以设计一个电力载波转别的通信的硬件来作为电表节点使用。

家用电器一般采用红外控制,考虑到红外通信的传输距离问题,传输距离最大只有十米,并且无法穿越墙壁等障碍,所以智能网关直接使用红外控制并不是可选方案,我们可以用一个家电控制模块去充当节点,而家电控制模块再通过别的方式与智能网关通信。

而对于其他设备,如果在设计中要被应用到智能家居系统之中,也可以附着其他节点所已经使用的通信手段来实现。

对于智能家居系统,考虑到家庭装修的美观以及使用的方便,一般不宜采用有线的方式来作为通信介质,而采用无线的方式来通信。WIFI可以用于大数据量通信,适合用于摄像头。尽管WIFI在通信速率上本可以做为所有节点间的通信手段,但考虑到WIFI用于TCP/IP的通信,而使用这样复杂的协议栈对于处理器要求比较高,另外加上功耗比较高,所以在慢速无线通信的时候,可以采用其他相对简单的无线通信。除了ISM频段,其他频段需要许可证,用于专用的通信,所以只可以在ISM频段下选择非WIFI的另外一种通信方式。

目前最常用的无线通信方式除了WIFI外主要有Zigbee/蓝牙等。Zigbee和蓝牙尽管都适合低速率传输,但Zigbee有更加强大的网络拓扑功能,而蓝牙目前最主要用来一对一的通信。

3  Zigbee网络

3.1 Zigbee简介

Zigbee(IEEE802.15.4)技术是2000年以来建立起的一种采用跳频技术和扩频技术来实现的无线通信技术,采用2.4G频段,该频段属于ISM。

IEEE802.15.4标准只是规定了物理层(PHY)和媒体接入控制层(MAC),但设计PHY和MAC的时候考虑到了之后协议扩展的需要,而zigbee在此基础上再加入了上层协议,包括网络层和应用层。

3.2 Zigbee网络

除了最简单的一对一通信之外,zigbee实现了各种网络结构,所有的zigbee网络中,都有唯一的一个核心,称之为协调器。除了协调器之外,还有一些其他的成员,根据网络中其他成员与协调器之间关系,可以分为星型网络,以及树型网络,还有最复杂的网格网络。

星型网络:所有的非协调器网络成员只与协调器之间直接通信,成员之间的通信通过协调器转发。

树型网络:整个网络拓扑是一个树型,网络中两个网络成员之间通信可能需要别的成员进行数据转发。因为为树型,任何两个非协调器成员之间的通信路径单一。

网格网络:网络拓扑是一个连通图,但可能不是树型,于是可能存在两个点的通信路径不唯一。

对于树型网络和网格网络,称参与通信数据转发的非协调器成员叫路由器,而不参与通信数据转发的成员叫节点。

3.3 Zigbee的优点以及缺点

Zigbee的优点主要有如下几点:

低功耗:引入休眠和唤醒机制。

低成本:Zigbee协议栈实现简单,无专利费的门槛。

网络容量大:当采用网格网络组网的时候,整个网络最大的规模可以到60000以上。一个区域内可以同时存在最多可达100个不同的Zigbee网络

安全性:采用AES 128位对称加密算法保障用户通信安全,非对称加密计算复杂度底,使用单片机完全可以完成。

通信可靠:动态组网,网络拓扑结构可能随时自动调整。

当然Zigbee也有缺点,缺点主要有如下几点:

传输距离小:Zigbee网络有效传输距离一般10米~75米,这个距离使得覆盖面积较小。用功率放大器可以扩大覆盖范围。

数据传输速率低:链路层上的速率只有200Kb/s,在此基础上,还有帧头、应答、重传以及信道竞争等等,所以实际的速率是很低的。

3.4 为何采用Zigbee

Zigbee的通信实现简单,协议栈可以在一个主频只有50MHz,RAM只有8k的处理器上运行,对硬件的要求很低。Zigbee动态组网,随时可以加入新的节点到网络,组网方便。Zigbee对于普通不带路由功能的节点通信采用休眠/唤醒机制,大多数情况下硬件可以处于休眠状态,功耗可以很低,两节5号电池可以使用半年之久。

考虑到智能家居系统之中,一些节点可能需要电池去供电,功耗是一个很重要的参考因素。大多数的通信在于节点状态汇报,网关发出控制指令等,而这些通信数据量都很低。从而,设计智能家居系统的时候,可以考虑使用zigbee作为智能网关与各个节点之间通信的手段,采用网格网络比星型网络更有优势。在Zigbee网格网络中,路由器因为随时需要通信转发,所以无法休眠,耗电量相对较大,设计时可以考虑使用在一些外部供电的节点上,例如电表抄表、智能插座;而不带路由功能的普通节点可以使用在一些电池供电的手持设备,例如家电控制模块。整个Zigbee网格网络的协调器由智能网关担当。

如此设计低速无线通信方案,比较实用、经济。

4  智能网关

    作为家庭智能家居的核心,智能网关的硬件软件设计上要满足其跟功能性、扩展性的需要。

4.1 智能网关的硬件

在处理器的选择上,可以选择基于ARM的处理器芯片,集成视频/音频等处理模块,性价比较高。考虑到网关这里功能复杂,数据处理量比较大,选择支持主频512M以上。

存储上选择512M DDR,256M nandflash,满足处理以及存放系统程序的需要,另外,需要SD卡插槽,可以用来存储图象等大数据量文件。

对于摄像头这样的高速设备,以太网口是最佳的传输方式,因为传输稳定,传输速率高,但考虑到家庭装修的美观以及摄像头所放位置的随意,考虑WIFI来作为传输接口。Internet可以通过家用的WIFI路由器连小区网络。

对于慢速无线,可以选择zigbee作为传输接口。

智能网关可以作为手持设备,需要一个手触屏作为手持人机交互界面。

同时需要音频,包括扬声器和话筒,可以满足远程视频通话、提示音、多媒体以及声控等方面的需要。

电源可以使用外接5V适配器供电。

4.2 Linux

随着信息技术的发展,Linux使用的场合也越来越多。

Linux的源代码公开,任何人都可以去下载不同版本的Linux源码,并可以对源码做任意的修改,又因为Linux是目前对于目前对POSIX支持最完备的操作系统,很多代码可以直接在UNIX和Linux之间移植,所以Linux成为了目前世界上除了PC机领域之外使用最广泛的操作系统之一。做为一种重要的操作系统,Linux已经被移植到约20个不同的体系结构,至少支持几百种不同的处理器芯片。服务器领域和嵌入式领域里Linux占据着不可替代的位置。

在嵌入式领域里,无论是高端市场,还是低端市场,Linux都是作为主流甚至首选通用操作系统而存在。Linux的背后是强大的开源支持,大多数的需求都可以在这些开源支持里找到支持方案。选择Linux还在于其操作系统的强扩展性,新的功能/新的任务可以通过进程的方式临时运行,其镜象只是文件系统上的一组文件,软件升级可能只需要复制几个文件即可。再加上Linux自带的一些强大工具,包括shell/awk/sed等脚本解释工具,以及其他对于网络/文件系统/操作系统设置等方面支持的很多系统的工具,使得项目的设计可以非常灵活。

作为上层的应用来说,Linux越来越成为大型服务器的首选,而世界各大公司的支持使得Linux非常稳定。

对于智能网关,因为其功能多样性,需要一个灵活的操作系统作其核心,再者智能家居所提的服务可扩展性的,任何时候都可以加入一个新的设备/新的服务到智能家居系统之中,智能网关在家庭智能家居中充当服务器以及在小区网络中承上启下的角色,使用Linux是适合的。

而其他广泛应用的通用嵌入式操作系统,Andorid主要用于手机这样的终端手持设备,而winCE则要有版权费用,并且开放的资源不如Linux这么多。

4.3 人机交互界面

智能网关需要提供人机交互界面,让使用者可以控制整个系统。对于一个成熟的家用产品,面向一般客户群体,美观、易用是设计人机界面的时候需要慎重考虑的。

人机界面主要包含LCD屏幕显示控制和网络远程访问。

LCD屏幕显示控制属于图形界面。Linux下对于图形界面的支持比较常用的是X架构,但X架构比较庞大,结构比较复杂,资源开销大,不适合嵌入式的开发。一般对于嵌入式的图形界面开发,可以采用挪威TrollTech 公司出品的QT库来进行开发,这是一个跨平台的图形界面库,支持很多种不同的平台。同时需要考虑多媒体的支持,以满足用户娱乐方面的需要。

远程访问可以采用web方式,而现在,无论PC机/手机/PAD/掌上电脑等,都带有访问web服务用的浏览器。这样远程控制的时候无需自定义应用层协议,更无需为不同的设备编写不同的客户端软件,只要设备中有浏览器并可以接入网络,就可以远程访问智能网关提供的服务,使用很方便。Linux下有各种不同的web服务器可以选择,包括Apache、Boa、Lighttpd等,Apache功能强大,但一般用来做大型网站,Boa是单线程服务器,很轻型,相对Apache来说更适合作为智能网关的web服务器。内部配置等可以用小型数据库sqlite3,更加适合嵌入式环境。

4.4 下层通信程序

软件设计的时候可以采用人机交互与具体功能实现逻辑分开。具体功能实现与人机交互程序之间采用进程间通信(IPC)来交互。这样结构比较清晰,架构容易扩展。

智能网关的软件关系如下:

                       

                                  图3 智能网关软件结构

                     Fig.3 the structure of intelligent gateway software

4.5 语音识别

人类自然语言是天然的人机交互手段,使用语言作为交互接口可以使得人机交互更加方便/人性化。

语音识别从属模式识别,采用信号处理手段实现,一般采用提取高频信号作为语音的特征,然后再进行模糊匹配,得到各个音节等,然后再进行语法分析/文字匹配来取得最终的意思。

目前语音识别技术发展很迅速,技术已经十分成熟,世面上早已存在多款应用于手机的语音识别程序。可以考虑把语音识别系统加入到智能网关中,方便使用。

5  小区网络

小区网络的作用是为了用户可以真正意义上通过Interner实现远程访问。

小区架构开篇的时候已经提到,在这里,小区内所有家庭的智能家居都作为一个节点接入到小区网络,这个小区网络构成一个局域网,每个智能家居都在这个局域网中有一个唯一的IP地址,而小区网关则作为一个连接外部Internet和内部。

考虑到Internet访问,对于之前提到的智能网关的设计里提到智能网关采用web界面,当通过小区网关连上Internet网络,一样可以采用web界面。智能网关在这里为每个家庭智能家居的IP地址配备一个账号和密码,当用户输入相应的帐号和密码之后,智能网关可以使用http代理服务器把web服务转接到相应的智能家居上。

小区网关同时也可以与物业绑定在一起,对内支持小区的各种服务,包括电影、电视剧的播放,小区的建设规划提醒,各种费用的电子账单,以及提供购物、送货等服务。

另外,对于通信服务,小区网关也可以为小区之内的用户乃至Internet上互相之间视频电话建立桥梁。

6  系统标准化

    智能家居目前在国际上尚未达成一致共识,不存在任何标准性的规定,不同的公司有自己设计智能家居的思路与实现。换句话说,目前还尚处于智能家居概念形成的时间。

概念形成的过程有其好处,可以逐渐淘汰掉一些对于用户实际需求关系不密切的功能,越到以后,越会贴近用户的实际使用需要。时机成熟的时候,可以制定这一行业的系统标准化。

标准化可以包含如下的几点:

智能家居的概念意义:定义智能家居所涵盖的范围,对于家居生活的实际意义所在。

智能家居实现的系统拓扑架构:制定智能家居用于Internet所使用的系统拓扑,制定拓扑结构中每一层的意义。

智能家居所使用的通信方式:制定包括各个拓扑层次之间的通信方式,包括物理层/链路层/网络层。

智能家居通信中所使用的应用层通信协议:制定包括智能家居内部节点与网关之间的应用通信协议。

智能家居所提供的系统配置扩展性要求:制定可以灵活的添加智能家居配置的文件以及添加方式等扩展接口定义。

而包括硬件参数、设备外形、所使用操作系统等则无需做规定,但可以在标准中建议。这样有助于系统实现的灵活性,因为集成电路技术的不断进步,嵌入式操作系统的多样化,如果标准中规定的太死对于智能家居发展不利。

定义标准的好处在于对于所有的智能家居厂商有个行为标准,从而可以使得不同的智能家居产品之间接口兼容,可以灵活替换,在这样的基础之上,智能家居这个大市场可以有更多的选择余地。理想下,小区在智能家居市场中选择智能家居产品可以如同像在电子市场选择不同的器件那样自由灵活,选构系统中的不同厂商的不同配件就可以配套成一个完整的智能家居解决方案。

其中系统配置扩展性的标准化也可以应用于家电厂商,如果家电厂商需要把某个新产品加入到智能家居中应用,也可以按照标准扩展接口定义为该新产品定制一个。自然,对于实现扩展,智能网关需要自带一个扩展接口的解释器,支持动态加载新的家居配置到系统服务中。

7  其 他

    智能家居是为了提供给使用者舒适方便的家居服务,易用性、智能化是其核心意义所在。智能家居在系统的实现之后,可以再考虑整合不同的服务,引入人工智能,根据使用者的习惯而自动选择家居服务,更加方便的满足使用者的需要。神经元网络是目前比较成熟的人工智能模型,可以以此为基础发展出合适的人工智能实现手段。

8     结 论

    智能家居系统采用小区网关、智能网关、应用节点三层架构是合理的。小区网关提供Internet接入,可以使用PC机、手机、PAD的各种设备从Internet上接入到智能网关提供的web服务。智能网关和节点之间采用WIFI、Zigbee通信,从而可以控制到各个节电,满足家居的要求。在智能家居发展了一段历程之后,为智能网关制定行业标准可以使得此行业更加规范化,并可以灵活的加入任意厂家的家电、通信设备、家居设备到智能家居系统中来。

 

出处:http://www.cnblogs.com/Colin-Cai/p/8490423.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洛谷 P3391 文艺平衡树

题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 --by洛谷…

JSONObject中optString和getString等的区别

2019独角兽企业重金招聘Python工程师标准>>> 同事在看到我写的解析数据代码后,告诉我optString比getString好用,optString不会抛异常,而getString会抛异常,自己是将信将疑,就说,回去后我查查资料…

Lombok插件安装(IDEA)、配置jar包、使用

点击进入Lombok官网下载Lombok jar包 使用Lombok可能需要注意的地方 (1)当你的IDE是Idea时,要注意你的Idea是支持Lombok的,如果不支持请更换高版本尝试(这里采用2018 3.3)。 (2)在使…

Blazor University (40)JavaScript 互操作 —— 传递 HTML 元素引用

原文链接:https://blazor-university.com/javascript-interop/calling-javascript-from-dotnet/passing-html-element-references/传递 HTML 元素引用源代码[1]在编写 Blazor 应用程序时,不鼓励对文档对象模型 (DOM) 进行操作,因为它可能会干…

RabbitMQ+PHP 教程六(RPC)

(using php-amqplib) 前提必读 本教程假设RabbitMQ是安装在标准端口上运行(5672)。如果您使用不同的主机、端口或凭据,则连接设置需要调整。 如果您在本教程中遇到困难,可以通过邮件列表与我们联系。 开始 在第二个教程中&#xf…

TKMybatis 介绍和使用

目录 一、什么是 TKMybatis 二、TKMybatis 使用 2.1 Springboot 项目中加入依赖 2.2 使用讲解 2.2.1 实体类中使用 2.2.2 dao中使用 2.2.3 Service 层中使用 2.3 实际案例 2.3.1 dao 层使用 2.3.2 service 层使用 一、什么是 TKMybatis TKMybatis 是基于 Mybatis 框…

WinForm(三)揭开可视化控件的面纱

WinForm所见即所得的UI设计框架,开发效率确实有所提升,同时降低了编程门槛,让WinForm更普及。拖拖拽拽就能设计出一个界面,那么我们拖拽的这些东西是什么?它们是什么原理?。WinForm我觉得很好的一点是&…

RestTemplate 详解

在项目中,当我们需要远程调用一个 HTTP 接口时,我们经常会用到 RestTemplate 这个类。这个类是 Spring 框架提供的一个工具类。Spring 官网对它的介绍如下: RestTemplate: The original Spring REST client with a synchronous, template met…

初识Spark2.0之Spark SQL

内存计算平台Spark在今年6月份的时候正式发布了spark2.0,相比上一版本的spark1.6版本,在内存优化,数据组织,流计算等方面都做出了较大的改变,同时更加注重基于DataFrame数据组织的MLlib,更加注重机器学习整…

ABP详细教程——模块类

概述模块化是ABP vNext的最大亮点,也是ABP vNext框架的核心,而模块类是ABP vNext框架模块化的核心要素。这一章节,我就从模块类的用法、运行机制、源代码等层面,带大家详细了解ABP vNext的模块类。用法在ABP的约定中,每…

[转]Eureka工作原理

目录 Eureka 工作原理 Eureka 核心概念 自我保护机制 Eureka 集群原理 Eurka 工作流程 总结 Eureka 工作原理 上节内容为大家介绍了,注册中心 Eureka 产品的使用,以及如何利用 Eureka 搭建单台和集群的注册中心。这节课我们来继续学习 Eureka&…

重谈联想5G编码投票事件

此前,司马南谈了联想好几个问题,其中最尖锐的要属国有资产流失,这是联想管理层无法回避的死穴。不过,司马南批判联想5G投票背刺H公司,这基本就是造谣了。当年,媒体把编码投票炒作的很厉害,抨击联…

JStorm2.1.1集群的安装和使用

为什么80%的码农都做不了架构师?>>> JStorm2.1.1集群的安装和使用 Storm是一个免费开源、分布式、高容错的实时计算系统,而JStorm是阿里巴巴开源的基于Storm采用Java重写的一套分布式实时流计算框架,在性能和支持的集群规模上做了…

Hystrix 原理

Hystrix是什么? Hystrix是Netflix开源库,这是一个针对分布式系统的延迟和容错库。 Hystrix 供分布式系统使用,提供延迟和容错功能,隔离远程系统、访问和第三方程序库的访问点,防止级联失败,保证复杂的分布…

「深度」无人机实名制政策特稿|市场看好、资本关注,“反黑飞”正在崛起

从政策和需求来看,“反黑飞”越来越重要,市场也正在不断崛起。 对于大多数人来说,今天是最适合明目张胆“装嫩”的六一儿童节。不过,在无人机厂商和无人机玩家的眼里,今天是无人机实名制政策正式实施的日子。 近年来&…

在navicat中新建数据库

前言: 在本地新建一个名为editor的数据库; 过程: 1.; 2.选择:utf8mb4 -- UTF-8 Unicode字符集,原因在于:utf8mb4兼容utf8,且比utf8能表示更多的字符。,而且它支持表情符号…

MASA Stack 第三期社区例会

MASA Blazor 0.5.0发版内容功能Autocomplete:支持通过设置AutoSelectFirst参数开启自动选择第一项的功能,支持CacheItems参数,增强使用上下键的用户体验。BottomNavigation::一个替代侧边栏的新组件。它主要用于移动应…

[转]高并发架构设计之--「服务降级」、「服务限流」与「服务熔断」

目录 服务降级 1 、简介 2 、使用场景 3 、核心设计 3.1 分布式开关 3.2 自动降级分类 3.3 配置中心 3.4 处理策略 3.5 降级分类 3.6 服务降级要考虑的问题 4 、高级特性 4.1 分级降级 4.2 降级权值 5 、总结与展望 服务限流 一、为什么要做服务限流设计&…

SpringBoot获取ApplicationContext

2019独角兽企业重金招聘Python工程师标准>>> 有两种方法: 创建Component实现ApplicationContextAware接口,SpringBoot会自动调用这个类的setApplicationConext()方法。鼓励使用这种方式。SpringApplication.run(MyApplication.class, args)这…

SkiaSharp 之 WPF 自绘 投篮小游戏(案例版)

此案例主要是针对光线投影法碰撞检测功能的示例,顺便做成了一个小游戏,很简单,但是,效果却很不错。投篮小游戏规则,点击投篮目标点,就会有一个球沿着相关抛物线,然后,判断是否进入篮…