【《基于Home Assistant的智能家居控制系统设计》13000字(论文)】_第1页
【《基于Home Assistant的智能家居控制系统设计》13000字(论文)】_第2页
【《基于Home Assistant的智能家居控制系统设计》13000字(论文)】_第3页
【《基于Home Assistant的智能家居控制系统设计》13000字(论文)】_第4页
【《基于Home Assistant的智能家居控制系统设计》13000字(论文)】_第5页
已阅读5页,还剩28页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于HomeAssistant的智能家居控制系统设计目录目录 i摘要 ii第一章绪论 61.1选题背景与意义 61.2存在的问题 61.3国内外研究进展 61.4主要工作与章节安排 7第二章智能家居控制和HomeAssistant简介 82.1智能家居简介 82.1.1智能家居的系统模块 82.1.2智能家居的特点及优势 92.2HomeAssistant概述 92.2.1HomeAssistant的底层逻辑 92.2.2HomeAssistant的相关功能 10第三章智能家居相关协议简介 113.1无线通信协议介绍 113.1.1ZigBee技术 113.1.2红外技术 113.1.3Wi-Fi技术 123.1.4蓝牙技术 123.2智能家居生态介绍 123.2.1Homekit 123.2.2Aqara(绿米) 133.2.3米家 143.2.4Homeassistant 15第四章系统设计与实现 164.1离家归家技术 164.1.1无线技术 164.2离家回家场景识别方案 174.2.1回家模式 174.2.2离家模式 184.3基于不同平台间设备的互联与互通 184.3.1多模网关 184.4底层系统的搭建与配置 194.4.1HomeAssistant系统环境的安装 194.4.2集成组建的安装 204.4.3蓝牙设备的接入 204.4.4添加语音模块 214.4.5脚本设计与实现 214.4.6使用手机APP和公网IP地址控制系统 224.5自动化场景设计与实现 224.6功能测试 254.7场景测试 25结论 28参考文献 30附录 31

