智能家居系统搭建方案.docx
- 文档编号:7755412
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:14
- 大小:138.69KB
智能家居系统搭建方案.docx
《智能家居系统搭建方案.docx》由会员分享,可在线阅读,更多相关《智能家居系统搭建方案.docx(14页珍藏版)》请在冰豆网上搜索。
智能家居系统搭建方案
智能家居系统搭建方案
这是一个探索性项目,旨在提供一个完整的智能家居搭建指南。
具体系统架构图如下所示:
方案简介:
∙使用HomeAssistant、HomeBridge作为智能家居的核心
∙使用AmazonEcho作为语音输入工具(当前仅支持英语)
∙使用iPhone的“家庭”应用作为控制工具
∙可以使用任何的设备连接HomeAssistant服务来控制应用
1
基础知识篇1.1智能家居简介
当前,我们谈论智能家居的时候,我们实现上是在讨论:
家庭自动化。
引自维基百科,对于智能家居的介绍1:
Homeautomationorsmarthome(alsoknownasdomotics)isbuildingautomationforthehome.
随着机器学习和深度学习等AI技术的进一步普及,这一点(智能化)在最近几年里,应该会发生一些剧烈的变化。
而无论如何,我可不太希望我要被机器催着起床。
开始实战之前,让我们先关注于当前智能家居的几个关键点:
∙设备。
这些设备要么使用WiFi,要么要使用蓝牙,方便使用手机连接上这些设备。
依当前的情况来看,主要是以WiFi为主,在手机上配置完后,可以轻松地实现远程控制。
与此同时,他们在与手机通讯的时候,会使用一些自定义的通讯规则,并且似乎很容易被破解(参见仿真器一节)。
如PhilipsHue智能灯、Wemo开关等等,他们都已经可以被仿真,并作为Homekit组件使用。
∙自动化。
自动化是指你可以定时也开关某个特定的设备,闹钟一响,便打开灯诸如此类的。
∙场景(规则)。
与自动化稍微区别的是,场景是某个特定场合下,对一系列设备的操作,如早起,便开灯、打开窗帘,离开家,则锁门、关闭一系列用电器、开启防盗功能等等。
∙中心网关。
当我们所使用的一系列设备拥有WiFi功能时,装有各种软件的手机便相当于控制中枢。
而这样的设计本身是不合理的,你要在手机上安装一系列的应用。
这个时候,便需要一个额外的软件作为中心,来接入这些设备,而手机上也不需要多余的额外软件。
如HomeKit、HomeAssistant就是这样的例子。
而作为一个普通的用户,我们只需要关注便利的生活。
作为一个极客,我们则关注于如何改造成需要的功能。
1.2智能音箱
学术上有个概念是“传声器阵列”,主要由一定数目的声学传感器组成,用来对声场的空间特性进行采样并处理的系统。
如下图所示AmazonEcho的电路板:
其及对应的麦克风的位置:
其所要主要解决远距离语音识别的问题,以保证真实场景下的语音识别率。
而这些设备的主要原理,都是将语音信号发送到服务器端,由服务器端识别,并匹配到对应的指令上。
AmazonEcho
实验表明AWS的服务并不是那么可靠的~~,经常出现:
YourEchodotisnotconnected
自定义组件的原理,如下图所示:
1.3中心网关
HomeAssistant
HomeAssistant是一个运行在Python3上的开源家庭自动化平台。
能跟踪和控制家庭中的所有设备,并实现自动化控制,同时还完美的支持在RaspberryPi上。
通过HomeAssistant插件,它可以直接兼容各式硬件设备。
其原理是通过WiFi、BLE、Zigbee、MQTT等不同的协议,来与不同的本地设备互联,并提供一个响应式的Web界面、PWA应用、iOS应用,让用户可以轻松地与设备进行交互。
其在桌面浏览器上的界面如下图所示:
手机浏览器的界面如下图所示:
对于提供丰富功能(如RGB灯)的设备来说,它也能支持丰富的操作,即上图。
同时,还能接上AmazonEcho、HomeKit等各式各样的中心。
HomeBridge
HomeKit是由Apple公司推出的智能家居平台,包括iOS上的SDK、智能家居硬件通信协议(HAP:
HomeKitAccessoryProtocol)、以及MFi(MadeforiPhone/iPod/iPad)认证等等。
借助于iPhone、iPad、iWatch等设备及『家庭』应用,用户可以轻松地掌控各种HomeKit配件。
并且可以通过设备上Siri应用、Homepod,直接用语音来与设备交互。
当前要在Homekit,有三种方法:
∙购买昂贵的MFi设备。
∙借助于HomeAssistant,来自建HomekitAPI服务连接设备。
∙模拟现有的MFi设备。
诸如使用ESP8266仿真PhilipHues。
引自:
使用iOSHomekit控制树莓派:
HAP协议部分是需要加入MFiProgram才能获取文档,而且MFiProgram无法以个人开发者身份加入。
因此,这个时候我们就需要借助于Homebridge。
Homebridge是一个用Node.js实现的轻量级后台,可以在家庭网络上运行,用于模拟iOSHomeKitAPI。
它支持插件——由社区提供的模块,这些插件能提供从HomeKit到“智能家居”设备制造商,提供的各种第三方API的基本桥梁。
而我们只需要有一个iPhone在手便可以了。
1.4设备
如果只有上面的几种中心网关,而缺少设备,那么整个智能的中心就是不完善的。
而这也是最近几年来,限制智能家居发展的一个因素:
找不到合适的用户需求。
通讯机制与协议
∙WeMo
∙ZigBee
∙WiFi
∙BLE
∙红外
旧设备中枢
如小米的万能遥控、BroadlinkRMPro等。
仿真设备
设备:
∙AmazoneEchoDot
∙NodeMCU
∙BroadlinkRMPro
∙Yeelight
∙RaspberryPi2
∙Android、iOS设备
2
实战设备篇
2.1ESP8266仿真设备
∙Wemo:
可以被AmazonEcho识别
∙PhilipsHue:
可以被HomeKit识别?
ESP8266仿真Wemo
要求:
下载ArdunioIDE,地址:
http:
//www.arduino.cc/en/main/software
一、安装ArduinoESP8266
ArduinoESP8266GitHub地址:
安装方法:
1.启动ArduinoIDE,并进入Preferences窗口
2.在AdditionalBoardManagerURLs中输入:
3.从Tools>Board菜单中打开BoardsManager,并输入安装esp8266平台
二、测试仿真
下载安装包:
Setup步骤:
∙下载代码
∙在编辑器中打开wemos.ino
∙修改WiFi设置
∙定义开关及其回调,在officeLightsOn、officeLightsOff、kitchenLightsOn、kitchenLightsOff中
∙烧录
相似项目:
ArduinoEsp8266AlexaWemoswitchemulator
ESP8266仿真PhilipsHue
ESP8266HueEmulator项目地址:
ESP8266HueEmulator
这个Demo需要这么几个库NeoPixelBus、aJson、Time、NtpClient,同时还需要修改一些相关的配置。
因此直接使用这个脚本安装,比较简单:
注意:
如果是MacOS,需要将下面脚本中的$HOME/Arduino/libraries/改为$HOME/Documents/Arduino/libraries/
mkdir-p$HOME/Arduino/libraries/
cd$HOME/Arduino/libraries/
gitclone--branch2.1.4
gitclone
gitclone
gitclone
sed-i-e's|#definePRINT_BUFFER_LEN256|#definePRINT_BUFFER_LEN4096|g' aJson/aJSON.h
cd-
gitclone
sed-i-e's|#include"/secrets.h"|//#include"/secrets.h"|g'ESP8266HueEmulator/ESP8266HueEmulator/ESP8266HueEmulator.ino
sed-i-e's|//constchar|constchar|g'ESP8266HueEmulator/ESP8266HueEmulator/ESP8266HueEmulator.ino
再将代码烧录到ESP8266上,就可以在Homekit看到相应的配置。
2.2小米智能插座
寻找设备
npminstall-gmiio
miio--discover
npminstall--savemiio
3
集成网关篇3.1RaspberryPiHomeAssistant
Images:
https:
//home-assistant.io/docs/hassbian/installation/
ImagesDownloader:
https:
//etcher.io/
发现文档好像有点问题,便手动地尝试安装:
pip3install--upgradehomeassistant
运行
sudo-uhomeassistant-H/srv/homeassistant/bin/hass
并不没工作,于是执行官方的安装脚本:
curl-O&&sudochownpi:
pihass_rpi_installer.sh&&bashhass_rpi_installer.sh
又在我的MBP上安装尝试
pip3installhomeassistant
hass--open-ui
然后发现安装完就可以了。
3.2HomeAssistantBroadlinkPMPRO
在configuration.yaml文件中添加下面的配置:
#Exampleconfiguration.yamlentry
switch:
-platform:
broadlink
host:
IP_ADDRESS
mac:
'MAC_ADDRESS'
switches:
reciever:
command_on:
'switch_packeton'
command_off:
'switch_packetoff'
获取Broadlink配置
1.从获取数据导出脚本
2.打开易控(英语:
E-Control)应用,点击菜单->共享->云分享就会生成相应的配置文件
3.浏览手机上的/broadlink/newremote/SharedData/目录,复制出jsonSubIr、jsonButton、jsonIrCode三个文件
4.安装好python环境,并安装pipinstallsimplejson
5.执行第一步代码中的脚本,pythongetBroadlinkSharedData.py
6.安装python-broadlink,地址
不知道是不是我的空调问题,获取到的配置是空的。
3.3Homebridge
相关的插件:
∙Yeelight:
homebridge-yeelight
∙小米设备:
homebridge-aqara
∙BroadlinkRM红外:
homebridge-broadlink-rm
∙BroadlinkSP开关:
homebridge-broadlink-sp
∙HomeAssistant:
homebridge-homeassistant
安装Homebridge
编辑软件源:
sudovim/etc/apt/sources.list
修改为阿里云,速度会更快一些:
debjessiemainnon-freecontrib
deb-srcjessiemainnon-freecontrib
安装Node.jsARM版:
curl-sL|sudo-Ebash-
sudoapt-getinstall-ynodejs
安装avahi:
sudoapt-getinstalllibavahi-compat-libdnssd-dev
安装homebridge:
npminstall-ghomebridge
安装相应的插件:
sudonpminstall-ghomebridge-yeelight
sudonpminstall-ghomebridge-homeassistant
sudonpminstall-ghomebridge-broadlink-sp
sudonpminstall-ghomebridge-broadlink-rm
sudonpminstall-ghomebridge-platform-wemo
sudonpminstall-ghomebridge-miio
对应的配置在home-assistant目录下的configuration.yaml文件。
开机启动
在/etc/default目录下创建homebridge文件,内容如下:
#Defaults/Configurationoptionsforhomebridge
#Thefollowingsettingstellshomebridgewheretofindtheconfig.jsonfileandwheretopersistthedata(i.e.pairingandothers)
HOMEBRIDGE_OPTS=-U/var/lib/homebridge
#Ifyouuncommentthefollowingline,homebridgewilllogmore
#Youcandisplaythisviasystemd'sjournalctl:
journalctl-f-uhomebridge
#DEBUG=*
在/etc/systemd/system目录下创建homebridge.service文件,内容如下:
[Unit]
Description=Node.jsHomeKitServer
After=syslog.targetnetwork-online.target
[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
#Adaptthistoyourspecificsetup(couldbe/usr/bin/homebridge)
#Seecommentsbelowformoreinformation
ExecStart=/usr/local/bin/homebridge$HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process
[Install]
WantedBy=multi-user.target
启动服务:
systemctldaemon-reload
systemctlenablehomebridge
systemctlstarthomebridge
4.4HomeBridge集成HomeAssistant
安装插件:
npminstall-ghomebridge-homeassistant
添加配置:
"platforms":
[
{
"platform":
"HomeAssistant",
"name":
"HomeAssistant",
"host":
"http:
//127.0.0.1:
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.5AmazonEcho设置
我用的是AmazonEchoDot2就是那个Mini版的
∙安装YeelightSkill
∙安装Mijia
两者需要登录小米的账号,才能授权获得控制。
3结合HomeAssistant和AmazonEcho
文档:
https:
//home-assistant.io/components/alexa/
如果只是为了打开、关闭设备,可以直接使用emulated_hue组件,它可以提供一个虚拟的PhilipsHue桥。
只开关设备
使用HomeAssistant的EmulatedHue组件就可以了,添加如下的配置:
emulated_hue:
host_ip:
192.168.199.242
其中的192.168.199.242即是HomeAssistant的服务器地址
更详细的配置,如:
定制命令
为了使用更多的功能,则需要使用将HomeAssistant暴露到公网上——使用诸如花生壳等。
(PS:
由于当前家里使用的是光纤,需要光纤猫,实施上比较困难;因此,外部访问需要使用一级跌幅,暂时没有进行这方面的尝试)。
随后在Amazondeveloperconsole
创建相应的AlexaSkill,并添加Endpoing:
https:
//YOUR_HOST/api/alexa?
api_password=YOUR_API_PASSWORD
必须使用HTTPS
4.7定制HomeAssistant
HomeAssistantRESTfulAPI地址:
HomeAssistantAPI
4.8RaspberryPiCornata
官方文档:
UseCortanaFunctiononIoTCore
下载Windows10IoTCoreDashboard
下载地址:
安装最新镜像
打开Windows10IoTCoreDashboard,为RPi烧录镜像,如下图所示:
官方建议要更新到最新。
使用Web界面打开设备的WindowsUpdate,http:
//:
8080/#Windows%20Update,如http:
//192.168.199.223:
8080/#Windows%20Update。
然后到Devices中看是否出现相应的Microphone设置。
开机启动Cortana
在首页的DeviceSettigns最下面有一个StartCortanaonBoot的选项。
使用WindowsIoTRemoteServer访问:
在http:
//192.168.199.223:
8080/#Remote在勾上EnableWindowsIoTRemoteServer
设置speechlanguage成中文:
打开Processes->Runcommand,执行:
IoTSettings-setregionCN
IoTSettings-setspeechlanguagezh-Hans-CN
4.9工具集
Tools:
∙AlexaSkillTestingTool
∙RaspberryPiBurnimagesTools
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能家居 系统 搭建 方案