close
当前位置: 物联网在线 > 行业应用 > 智能家居 >

从基础知识到实战,看如何搭建起一个完整的智能家居系统

从基础知识到实战,看如何搭建起一个完整的智能家居系统。

实战设备篇

ESP8266 仿真设备

  • Wemo:可以被 Amazon Echo 识别
  • Philips Hue:可以被 HomeKit 识别 ?

ESP8266 仿真 Wemo

要求:下载 Ardunio IDE,地址: http://www.arduino.cc/en/main/software

一、安装 Arduino ESP8266

Arduino ESP8266 GitHub 地址: https://github.com/esp8266/Arduino

安装方法:

  1. 启动 Arduino IDE,并进入 Preferences 窗口
  2. 在 Additional Board Manager URLs 中输入: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. 从 Tools > Board 菜单中打开 Boards Manager,并输入安装 esp8266 平台

二、测试仿真

下载安装包:https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch

Setup 步骤:

  • 下载代码
  • 在编辑器中打开 wemos.ino
  • 修改 WiFi 设置
  • 定义开关及其回调,在 officeLightsOnofficeLightsOffkitchenLightsOnkitchenLightsOff
  • 烧录

相似项目:Arduino Esp8266 Alexa Wemo switch emulator

ESP8266 仿真 Philips Hue

ESP8266 Hue Emulator 项目地址:ESP8266HueEmulator

这个 Demo 需要这么几个库NeoPixelBusaJsonTimeNtpClient,同时还需要修改一些相关的配置。

因此直接使用这个脚本安装,比较简单:

注意:如果是 Mac OS,需要将下面脚本中的 $HOME/Arduino/libraries/ 改为 $HOME/Documents/Arduino/libraries/

mkdir -p $HOME/Arduino/libraries/
cd $HOME/Arduino/libraries/
git clone --branch 2.1.4 https://github.com/Makuna/NeoPixelBus.git
git clone https://github.com/interactive-matter/aJson.git
git clone https://github.com/PaulStoffregen/Time.git
git clone https://github.com/gmag11/NtpClient.git
sed -i -e 's|#define PRINT_BUFFER_LEN 256|#define PRINT_BUFFER_LEN 4096|g'  aJson/aJSON.h
cd -
git clone https://github.com/probonopd/ESP8266HueEmulator.git
sed -i -e 's|#include "/secrets.h"|//#include "/secrets.h"|g' ESP8266HueEmulator/ESP8266HueEmulator/ESP8266HueEmulator.ino
sed -i -e 's|//const char|const char|g' ESP8266HueEmulator/ESP8266HueEmulator/ESP8266HueEmulator.ino

再将代码烧录到 ESP8266 上,就可以在 Homekit 看到相应的配置。

小米智能插座

寻找设备

npm install -g miio
miio --discover
npm install --save miio

集成网关篇

Raspberry Pi Home Assistant

Images: 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 https://raw.githubusercontent.com/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 homeassistant
hass --open-ui

然后发现安装完就可以了。

Home Assistant Broadlink PM PRO

configuration.yaml 文件中添加下面的配置:

# Example configuration.yaml entry
switch:
  - platform: broadlink
    host: IP_ADDRESS
    mac: 'MAC_ADDRESS'
    switches:
      reciever:
        command_on: 'switch_packet on'
        command_off: 'switch_packet off'

获取 Broadlink 配置

  1. 从 https://github.com/NightRang3r/Broadlink-e-control-db-dump 获取数据导出脚本
  2. 打开 易控(英语:E-Control) 应用,点击菜单 -> 共享 -> 云分享 就会生成相应的配置文件
  3. 浏览手机上的 /broadlink/newremote/SharedData/ 目录,复制出 jsonSubIrjsonButtonjsonIrCode 三个文件
  4. 安装好 python 环境, 并安装 pip install simplejson
  5. 执行第一步代码中的脚本,python getBroadlinkSharedData.py
  6. 安装python-broadlink,地址 https://github.com/mjg59/python-broadlink.git

不知道是不是我的空调问题,获取到的配置是空的。

Homebridge

相关的插件:

  • 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 http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib

安装 Node.js ARM 版 :

curl -sL https://deb.nodesource.com/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-yeelight
sudo npm install -g homebridge-homeassistant
sudo npm install -g homebridge-broadlink-sp
sudo npm install -g homebridge-broadlink-rm
sudo npm install -g homebridge-platform-wemo
sudo 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 systemd's journalctl: journalctl -f -u homebridge
# DEBUG=*

在 /etc/systemd/system 目录下创建 homebridge.service 文件,内容如下:

[Unit]
Description=Node.js HomeKit Server
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
# Adapt this to your specific setup (could be /usr/bin/homebridge)
# See comments below for more information
ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

启动服务:

systemctl daemon-reload
systemctl enable homebridge
systemctl start homebridge

HomeBridge 集成 Home Assistant

安装插件:

npm install -g homebridge-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
  }
]

Amazon Echo 设置