摘要智能家居给人们的生活增添无限地舒适度、安全感及幸福感,使家庭时刻保持与外界进行信息交流。智能家居的普及对建设智慧城市、智慧医疗等可持续发展战略起着催化作用。然而智能家居存在着不可忽略的问题,如智能家居物联网安全被忽视,易造成家庭隐私泄露;设计标准与协议没达成统一,出现设备不兼容的现象,系统增加设备及维护困难,造成成本偏高;基于HomeAssistant智能家居系统接入不同品牌不同协议的智能设备,解决离家归家技术的检测系统。关键词:物联网;智能家居;aqara;引言近年来,智能家居系统的便利性和人性化已成为每个人每天讨论的热门话题之一。智能家居系统的运行与复杂的编程环节和整个过程的复杂逻辑紧密相关。必须有一组详细的逻辑和严格的自动化控制触点。在当前智能家居系统科学研究的地理环境中,世界各国都有多家技术公司长期应用智能家居系统。他们使用其智能家居系统产品来分析和实施操纵智能产品的交互,从而减少了人力。该元素的运作过程有益于每个人回到一定水平后的休息和工作,也可以帮助每个人拥有健康的生活方式。智能家居系统的智能产品之间的互连是按数量连接的。因此,选择具有可靠逻辑和简单操作流程是智能家居系统运行的先决条件。本文将详细从4个方面详细的介绍离家归家检测系统:1.智能家居设备的传输协议;2.离家归家系统的技术实现;3.智能家居系统底层搭建4.智能场景设计与实现。绪论选题背景与意义智能家居作为与人们日常生活息息相关的科技智能产物。意在服务于我们的生活,为我们的生活带来舒适便利,给我们的生活带来更大的使用价值,而这也是传统家居所难以满足的。智能家居把与家居生活相关的各设施,包括照明系统、音视频设备、窗帘控制、家电控制、安防系统、数字影院系统等,通过物联网技术连接在一起,能为用户提供科学、健康、安全、舒适、便捷、宜人的家居环境。本课题基于HomeAssistant系统设计了一套智能家居控制系统。利用蓝牙、ZigBee和Wi-Fi技术,实现了将不同平台下的智能家居硬件深度整合,同时针对不同场景做到了自动化功能实现,实现了在不同终端下的无差别控制与管理。存在的问题目前智能家居主要分为ZigBee,WI-FI,蓝牙三种通讯协议。市面上家居平台众多,各自平台都有相对应的app管理软件,或者不同协议的智能家居设备无法兼容至同一平台下。造成了选择智能家居设备时候需要选择其中一家设备进行家庭智能化的部署,没办法做到设备多元化,用户无法多单元选择情况。主要工作与章节安排论文共分为五个章节,其中各章节主要内容如下:第一章:介绍智能家居的发展与普通家用设备优越性,阐述了目前智能家居市场的现状。总结了智能现下所面临的问题。第二章:介绍智能家居系统的控制。HomeAssistant智能家居平台的优越性与相关强大的底层功能。第三章:阐述目前智能家居的通讯协议以及智能家居市场常见的几种生态。第四章:介绍了智能家居通过HomeAssistant的接入,自动化场景设计与实现方式。第五章:通过对本文设计的系统进行了功能测试和性能测试,进一步验证了系统的稳定性和可靠性。最后总结智能家居设计思路的实验结论,归纳该系统的特点。智能家居控制和HomeAssistant简介智能家居简介智能家居系统是基于物联网技术,互联网技术以及云端控制,借助各种智能化的硬件,实现的一种以以人为本的交互理念的智能化生活体验。其以住宅为平台安装有智能家居系统,实现家庭生活更加安全,节能,智能,便利和舒适。以住宅为平台,利用综合布线技术、网络通信技术、智能家居-系统设计方案安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。智能家居系统可以让用户轻松享受生活。出门在外,用户可以通过电话、电脑来远程遥控您的家居各智能系统,例如在回家的路上提前打开家中的空调和热水器;到家开门时,借助门磁或红外传感器,系统会自动打开过道灯,同时打开电子门锁,安防撤防,开启家中的照明灯具和窗帘迎接用户的归来;回到家里,使用遥控器用户可以方便地控制房间内各种电器设备,可以通过智能化照明系统选择预设的灯光场景,读书时营造书房舒适的安静;卧室里营造浪漫的灯光氛围等。智能家居的系统模块设备目前市场智能家居设备通讯协议一般分为ZigBee,红外射频,Wi-Fi与蓝牙技术。设备种类非常丰富如:智能变色调温LED灯,无线门窗传感器,人体红外传感器,智能插装等等。网关目前这些智能家居设备是通过两种网关、三种方式互联的。两种网关是蓝牙网关、基于ZigBee物联网网关,三种连接方式是蓝牙连接、ZigBee连接、Wi-Fi连接(无需网关)。网关其实是个桥梁,既能连接WIFI网络,又能自己组网连接家里其它智能设备,而且还有很多优点。ZigBee网关可以脱离于家里宽带网络而存在,哪怕路由器故障。预设的自动化关联操作和警报都不受影响(比如温湿度传感器检测房屋较干联动打开加湿器)。ZigBee网关和蓝牙网关特别省电,子设备可以做得很小不用插电,电池就能搞定。ZigBee通过中继可以非常方便地将网络覆盖范围扩展至数十倍高,传输距离更远。WI-FI的优势是应用广泛,已经普及到千家万户。ZigBee的优势是低功耗和自组网;蓝牙的优势组网简单。然而,这三种技术,也存在各自的优点和不足,没有一种技术能完全满足智能家居的全部要求。智能家居系统智能家居系统目前众多如小米的米家、苹果的家庭等,但是设备接入品牌单一,无法做到用户自我选择。因此本论文选择开源开放式的智能家居系统HomeAssistant.智能家居的特点及优势智能家居的特点是人和智能家居设备能够“互联、互通、互动”,即智能家具设备能够通过人的语言或操作,借助于大数据、云计算、人工智能等技术实现与人之间的沟通和交流。智能家居主要有以下三大优点。节能,智能家居系统通过对空调,灯光等设备的管理,能够有效的控制家庭电源,在不使用电器时便会及时关闭,减少家庭用电量。高效生活,如果让你一次关闭5个开关,你肯定很难做到。有了智能家居系统,你只需按下。远程控制,智能家居主要是由一个智能系统来控制所有可控制的智能产品,可以远程控制。HomeAssistant概述HomeAssistant是构建智慧空间的神器。是一个成熟完整的基于Python的智能家居系统,设备支持度高,支持自动化(Automation)、群组化(Group)、UI客制化(Theme)等等高度定制化设置。同样实现设备的Siri控制。基于HomeAssistant,可以方便地连接各种外部设备(智能设备、摄像头、邮件、短消息、云服务等,成熟的可连接组件有近千种),手动或按照自己的需求自动化地联动这些外部设备,构建随心所欲的智慧空间。HomeAssistant是开源的,它不属于任何商业公司,用户可以无偿使用。HomeAssistant的底层逻辑HomeAssistant主要由三部分构成:1.operatingsystem提供了运行supervisor和核心的最小Linux环境。2.Supervisor管理操作系统。3.Core与用户、主管和物联网设备及服务进行交互。HomeAssistant架构图2.2.1图2.2.1HomeAssistant架构Supervisor允许用户从家庭助理管理家庭助理的安装。Supervisor有以下职责:运行家庭助理核心更新家庭助理核心。如果更新失败,会自动回滚。进行备份和恢复备份附加组件统一音频系统更新家庭助理操作系统(在监督安装中禁用)HassIO结构图2.2.2图2.2.2HassIO结构图HomeAssistant的相关功能HomeAssistant开源的特性拥有大量的开发者进行维护,HomeAssistant拥有丰富的集成接口与自动化编写软件。也可以通过第三方软件进行集成接入配置自动化如:esphome可以进行对esp单机片的在线编程烧写;nodered可以配置自动化的工作流等等。本文就是通过HomeAssistant开源特性进行对智能家居设备的二次开发接入与自动化场景脚本的编写。智能家居相关协议简介无线通信协议介绍ZigBee技术ZigBee是一种新型的无线通信技术,适用于传输领域中短数据信息的低传输速度的一系列电子部件,机械设备。ZigBee无线通信技术允许无数的微型传感器通过专业的无线通信标准相互通信。因此,该技术通常称为HomeRFLite无线网络技术和FireFly无线网络技术。ZigBee无线通信技术还可以用于基于无线通信控制和自动化技术的小规模行业,它可以节省计算机设备,一系列数据设备和彼此之间的有线电视电缆,还可以完成各种不同的数据设备相互的无线网络允许他们彼此通信或连接到Internet。ZigBee技术本质上是一种低速双wifi网络技术,它是由IEEE.802.15.4无线网络标准开发和设计的,具有低复杂度,短路,低成本和低功耗的优点。它使用2.4gHz频段。该标准定义了ZigBee技术适用于IEEE.802.15.4标准新闻媒体的业务系统。ZigBee联盟的主要发展前景是创建一个基于互操作性服务平台及其环境变量的基本架构,并具有低成本和可扩展的嵌入式优势。建立物联网开发服务平台,有利于科研成果转化和产学研结合。这是完成IoT技术的简便方法。树莓派通过安装ZigBEE2mqtt系统依赖,从硬件(适配器)开始并向上移动;zigbee-herdsman连接到您的Zigbee适配器,并使API可用于更高级别的堆栈。对于例如德州仪器(TI)的硬件,zigbee-herdsman使用TIzStack监视和测试API与适配器进行通信。Zigbee-herdsman处理Zigbee核心通信。zigbee-herdsman-converters模块处理从单个设备模型到其支持的Zigbee集群的映射。Zigbee集群是基本协议之上的Zigbee协议层,它定义了诸如灯,传感器和开关如何通过Zigbee网络相互通信等内容。最后,Zigbee2MQTT模块驱动zigbee-herdsman并将zigbee消息映射到MQTT消息。Zigbee2MQTT还跟踪系统状态。它使用database.db文件来存储此状态。具有连接设备及其功能的JSON数据库的文本文件。红外技术红外技术的产品有方向性,发射器必须对准接收器,并且中间不能有阻挡物。距离一般不超过7米、不受电磁干扰,红外类产品的优势是产品成本低、价格便宜。采用射频技术的产品是用无线电波来传送控制信号的,它的特点没有方向性,可以不“面对面”控制、距离远,可达数十米。发射器和接收器之间只要没有能起屏蔽作用的金属阻挡物,就可正常使用。射频技术的产品成本通常要高一些,但其无方向性,使用更方便,所以更受用户的欢迎。在智能家居的应用场景中,红外技术通常被用来使用制作红外传感器,来检测人体的移动。Wi-Fi技术WI-FI模块是所有系统软件的监视中心。操作非常简单。它输出电源​​开关数据信号以控制继电器。该模块的关键是WI-FI连接。当手机连接到WI-FI时,需要使用扫描仪,输入付款密码,并且这种硬件配置机器设备没有显示屏和计算机键盘本身,如果要方便地连接到WI-FIInternet,则必须有一个更方便,有效的连接方案。这是该模块制造商的关键任务。在其中,因此为此类模块指定了类似的连接计划,即在手机上安装APP扫描器WI-FI,在APP上输入与WI-FI匹配的连接登录密码,然后将其自动发送到模块从APP执行的模块和WI-FI的连接本质上是相同的,但名称不同。有的被称为SimpleLink,有的被称为EasyLink,两者之间没有太大的区别。蓝牙技术蓝牙技术相较于前者则是一种折中的选择,因为它不仅功耗低、相应速度快,而且它和Wi-Fi一样,手机中都会自带蓝牙协议,因此使用起来也非常方便。但是蓝牙技术的穿墙能力弱,很有可能在房间里的就无法操控客厅的智能产品。智能家居生态介绍HomekitHomeKit,是苹果2014年发布的智能家居平台。有很多家居产品的制造商都在支持HomeKit,本次苹果打造了HomeKit的框架,成为了一个应用,当打开后,可以可视化的了解到家中的家居状态,可以单独控制家中的智能设备,同时也可以利用Siri对智能设备进行控制,比如对Siri说晚安,Siri就可以关闭你家的智能灯,锁上你家中的智能门,用户也可以根据自己的习惯对情景进行个性化的定制。借助HomeKit,用户可以使用iOS设备控制家里所有标有“WorkswithAppleHomeKit”(兼容AppleHomeKit)的配件。这些配件包括灯、锁、恒温器、智能插头及其他配件。将配件与iOS设备配对后,您可以通过Siri命令控制配件。比如说:“开灯”或“关灯”。“把灯光调暗”或“把电灯亮度设到50%”。“把温度设定为20度。”“打开咖啡机。”HomeKit的设备接入模式与米家类似,其优点在于在于IOS系统封闭性带来的联动效果,只需要扫描二维码或输入6位验证码即可。HomeAssistant与HomeKit的相连通过HassBrige桥接方式相连。实现方式如图3.2.1:图3.2.1HomeBrige桥接Aqara(绿米)Aqara是绿米发行的著名的全屋智能品牌。中文讨论的设备传输协议是ZigBee。ZigBee堆栈基本上是在IEEE802.15.4规范中创建的,该规范定义了协议的MAC和PHY层。ZigBee设备应包括IEEE802.15.4(规范定义了RF频率及其与相邻设备的通信)的PHY和MAC层,以及其ZigBee堆栈层:传输层(NWK),网络层和安全服务提供者层。端点之间的通信是根据称为簇的算法进行设计的。这种集群是一种船只,它使用在目标之间共享资源信息内容所需的所有特征。在模板中定义了唯一应用程序中使用的群集。每个套接字都可以接受(用于输入)或推送(用于输出)群集文件格式的数据信息。有两个唯一的终结点,分别是终结点0和终结点255。终结点0用于所有ZigBee设备的供应和管理方法。应用软件可以根据端点0与ZigBee堆栈的其他层进行通信,然后完成该层的重置和提供。附加到端点0的目标称为ZigBee设备目标(ZD0)。端点255用于向所有端点广播节目。端点241至254是保存端点。所有端点都使用适用的子层(APS)提供的服务。APS根据传输层和安全服务提供者层连接到端点,并提供用于数据信息传输,安全性和关联性的服务,因此它可以与不同但兼容的设备兼容,例如带灯的电源开关。流程如图3.2.2图3.2.2对接流程图米家米家(MIJIA)是小米旗下智能家庭品牌,由小米公司创始人雷军于2016年3月29日在北京发布。米家是小米的生态链,功能主要是生产生活用品和智能硬件。可通过小米手机中米家app进行远程操控。不管是米家还是选用的智能家居系统,其中对于智能设备中通讯协议解决方案大相径庭。其中米家不同的一点会将数据通过多模网关形式转发自有服务器,米家核心的数据及交互逻辑都存储服务器中。对于米家不支持的产品设备将无法接入,米家的自动化场景也是入门级别无法满足生活的特别场景。米家自动化图3.2.3。图3.2.3米家自动化图系统设计与实现离家归家的检测技术主要服务于智能场景联动,家庭安全警戒等几个方面,本章节将通过两大方面进行阐述离家归家检测技术。离家归家技术本小节将从离家归家检测的三大方面详细的总结每种方案实现原理及优缺点。无线技术1.wifi5G时代的到来,让万物互联得到了希望。现在社会基本每家每户都拥有wifi。通过wifi连接设备的mac可以获取设备的连接状态是否在线。基于这一点将用户设备联网状态作为离家归家的重要信息的一部分。基于HomeAssistant系统api可以获取用户手机连接wifi的ssid,通过比对ssid进行判定用户离家归家状态,具体流程如图3.1.1HomeAssistantHomeAssistantPhonessid判断离家归家图4.1.1wifi技术检测流程图优点:wifi较为普遍,无需用户新增设备即可展开检测。Wifi信号覆盖家中范围数据较为准确。缺点:用户特定性较强,仅支持接入HomeAssistant系统手机设备。2.蓝牙蓝牙技术的出现带来了前期手机文件可以无线传输的便捷性。蓝牙通过搜寻附件蓝牙设备可以进行扫描,连接。每一台设备蓝牙都拥有独特的信标信息。基于这点将蓝牙设备是否能够扫描用户手机蓝牙设备作为离家归家技术点之一。蓝牙网关定时扫描周围设备,当用户手机蓝牙设备存在范围内,通过HomeAssistant的api进行比对信息用于判断用户离家归家状态,具体流程3.1.2图3.1.2蓝牙技术检测流程图优点:功耗低,扫描速度快缺点:用户特定性较强,仅支持接入HomeAssistant系统手机设备。语音助手技术语音助手已经非常的常见,如小米的小爱同学、百度的小度、苹果的siri助手。语音助手应用场景非常广泛,在车机中嵌入Ai语音助手大大减少行车过程中的安全性操作。比如打开车内空调、调节副驾驶座椅、打开导航等应用场景。在智能家居中语音助手的出现也可以让智能设备更加贴心。天猫精灵是基于阿里巴巴人工智能实验室,猫精灵加入了“决策引擎”机制,能够理解语音的上下文语境,并判断当前应该响应的是哪一个模块,进行决策。天猫精灵知识领域如图4.3.1图4.3.1天猫精灵知识领域引擎架构化繁为简,对话引擎只包含三个部分:对话总控(DM)、语言理解(NLU)与技能执行(SkillExecute)。先作简单介绍,下文会有扩展。1.对话总控对话总控是整个对话引擎的控制中心,对话链路的必经之地,也是对话管理的中枢,具体负责对话管理、上下文管理、链路调度等功能。2.语言理解语言理解(NLU)做的事情更为明确,就是将用户的自然语料输入转换为结构化的数据。对话引擎当前采用DIS的表示结构,D代表Domain,I代表Intent,S代表Slot,此处的slot对应上文中的IntentParameter。3.技能执行在完成NLU理解之后,对话总控会根据NLU结果以及一定的规则命中相应的skill,并将Intent、Slot等信息以参数形式传递给技能。技能执行根据参数与上下文做技能决策,生成文本回复或者端上可执行指令返回。语音引擎架构图4.3.2图4.3.2语音助手引擎架构图离家回家场景识别方案回家模式理想的回家场景是:1.回家场景A配合苹果的位置检测,在归家的时候手机提醒是否开启回家模式。如果开启,则检测家里温度,低于设定值就开启空调,如果家里有人,则维持空调不变。如果家里没人,走进家门,开门,人体感应器感应到人,入户花园灯亮,窗帘自动打开。走进客厅,入户花园如果检测不到人,灯灭,监控关闭。客厅人体感应器感应到人,如果晚上则自动开灯,白天不做操作。联动设备:GPS,小米温湿度传感器、多模网关,aqara/米家/yeelight/飞利浦智能吸顶灯/灯泡,空调伴侣,小米电动窗帘,人体传感器。2.回家场景B配合wifi的检查,在用户归家时候将提示是否开启回家模式。如果开启则检查家中温度,低于设定值开启空调。检查时间和亮度值如夜晚则开启热水器,并调到合适温度。入户廊灯开启。联动设备Wifi,空调伴侣,模网关,aqara/米家/yeelight/飞利浦智能吸顶灯/灯泡,智能热水器。技术难点:不同厂家设备的通讯协议不同如小米温湿度传感器以蓝牙通讯协议,yeelight灯以wifi通讯协议,人体传感器以zigbee通讯协议。基于不同协议不同厂家目前许多智能家居系统无法统一接入,下文将详细介绍不同协议设备的接入以及互联互通。离家模式离家场景是:1.回家场景A配合苹果的位置检测,在离家的时候手机提醒是否开启离家模式,则检测设备开启状态,如检测空调开启状态,开启时则关闭。灯如开启则关。启动扫地机器人进行全屋清理工作。通过检测天气与亮度值,打开窗帘与窗户进行通风联动设备GPS,小米温湿度传感器、多模网关,aqara/米家/yeelight/飞利浦智能吸顶灯/灯泡,空调伴侣,小米电动窗帘,人体传感器。全屋智能家居应用场景智能家居安装人群主要关注:灯光控制,家电控制,智能安防,家庭影音,环境感知,节能控制等。入户门位置需要设备:智能门锁、智能门磁、智能开关、智能摄像头、红外移动探测。实现功能:实现指纹开锁,能够做到一键场景控制,从一进门开启预设好的情景模式,按照男女主人的生活习惯进行设定。智能门磁与红外探测主要是主人离家的时候开始工作,启动离家模式智能门磁与红外移动探测开始布防状态,开启摄像头实时监测入侵情况。客厅位置需要设备:智能家居控制系统、智能开关、智能插座、智能电动窗帘、智能摄像机、温湿度传感器、背景音乐系统、场景开关面板。实现功能:可通过本地或远程控制灯光的开关,还可以配合电器、窗帘等进行情景联动控制。一键看电视,一键看电影等多种情景控制,根据客厅环境变化自动调节空调、联动电动窗帘的开合,温湿度传感器感知室内的温湿度情况,判断是否需要打开或关闭加湿器。窗帘根据光线情况自动开启关闭,背景音乐可配合情景随心控制。卧室位置需要设备:电器控制(电视、空调等设备)、智能开关、场景面板、智能窗帘、红外探测(人来灯亮、人走灯灭)、温湿度传感器。实现功能:晨起自动播放舒缓的音乐,窗帘缓缓拉开,播放舒缓音乐,唤醒主人起床。晚间启动阅读模式,主灯关闭,床头灯开启来阅读一本喜爱的书。卫浴间位置需要设备人体红外探测器、漏水传感器、智能开关。实现功能:灯光与排风扇实现自动化控制,自动感应人的存在,联动开启灯光与关闭灯光,同时水位传感器自动检测浸水状态,如果发现漏水情况自动推送报警信息,同时关闭阀门。餐厅厨房位置需要设备:智能开关、水位传感器、烟雾传感器、燃气传感器。实现功能:餐厅与厨房都是家庭中非常重要的位置,可进行场景模式控制,如背景音乐与灯光可以加入聚会模式、晚餐模式等,来调节生活的气氛。厨房的安全非常重要,烟雾传感器与燃气传感器可实时监测环境状态,意外发生可及时预警,发出声光报警信息推送通知主人。阳台位置需要设备:智能开关、水位传感器、烟雾传感器、燃气传感器。实现功能:餐厅与厨房都是家庭中非常重要的位置,可进行场景模式控制,如背景音乐与灯光可以加入聚会模式、晚餐模式等,来调节生活的气氛。厨房的安全非常重要,烟雾传感器与燃气传感器可实时监测环境状态,意外发生可及时预警,发出声光报警信息推送通知主人。全屋效果图4.4.1图4.4.1全屋效果图基于不同平台间设备的互联与互通多模网关本文基于Aqaram1s网关来进行场景设计Aqaram1s是Aqara公司生产的多模网关,它支持不同的通信协议,同样也支持不同的设备生态。米家Aqara以及苹果的Homekit都可以接入到本网关当中。本文通过两个网关来实现不同协议之间的互联互通。本文设计其中一个网关使用苹果的Homekit协议,第二个使用Aqara协议。Homekit协议网关的连接方法。Homekit协议是使用Homekit二维码中的八位数字来追踪确认设备。每一款支持Homekit协议的智能家居设备都有唯一标识符,通过该唯一标识符Homekit可以连接该智能设备。通过这种方法我们可以使用callHomekit协议连接HomeSystem的系统与Homekit协议的智能网关。该协议使用蓝牙技术来进行通信。由于网关没有图形化的操作界面,在没有通过蓝牙协议连接网关和手机之前我们无法使homekit蓝牙网关连接到互联网。基于以上的问题要使得Homekit蓝牙网关与树莓派实现WiFi协议通信,我们需要使用手机作为中间件。首先将手机连接到Homekit网关之上,通过Homekit家庭APP输入8位唯一标识符,按照网关的相关操作连接网关与手机,在手机APP当中删除Homekit网关,以确保Homekit网关仍存在于互联网但不接入Homekit手机设备当中。在Homeassistants操作系统当中安装HomekitControl控制器集成,输入该蓝牙网关的8位唯一标识符实现蓝牙网关与homeassistant通信。通过aqara协议连接网关的方法:由于相关原理同上,本文不再赘述原理。aqara协议使用唯一token。该token是用来通过aqara协议与aqaraAPP实现互联通信的。Homeassistant使用aqara集成来模拟aqara米家手机APP来实现Homeassistant与aqara技术的连接。由于相关的token并不可见,需要借助手机APP来作为中间件获取相关设备的唯一标识符。首先打开米家APP通过米家APP的操作与网关进行连接。通过米家APP中的更多与产品介绍来查看该产品的唯一token。获取到相关token之后在HomeSystem的操作系统中配置configuration。configuration.yaml文件中填入如下配置:xiaomi_aqara:gateways:-mac:key:xxxxxxxxxxxxxxxx至此,通过aqara协议来连接网关已经完成。底层系统的搭建与配置HomeAssistant需要准备安装:RaspberryPi3/4,SD卡。系统通过HomeAssistant官网下载系统,进行烧录。烧录完启动树莓派访问ip:8123就已经完成了。还需要通过商店下载一些软件,如:Sambashare(文件共享),ssh(shell),Fileeditor(文本编辑器),Nodered(自动化工作流)。HomeAssistant系统环境的安装系统安装需要准备树莓派以及sd卡,本文使用树莓派4来进行操作。相较于docker容器,树莓派的兼容性更好且功耗也相对较低,适合长时间作为系统容器来使用。Sd卡起到了系统硬盘的作用,需要存储容量大于32GB。基于国内的网络环境,使用基于国内网络深度优化的hass系统作为HomeAssistant系统来使用。使得后续的开发更加简单。具体操作过程:将sd卡接入计算机,使用烧录工具将操作系统烧录到sd卡当中。由于hass操作系统没有存在GUI的图形化界面,使用命令行操作工具将相应的config文件更改,添加本地Wi-Fi的网络名以及Wi-Fi密码,使得树莓派启动时能够自动接入到本地的Wi-Fi网络。打开浏览器窗口输入本地的localIP地址并输入8123端口号,新建个人用户并登录到HomeSystem的系统当中。集成组建的安装绝大多数情况下在Homeassistant官方集成页面中可以自动化安装相应的集成,但也有一部分集成没有办法通过图形界面的方式来进行安装,这时候需要使用配置文件的方式来对集成进行安装。通常情况下我们需要使用到月亮的情况来对自动化场景有条件的进行触发。例如在月亮出来的时候自动化启用夜晚的场景。添加moon集成以实现相应的目的,具体添加方法如下。通过SSH命令接入到Homeassistant的系统当中,修改configuration文件。#Exampleconfiguration.yamlentrysensor:-platform:moon重新启动HomeAssistant以应用相关的集成。蓝牙设备的接入默认情况下homesystem的系统蓝牙设备并不打开,本文需要构建基于蓝牙音箱的语音控制模块。为实现这样的目标,需要使得树莓派接入到蓝牙当中。官方仅针对于不同的蓝牙音箱设备有不同的集成用以调用,具体实现有诸多不便,例如针对不同的蓝牙品牌有不同的调用方法,使得后续对于设备的更改调试都存在一些困难,本文使用Homeassistants系统设计了相关集成工具,它可以自动化的连接各种支持蓝牙协议的音箱设备,也可以调用3.5耳机接口连接各种不同的有线音响设备。大大的提高了蓝牙音箱接入的兼容性以及方便性。使用终端ssh命令远程连接到树莓派当中。调用configuration文件,添加集成到YAML文件当中。#configuration.yaml样例media_player:-platform:pulseaudioname:xxxxxxsink:alsa_output.1.stereo-fallback在终端打开bluetoothctl,打开自己的蓝牙设备。scanon找到自己蓝牙设备的MAC地址输入到下边代码的mac地址当中。链接蓝牙设备到HomeAssistant。pair<yourmacaddress>trust<yourmacaddress>connect[enteryourMACadd]discoverableonpairableondefault-agent至此,蓝牙音箱连接完成。添加语音模块语音模块需要使用到tts来进行使用,tts的全称是texttospeech,他具体过程的流程图如下:目前世界上主流的TTS服务开放端口为谷歌的TTS服务和国内常用的百度TTS服务。针对于谷歌的tts服务相关的配置方法如下:tts:-platform:google_translatelanguage:'zh-cn'我通过蓝牙集成模块来调用tts服务使得蓝牙音箱可以进行语音播报。脚本设计与实现使用蓝牙音箱来调用自动语音播报是十分方便和快捷的,用户希望通过蓝牙音箱来快速获取到当前所处环境的天气情况与温湿度情况。而编写脚本可以实现相关的功能。脚本是指一段可以自动化更新的文本,它通过第三方API接口来调用相关的服务,使得脚本在每次生成前都能够自动生成当前所需环境使用下的相关的文字,来获取当前时间段所需要的天气情况或者温湿度情况。以下脚本用来调用当前环境下的日落与日出时间:下一次太阳的升起(降落)时间:{%ifis_state("sun.sun","above_horizon")-%}太阳下山时间:{{as_timestamp(strptime(state_attr("sun.sun","next_setting"),""))|timestamp_local}}{%-else-%}太阳升起时间:{{as_timestamp(strptime(state_attr("sun.sun","next_rising"),""))|timestamp_local}}{%-endif%}以下脚本用来实现播报当前环境下的温度情况:service:tts.baidu_saydata:entity_id:allmessage:当前室外温度{{state_attr('weather.wo_de_jia','temperature')}}摄氏度使用手机APP和公网IP地址控制系统Homeassistant的手机APP可以更加方便地使用户在不同的环境和场景下调用和控制Homeassistant系统中的集成以及相关的功能,手机APP的连接方法较为简单用户只需要在手机应用市场找到并下载Homeassistant填入自己的IP即可使用。利用手机app,homeassistant同样也可以通过手机GPS调用用户所在位置。你们了为自动化场景的调用条件添加了可能性。本文使用阿里云ECS来搭建远程ip地址服务器。在supervisor中添加tunnel2local的add-on方法。在远程ECS设备上安装FPR服务,配置FRPS服务,并设置FRP自启动同时开放云服务器的端口。修改Homeassistanttooltolocal中的配置文件添加云服务的公网IP地址,并配置相应的token选择模式为TCP连接模式。远程通过阿里云ECS公网IP地址及相应的端口即可远程访问Homeassistant系统。自动化场景设计与实现本文主要设计以下两个场景,通过ZigBee无线门窗传感器与ZigBee无线人体红外传感器判断家庭成员回家与离家状态。设计场景逻辑如下:第三章节总结了现有离家归家设备检测技术实现方式优缺点,第四章节介绍不同设备的互联技术。通过前两章节的总结,本小节将通过实际场景架构进行设计与测试。1.测试所需硬件如下A.树莓派4b+B.Aqaram1s网关C.人体传感器D.门窗传感器E.智能变色调温LED灯泡F.手机2.测试环境:HomeAssistant系统3.基于wifi设计场景如下:基于wifi,人体红外传感器与门窗传感器,当配置编写的自动化脚本检测到回家状态,自动打开智能变色调温LED灯泡。并调节亮度与色温。流程图如下4.3.1图4.3.1回家流程图基于wifi,人体红外传感器与门窗传感器,当配置编写的自动化脚本检测到回家状态,自动关闭智能变色调温LED灯泡。图4.3.2离家流程图通过网关接入设备,linux监听网关数据流通过mqtt服务以json形式转发HomeAssistant。HomeAssistant经过与mqtt握手数据后保存到系统自身数据服务中(文件名home-assistant_v2.db)。自动化编辑配置yaml,自动调用设备服务,并通过脚本设置后续动作达到自动化联动的效果。逻辑图如下4.3.3图4.3.3数据逻辑图功能测试测试1:ZigBee无线门窗传感器的检测状态是否正常。状态如图5.1.1图5.1.1无线门窗传感器状态测试2:ZigBee无线人体红外传感器的检测状态是否正常。状态如图5.1.2图5.1.2无线人体红外传感器状态测试3:智能变色调温LED灯泡通过homeassistant是否可以打开关闭或调温与亮度。控制界面如图5.1.3图5.1.3智能变色调温LED灯泡控制界面场景测试离家模式监测1. 当配置编写的自动化脚本检测到离家状态,自动关闭智能变色调温LED灯泡。流程如下:手机WiFi断开状态——门传传感器开——人体红外检测有人——关闭LED灯泡利用HomeAssistant的yaml文件进行场景设置,其中trigger:监听动作状态如首先人体红外传感器binary_sensor.motion_sensor被触发时,然后门窗传感器binary_sensor.contact_sensor服务被开启时,执行action:后续动作。-id:'1620092462749'alias:离家description:人体》门窗》关灯trigger://监听-type:motionplatform:devicedevice_id:954ca6322f004356cad0c7aabce28179entity_id:binary_sensor.motion_sensordomain:binary_sensor-type:openedplatform:devicedevice_id:e9b4ae05a2fc2fecdcac24758c9abea6entity_id:binary_sensor.contact_sensordomain:binary_sensorcondition:[]action://执行动作-type:turn_offdevice_id:1aec2710b9b5388990b7992d61156e0eentity_id:light.aqara_hub_m1s_9adcdomain:lightmode:single归家模式监测1.当配置编写的自动化脚本检测到回家状态,自动打开智能变色调温LED灯泡。并调节亮度与色温。流程如下:人体红外检测有人——门窗传感器开——手机WiFi接入状态——打开LED灯泡——调整亮度色温利用HomeAssistant的yaml文件进行场景设置,其中trigger:监听动作状态如首先门窗传感器binary_sensor.contact_sensor服务开启,然后人体红外传感器binary_sensor.motion_sensor被触发时执行action:后续动作。-id:'1620052800832'alias:归家检测description:''trigger:-platform:devicetype:turned_ondevice_id:1aec2710b9b5388990b7992d61156e0eentity_id:light.aqara_hub_m1s_9adcdomain:light-type:motionplatform:devicedevice_id:954ca6322f004356cad0c7aabce28179entity_id:binary_sensor.motion_sensordomain:binary_sensorfor:hours:0minutes:0seconds:1milliseconds:0condition:[]action:-type:brightness_increasedevice_id:1aec2710b9b5388990b7992d61156e0eentity_id:light.aqara_hub_m1s_9adcdomain:light结论通过Homeassistant智能家居系统的底层与python脚本成功的接入aqara协议与HomeKit协议网关。实现了不同协议设备之间的互联互通。智能家居设备接入网关,通过python脚本根据智能设备的ip与mac地址接入Homeassistant。基于yaml配置文件编写的自动化脚本也可以正常执行场景。本文设计了可以通过蓝牙连接智能音箱的相关集成。但是因为设备人体红外与门窗传感器无法精准的识别,后期还需要根据实际场景加入指纹门锁可以精准判断人员的信息进行场景化。参考文献基于物联网技术的智能家居控制系统设计与研究.

