




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能家居系统搭建方案这是一个探索性项目,旨在提供一个完整的智能家居搭建指南。具体系统架构图如下所示:方案简介: 使用 Home Assistant、HomeBridge 作为智能家居的核心 使用 Amazon Echo 作为语音输入工具(当前仅支持英语) 使用 iPhone 的“家庭”应用作为控制工具 可以使用任何的设备连接 Home Assistant 服务来控制应用1基础知识篇1.1智能家居简介当前,我们谈论智能家居的时候,我们实现上是在讨论:家庭自动化。引自维基百科,对于智能家居的介绍1:Home automation or smart home (also known as domotics) is building automation for the home.随着机器学习和深度学习等 AI 技术的进一步普及,这一点(智能化)在最近几年里,应该会发生一些剧烈的变化。而无论如何,我可不太希望我要被机器催着起床。开始实战之前,让我们先关注于当前智能家居的几个关键点: 设备。这些设备要么使用 WiFi,要么要使用蓝牙,方便使用手机连接上这些设备。依当前的情况来看,主要是以 WiFi 为主,在手机上配置完后,可以轻松地实现远程控制。与此同时,他们在与手机通讯的时候,会使用一些自定义的通讯规则,并且似乎很容易被破解(参见仿真器一节)。如 Philips Hue 智能灯、Wemo 开关等等,他们都已经可以被仿真,并作为 Homekit 组件使用。 自动化。自动化是指你可以定时也开关某个特定的设备,闹钟一响,便打开灯诸如此类的。 场景(规则)。与自动化稍微区别的是,场景是某个特定场合下,对一系列设备的操作,如早起,便开灯、打开窗帘,离开家,则锁门、关闭一系列用电器、开启防盗功能等等。 中心网关。当我们所使用的一系列设备拥有 WiFi 功能时,装有各种软件的手机便相当于控制中枢。而这样的设计本身是不合理的,你要在手机上安装一系列的应用。这个时候,便需要一个额外的软件作为中心,来接入这些设备,而手机上也不需要多余的额外软件。如 HomeKit、Home Assistant 就是这样的例子。而作为一个普通的用户,我们只需要关注便利的生活。作为一个极客,我们则关注于如何改造成需要的功能。1.2智能音箱学术上有个概念是“传声器阵列”,主要由一定数目的声学传感器组成,用来对声场的空间特性进行采样并处理的系统。如下图所示 Amazon Echo 的电路板:其及对应的麦克风的位置:其所要主要解决远距离语音识别的问题,以保证真实场景下的语音识别率。而这些设备的主要原理,都是将语音信号发送到服务器端,由服务器端识别,并匹配到对应的指令上。Amazon Echo实验表明 AWS 的服务并不是那么可靠的,经常出现:Your Echo dot is not connected自定义组件的原理,如下图所示:1.3中心网关Home AssistantHome Assistant 是一个运行在 Python 3 上的开源家庭自动化平台。能跟踪和控制家庭中的所有设备,并实现自动化控制,同时还完美的支持在 Raspberry Pi 上。通过 Home Assistant 插件,它可以直接兼容各式硬件设备。其原理是通过 WiFi、BLE、Zigbee、MQTT 等不同的协议,来与不同的本地设备互联,并提供一个响应式的 Web 界面、PWA 应用、iOS 应用,让用户可以轻松地与设备进行交互。其在桌面浏览器上的界面如下图所示:手机浏览器的界面如下图所示:对于提供丰富功能(如 RGB 灯)的设备来说,它也能支持丰富的操作,即上图。同时,还能接上 Amazon Echo、HomeKit 等各式各样的中心。HomeBridgeHomeKit 是由 Apple 公司推出的智能家居平台,包括iOS 上的 SDK、智能家居硬件通信协议 (HAP: HomeKit Accessory Protocol) 、以及 MFi(Made for iPhone/iPod/iPad) 认证等等。借助于 iPhone、iPad、iWatch 等设备及家庭应用,用户可以轻松地掌控各种 HomeKit 配件。并且可以通过设备上 Siri 应用、Homepod,直接用语音来与设备交互。当前要在 Homekit,有三种方法: 购买昂贵的 MFi 设备。 借助于 Home Assistant,来自建 Homekit API 服务连接设备。 模拟现有的 MFi 设备。诸如使用 ESP8266 仿真 Philip Hues。引自:使用iOS Homekit控制树莓派:HAP 协议部分是需要加入 MFi Program 才能获取文档,而且 MFi Program 无法以个人开发者身份加入。因此,这个时候我们就需要借助于 Homebridge。Homebridge 是一个用 Node.js 实现的轻量级后台,可以在家庭网络上运行,用于模拟iOS HomeKit API。 它支持插件由社区提供的模块,这些插件能提供从 HomeKit 到 “智能家居” 设备制造商,提供的各种第三方API的基本桥梁。而我们只需要有一个 iPhone 在手便可以了。1.4设备如果只有上面的几种中心网关,而缺少设备,那么整个智能的中心就是不完善的。而这也是最近几年来,限制智能家居发展的一个因素:找不到合适的用户需求。通讯机制与协议 WeMo ZigBee WiFi BLE 红外旧设备中枢如小米的万能遥控、Broadlink RM Pro 等。仿真设备设备: Amazone Echo Dot NodeMCU Broadlink RM Pro Yeelight Raspberry Pi 2 Android、iOS 设备2实战设备篇2.1ESP8266 仿真设备 Wemo:可以被 Amazon Echo 识别 Philips Hue:可以被 HomeKit 识别 ?ESP8266 仿真 Wemo要求:下载 Ardunio IDE,地址: http:/www.arduino.cc/en/main/software一、安装 Arduino ESP8266Arduino ESP8266 GitHub 地址: /esp8266/Arduino安装方法:1. 启动 Arduino IDE,并进入 Preferences 窗口2. 在 Additional Board Manager URLs 中输入: /stable/package_esp8266com_index.json3. 从 Tools Board 菜单中打开 Boards Manager,并输入安装 esp8266 平台二、测试仿真下载安装包:/kakopappa/arduino-esp8266-alexa-multiple-wemo-switchSetup 步骤: 下载代码 在编辑器中打开 wemos.ino 修改 WiFi 设置 定义开关及其回调,在 officeLightsOn、officeLightsOff、kitchenLightsOn、kitchenLightsOff 中 烧录相似项目:Arduino Esp8266 Alexa Wemo switch emulatorESP8266 仿真 Philips HueESP8266 Hue Emulator 项目地址:ESP8266HueEmulator这个 Demo 需要这么几个库NeoPixelBus、aJson、Time、NtpClient,同时还需要修改一些相关的配置。因此直接使用这个脚本安装,比较简单:注意:如果是 Mac OS,需要将下面脚本中的 $HOME/Arduino/libraries/ 改为 $HOME/Documents/Arduino/libraries/mkdir -p $HOME/Arduino/libraries/cd $HOME/Arduino/libraries/git clone -branch 2.1.4 /Makuna/NeoPixelBus.gitgit clone /interactive-matter/aJson.gitgit clone /PaulStoffregen/Time.gitgit clone /gmag11/NtpClient.gitsed -i -e s|#define PRINT_BUFFER_LEN 256|#define PRINT_BUFFER_LEN 4096|g aJson/aJSON.hcd -git clone /probonopd/ESP8266HueEmulator.gitsed -i -e s|#include /secrets.h|/#include /secrets.h|g ESP8266HueEmulator/ESP8266HueEmulator/ESP8266HueEmulator.inosed -i -e s|/const char|const char|g ESP8266HueEmulator/ESP8266HueEmulator/ESP8266HueEmulator.ino再将代码烧录到 ESP8266 上,就可以在 Homekit 看到相应的配置。2.2小米智能插座寻找设备npm install -g miiomiio -discovernpm install -save miio3集成网关篇3.1Raspberry Pi Home AssistantImages: https:/home-assistant.io/docs/hassbian/installation/Images Downloader: https:/etcher.io/发现文档好像有点问题,便手动地尝试安装:pip3 install -upgrade homeassistant运行sudo -u homeassistant -H /srv/homeassistant/bin/hass并不没工作,于是执行官方的安装脚本:curl -O /home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh & sudo chown pi:pi hass_rpi_installer.sh & bash hass_rpi_installer.sh又在我的 MBP 上安装尝试pip3 install homeassistanthass -open-ui然后发现安装完就可以了。3.2Home Assistant Broadlink PM PRO在 configuration.yaml 文件中添加下面的配置:# Example configuration.yaml entryswitch: - platform: broadlink host: IP_ADDRESS mac: MAC_ADDRESS switches: reciever: command_on: switch_packet on command_off: switch_packet off获取 Broadlink 配置1. 从 /NightRang3r/Broadlink-e-control-db-dump 获取数据导出脚本2. 打开 易控(英语:E-Control) 应用,点击菜单 - 共享 - 云分享 就会生成相应的配置文件3. 浏览手机上的 /broadlink/newremote/SharedData/ 目录,复制出 jsonSubIr、jsonButton、jsonIrCode 三个文件4. 安装好 python 环境, 并安装 pip install simplejson5. 执行第一步代码中的脚本,python getBroadlinkSharedData.py6. 安装python-broadlink,地址 /mjg59/python-broadlink.git不知道是不是我的空调问题,获取到的配置是空的。3.3Homebridge相关的插件: Yeelight:homebridge-yeelight 小米设备:homebridge-aqara Broadlink RM 红外:homebridge-broadlink-rm Broadlink SP 开关: homebridge-broadlink-sp Home Assistant: homebridge-homeassistant安装 Homebridge编辑软件源:sudo vim /etc/apt/sources.list修改为阿里云,速度会更快一些:deb /raspbian/raspbian/ jessie main non-free contribdeb-src /raspbian/raspbian/ jessie main non-free contrib安装 Node.js ARM 版 :curl -sL /setup_7.x | sudo -E bash -sudo apt-get install -y nodejs安装 avahi:sudo apt-get install libavahi-compat-libdnssd-dev安装 homebridge:npm install -g homebridge安装相应的插件:sudo npm install -g homebridge-yeelightsudo npm install -g homebridge-homeassistantsudo npm install -g homebridge-broadlink-spsudo npm install -g homebridge-broadlink-rmsudo npm install -g homebridge-platform-wemosudo npm install -g homebridge-miio对应的配置在 home-assistant 目录下的 configuration.yaml 文件。开机启动在 /etc/default 目录下创建 homebridge 文件,内容如下:#Defaults / Configuration options for homebridge#The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)HOMEBRIDGE_OPTS=-U /var/lib/homebridge# If you uncomment the following line, homebridge will log more# You can display this via systemds journalctl: journalctl -f -u homebridge# DEBUG=*在 /etc/systemd/system 目录下创建 homebridge.service 文件,内容如下:UnitDescription=Node.js HomeKit ServerAfter=syslog.target network-online.targetServiceType=simpleUser=homebridgeEnvironmentFile=/etc/default/homebridge# Adapt this to your specific setup (could be /usr/bin/homebridge)# See comments below for more informationExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTSRestart=on-failureRestartSec=10KillMode=processInstallWantedBy=multi-user.target启动服务:systemctl daemon-reloadsystemctl enable homebridgesystemctl start homebridge4.4HomeBridge 集成 Home Assistant安装插件:npm install -g homebridge-homeassistant添加配置:platforms: platform: HomeAssistant, name: HomeAssistant, host: :8123, password: yourapipassword, supported_types: binary_sensor, climate, cover, device_tracker, fan, group, input_boolean, light, lock, media_player, scene, sensor, switch, logging: true 4.5Amazon Echo 设置我用的是 Amazon Echo Dot 2 就是那个 Mini 版的 安装 Yeelight Skill 安装 Mijia两者需要登录小米的账号,才能授权获得控制。3结合 HomeAssistant 和 Amazon Echo文档:https:/home-assistant.io/components/alexa/如果只是为了打开、关闭设备,可以直接使用 emulated_hue 组件,它可以提供一个虚拟的 Philips Hue 桥。只开关设备使用 Home Assistant 的 Emulated Hue 组件就可以了,添加如下的配置:emulated_hue: host_ip: 42其中的 42 即是 Home Assistant 的服务器地址更详细的配置,如:/Teagan42/HomeAssistantConfig定制命令为了使用更多的功能,则需要使用将 Home Assistant 暴露到公网上使用诸如花生壳等。(PS:由于当前家里使用的是光纤,需要光纤猫,实施上比较困难;因此,外部访问需要使用一级跌幅,暂时没有进行这方面的尝试)。随后在 Amazon developer console创建相应的 Alex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45343-2025老年人沐浴鞋
- 汽车维修知识的普及与宣导试题及答案
- 《2025年的青岛房屋租赁合同》
- 河南省九师联盟2025届高三4月联考历史试题+答案
- 2025企业短期贷款借款合同模板
- 2025项目管理咨询合同协议范本
- 2025企业租赁合同范本(版)
- 食品安全检测工作的流程试题及答案
- 2025建筑工程楼房建设合同
- 政府购买社区居家养老服务招标文件
- 消防更换设备方案范本
- 合伙开办教育培训机构合同范本
- 嵌入式机器视觉流水线分拣系统设计
- GB/T 14689-2008技术制图图纸幅面和格式
- 2.1食物中的营养物质 导学案(1、2课时无解析)
- JC∕T 2634-2021 水泥行业绿色工厂评价要求
- 六年级下册科学第二单元质量检测卷粤教版(含答案)
- 跨境电商现状与发展趋势跨境电商行业分析跨境电商的发展课件
- 唐太宗-李世民
- 项目部二级安全教育内容
- 统编(部编)五年级语文下册全册教学反思
评论
0/150
提交评论