我用的是 Amazon Echo Dot 2 就是那个 Mini 版的

  • 安装 Yeelight Skill
  • 安装 Mijia

两者需要登录小米的账号,才能授权获得控制。

结合 HomeAssistant 和 Amazon Echo

文档:https://home-assistant.io/components/alexa/

如果只是为了打开、关闭设备,可以直接使用 emulated_hue 组件,它可以提供一个虚拟的 Philips Hue 桥。

只开关设备

使用 Home Assistant 的 Emulated Hue 组件就可以了,添加如下的配置:

emulated_hue:
  host_ip: 192.168.199.242

其中的 192.168.199.242 即是 Home Assistant 的服务器地址

更详细的配置,如:https://github.com/Teagan42/HomeAssistantConfig

定制命令

为了使用更多的功能,则需要使用将 Home Assistant 暴露到公网上——使用诸如花生壳等。(PS:由于当前家里使用的是光纤,需要光纤猫,实施上比较困难;因此,外部访问需要使用一级跌幅,暂时没有进行这方面的尝试)。

随后在 Amazon developer console

创建相应的 Alexa Skill,并添加 Endpoing:https://YOUR_HOST/api/alexa?api_password=YOUR_API_PASSWORD

必须使用 HTTPS

定制 Home Assistant

Home Assistant RESTful API 地址:Home Assistant API

Raspberry Pi Cornata

官方文档:Use Cortana Function on IoT Core

下载 Windows 10 IoT Core Dashboard

下载地址:https://developer.microsoft.com/en-us/windows/iot/docs/iotdashboard

安装最新镜像

打开 Windows 10 IoT Core Dashboard,为 RPi 烧录镜像,如下图所示:

官方建议要更新到最新。使用 Web 界面打开设备的 Windows Update,http://:8080/#Windows%20Update,如http://192.168.199.223:8080/#Windows%20Update。

然后到 Devices 中看是否出现相应的 Microphone 设置。

开机启动 Cortana

在首页的 Device Settigns 最下面有一个 Start Cortana on Boot 的选项。

使用 Windows IoT Remote Server 访问:在 http://192.168.199.223:8080/#Remote 在勾上 Enable Windows IoT Remote Server

设置 speechlanguage 成中文

打开 Processes -> Run command,执行:

IoTSettings -set region CN
IoTSettings -set speechlanguage zh-Hans-CN

工具集

Tools:

  • Alexa Skill Testing Tool
  • Raspberry Pi Burn images Tools

欢迎 star:https://github.com/phodal/smart-home


(责任编辑:ioter)

用户喜欢...

2017中国国际消费电子博览会-全球智能硬件评选角逐日趋激烈

智能硬件产品正在催生新一轮的产业革命,编织着“万物互联”的宏大生态圈。当前智能硬件产业涵盖了智能家居等...


西部数据公司旗下品牌HGST参加华为全联接大会2017展示以“驾驭数据的力量”为主题的数据解决方案

今日,作为此次华为大会的合作伙伴,西部数据公司旗下品牌HGST参加在中国上海举办的华为全联接大会2017,展位位于...


万物互联时代,看恩智浦如何发力?

我们正生活在一个被物联网逐渐影响和改变的宇宙中,而各种新兴的万物互联应用,如同浩翰夜空下的闪烁星辰,熠...


物联网商机11万亿美元 一条龙系统 规模年飙三成

物联网近年悄然走进我们的日常生活。亚马逊股价早前一度冲破1000美元,主打相关技术的Amazon Echo可谓功不可没。物...


【解析】全球物联网平台的发展现状

作为物联网产业生态中的关键组成部分,物联网平台处于万物互联时代软硬结合的枢纽位置:一方面肩负管理底层实...


2017年IFA大会:全球领先的消费电子展将在柏林拉开大幕

德国柏林国际电子消费品展览会(IFA)是全球领先的消费电子和家用电器贸易展。今年的展会将于9月1日至6日在柏林展览...


轻智能时代,智能家居比你想象中要简单得多!

智能家居的热度一直在线!但为什么很多时候大众总觉得“智能”只是一个概念或者噱头?其实,随着智能技术的不断成熟,智能家居已经克服了走入家庭的诸多障碍。当下的智能家居早已不再...


《物联网发展趋势展示内容》研究报告(五)物联网在智慧能源中的应用

物联网是二十一世纪的现象,是实体消费产品连接到网络,并开始通过传感器和致动器的装置相互沟通。智能电网是...


智能家居采用哪些无线技术?

智能家电并不是单指某一个家电,而应是一个技术系统,其中,无线通信技术则成为了家电智能化的基石,市面上智能家电采用较多的无线技术基本采用ZigBee、红外、蓝牙、Wi-Fi以及射频这...


ISHE回顾飞比科技zigbee智能家居解决方案大放异彩

ISHE 2017深圳国际智能建筑电气&智能家居博览会于2017年8月18日圆满落幕,作为参展商之一的飞比科技展出以zigbee3....