郭蓉.

数码世界

.2017基于物联网的智能家居控制系统设计与研究.

申玉宏.

大科技

.2017基于物联网的智能家居控制系统设计研究.

邹国平.

计算机产品与流通

.2017基于物联网的智能家居控制系统设计研究.

杨强.

.2016基于物联网的智能家居控制系统设计研究.

徐智斌.

《华东科技:学术版》

.2015基于物联网技术的智能家居网关系统设计研究.

程全.

物联网技术

.2017基于物联网的新型智能家居控制系统设计研究.

范明中.

科技与创新

.2016基于物联网的新型智能家居控制系统设计研究  .

范明中.

《科技与创新》

.2016基于物联网的智能家居环境监控系统研究与设计.

郭志冬.

信息与电脑(理论版)

.2018基于物联网的智能家居控制系统的设计研究.

张秀国.

数字技术与应用

.2012基于物联网技术的温室大棚智能控制系统设计研究.

胡自强.

电子世界

.2016基于物联网技术的智能家居远程无线监控系统设计研究.

张凡荣.

信息记录材料

.2017基于物联网与云计算的智能家居安全访问控制技术研究.

王艳丽.

电视技术

.2018基于物联网的智能家居控制系统设计  .

王朝玉.

《电子制作》

.2017

附录#人体传感器与门窗传感器部分接入控制python代码classXiaomiBinarySensor(XiaomiEntity,BinarySensorEntity):@propertydefis_on(self):returnself._state@propertydefdevice_class(self):returnDEVICE_CLASS.get(self.attr,self.attr)defupdate(self,data:dict=None):ifself.attrindata:custom=self.hass.data[DATA_CUSTOMIZE].get(self.entity_id)ifnotcustom.get(CONF_INVERT_STATE):#gasandsmoke=>1and2self._state=bool(data[self.attr])else:self._state=notdata[self.attr]self.schedule_update_ha_state()KETTLE={0:'idle',1:'heat',2:'cool_down',3:'warm_up',}classXiaomiKettleSensor(XiaomiBinarySensor):defupdate(self,data:dict=None):ifself.attrindata:value=data[self.attr]self._state=bool(value)self._attrs['action_id']=valueself._attrs['action']=KETTLE[value]self.schedule_update_ha_state()classXiaomiMotionSensor(XiaomiBinarySensor):_default_delay=None_last_on=0_last_off=0_timeout_pos=0_unsub_set_no_motion=Noneasyncdefasync_added_to_hass(self):#oldversionself._default_delay=self.device.get(CONF_OCCUPANCY_TIMEOUT,90)custom:dict=self.hass.data[DATA_CUSTOMIZE].get(self.entity_id)custom.setdefault(CONF_OCCUPANCY_TIMEOUT,self._default_delay)awaitsuper().async_added_to_hass()#智能调温LED灯泡部分接入控制python代码classXiaomiMeshLight(XiaomiEntity,LightEntity):_brightness=None_max_brightness=65535_color_temp=None_min_mireds=int(1000000/6500)_max_mireds=int(1000000/2700)@propertydefshould_poll(self)->bool:returnFalse@propertydefis_on(self)->bool:returnself._state@propertydefbrightness(self):"""Returnthebrightnessofthislightbetween0..255."""returnself._brightness@propertydefcolor_temp(self):returnself._color_temp@propertydefmin_mireds(self):returnself._min_mireds@propertydefmax_mireds(self):returnself._max_mireds@propertydefsupported_features(self):returnSUPPORT_BRIGHTNESS|SUPPORT_COLOR_TEM#PulseAudio蓝牙音箱连接集成python代码"""SupportforPulseAudiospeakers(sinks)"""importvoluptuousasvolimportloggingfromponents.media_player.constimport(SUPPORT_PLAY_MEDIA,SUPPORT_STOP,SUPPORT_VOLUME_SET,MEDIA_TYPE_MUSIC)fromponents.media_playerimport(MediaPlayerEntity,PLATFORM_SCHEMA)fromhomeassistant.constimport(CONF_NAME,STATE_IDLE,STATE_PLAYING)importhomeassistant.helpers.config_validationascvfromponents.ffmpegimportDATA_FFMPEGfrom.ffmpeg2paimportAudioPlayfrom.constimport(DOMAIN,CONF_SINK,DEFAULT_NAME,DEFAULT_SINK,)SUPPORT_PULSEAUDIO=(SUPPORT_PLAY_MEDIA|SUPPORT_STOP|SUPPORT_VOLUME_SET)PLATFORM_SCHEMA=PLATFORM_SCHEMA.extend({vol.Optional(CONF_NAME,default=DEFAULT_NAME):cv.string,vol.Optional(CONF_SINK,default=DEFAULT_SINK):cv.string,})_LOGGER=logging.getLogger(__name__)asyncdefasync_setup_platform(hass,config,async_add_entities,discovery_info=None):"""SetupthePulseAudioSpeakerplatform."""name=config.get(CONF_NAME)sink=config.get(CONF_SINK)async_add_entities([PulseAudioSpeaker(hass,name,sink)])returnTrueasyncdefasync_setup_entry(hass,config_entry,async_add_entities):"""AddPulseAudioentitiesfromaconfig_entry."""name=config_entry.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论