铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯

2017-08-176.9万
精华项目
AI 快速预览详细 收起
本文介绍了如何通过Home-Assistant和Siri实现HAY旋转灯的语音控制。首先,安装Home-Assistant并配置相关插件,然后设计电路并编写程序。接着,将NodeMCU v1与Home Assistant连接,并通过MQTT协议进行通信。最后,通过Homebridge将Home Assistant与Siri连接,实现语音控制。文章提供了详细的步骤和附件下载,适合初学者学习。
本文的主题是语音控制DIY的灯,所以先来一段语音控制智能家居炫技视频,全是DIY哦~



声音太难听,怕晚上吓到妹子们,就做了一下变声处理,好像还蛮喜感的哈哈哈。

话说上一回,我们做了一个 HAY 旋转灯:HAY,你好 ── DIY HAY旋转,自从女票有了 HAY 旋转灯之后,有一天突然问我:每次手动去开关控制亮暗好麻烦哦,可不可以语音控制啊?

当……然……可……以……啊,自己挖的坑,含着泪也要把它填完。不就是语音控制嘛,加个语音识别模块不就好了嘛~

等等,这样的话,要是以后女票让我做别的东西,是不是每个东西都要一个语音模块啦?而且简单加个语音识别模块,在女票面前好像不够**,毕竟人家是产品经理,什么“大场面”没见过啊!

有没有其他更高(zhuang)端(bi)的方法呢?对了,可以用 Siri !

网上一查,果然有相关的方法。国外大神早已写好 Home-Assistanhomebridge 开源框架,利用这两个框架,不要说用语音控制各种灯了,做出一整套智能家居控制系统都不在话下!

于是,开启了新一段的挖坑之旅……

本文由以下内容组成:

  • Home-Assistant 安装;
  • Home-Assistant 插件安装;
  • HAY 旋转灯 v2 设计;
  • Siri 语音控制设置


## Home-Assistant 安装

Home-Assistant 可以装在任何电脑上,但是装在电脑上有点浪费,我就将它装在了树莓派3上,这也是目前比较通用的做法。官方也提供了非常简便的方法:只需去 这里:Installing Hass.io下载 Home-Assistant 提供的对应树莓派镜像,然后烧录进 SD 卡,将 SD 卡插入树莓派,联网,上电,等待几分钟,duang~就完成了!是不是很简单!

要是觉得我讲的太简单了,你也可以去查看详细的 官方教程:Installing Hass.io,其实翻译****话,就是我上面那段话……

过个20分钟左右,就可以打开浏览器(推荐 Chrome)啦,地址栏输入:https://www.home-assistant.io/hassio/installation/即可以进入你的未来智能家庭控制中心啦。

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图1


当出现如下界面时,就说明安装成功啦~

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图2


## Home Assistant 插件(Add-ons)安装

这里推荐几个必装的 Add-ons,方便后续工作:

  • Mosquitto MQTT broker: 轻量级的物联网通信协议,必装,后面 DIY HAY 的时候就会用到这个协议。
  • SSH Server: SSH 服务,推荐安装,方便远程命令行调试。
  • Samba: Samba 服务,必装,方便后续编辑 Home Assistant 文件。


至于这几个插件的具体安装方法和功能,大家点击他们的链接即可,反正也很简单,就是 iPhone 上装 App 一样,这里就不再赘述了。

## HAY-V2 DIY

好了,前面准备环节差不多了,下面就到了正式的激动人心的 HAY v2 DIY 环节了。

### 电路

上一个版本中,我们用了 Arduino Nano 做主控,这一回,由于要联网,想用 Siri 控制,所以选择了 NodeMCU v1 做主控。NodeMCU 是一块集成了 ESP8266 芯片,可以联网的开发板,开发起来与 Arduino 比较类似。论坛里也有一些 NodeMCU 的帖子,大家可以自行搜索学习,其实很简单的啦。

NodeMCU 的功能就是通过 MQTT 协议与 Home Assistant 通信,去控制 LED,也就是 HAY 灯。

下面就是电路原理图啦,其实和上一版本基本类似,就是去掉了 IMU 模块而已。

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图3


### 程序

程序参考了 Github 上的一个大神的程序:https://github.com/JammyDodger231/nodemcu-mqtt-rgb-led,大家可以直接去大神的 Github 上下载。也可以在文末下载。将下图中我圈出来的地方修改一下即可。

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图4


然后将你改好的程序烧写进 NodeMCU 即可。

接下来就是至关重要的一步了,如何将他连入 Home Assistant 平台呢?

其实也很简单,在你的树莓派中,打开 Home Assistant 的配置文件 configuration.yaml,添加如下设置:

[mw_shl_code=xml,true]mqtt:
  broker: 127.0.0.1
  port: 1883
  client_id: home-assistant-1
  username: pi
  password: raspberry
  discovery: true

light:
  - platform: mqtt_json
    name: hay_lamp
    state_topic: "home/rgb1"
    command_topic: "home/rgb1/set"
    brightness: true
    rgb: true
    optimistic: false
    qos: 0[/mw_shl_code]

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图5


然后在time_zone下面增加如下个性化设置:
[mw_shl_code=xml,true]
  customize:
    light.esprgbled:
      icon: mdi:lamp
      friendly_name: 旋转灯
      homebridge_name: 旋转灯[/mw_shl_code]

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图6


大家嫌麻烦的话,可以直接下载我的 configuration.yaml 配置文件,覆盖原文件就好。

然后重启 Home Assistant,访问https://www.home-assistant.io/hassio/installation/,是不是出现了 HAY 旋转灯的按钮!duang~就完成啦~真的很简单哦。点击旁边的按钮,就可以控制旋转灯的开关哦~(不是说好语音控制的嘛?怎么变成在网页上手动控制啦?莫急莫急,马上就来~)

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图7


大家可以忽略我的页面,因为我添加了很多设备。

点击“旋转灯”名字,还会出现更多的设置,包括亮度、颜色等,大家也可以自己去试一试哦~

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图8


### 结构

因为要做成语音控制,所以上一期中 HAY 的旋转功能好像就不是很必要了,所以,我对结构做了一些微调,去掉了两个旋转卡扣,安装方法类似,大家可以参考上一起的说明,这里我就偷懒一下啦。

下面是整体效果图:

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图9


下面是分解图:

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图10


也可以在线查看我的设计图:https://a360.co/2wPnvS9

大家可以看到,总共4个零件,文末会提供各个下载的下载,将这些零件3D打印下来,安装即可。忘了拍视频了,大家根据上一起教程安装吧,这次比上一版本简单多了,相信以大家的智慧,一定可以顺利完成的。

## Siri 语音控制设置

接下来马上就要到了激动人心的时刻啦~请随我慢慢来~

### homebridge 安装与设置

安装完 Home Assistant 之后,我们如何用 Siri 去控制 HAY 灯呢?这里就要介绍另外一个大神写的插件了:homebridge。这是一个可以模拟 HomeKit 设备的插件,我们用它做桥接,将 Home Assistant 里面的设备与 Siri 连接起来。

接下来讲一讲如何安装,其实很简单啦~

进入 Home Assistant 后,打开侧边栏,选择 “Hass.io” 标签栏,然后选择那个购物袋类似的按钮,如下图:

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图11


然后在箭头处填入这个网址:https://github.com/hassio-addons/repository,点击保存。

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图12


然后就会出现如下界面,我们可以看到 Homebridge 还显示 “Not Installed”,就是还没有安装的意思。我们点进去安装一下即可。

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图13


如果不明白怎么安装,可以参考 Home Assistant 官方安装第三方插件的方法:Installing Third-party Add-ons

或者参考这个 homebridge add-on 的官方教程:https://www.home-assistant.io/hassio/installation/

安装完后,点击 “Start” 按钮,我这边是 “Restart” ,因为已经点击过 “Start” 按钮了。

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图14


然后在 Homebridge 页面最底部,点击 “Refresh” 按钮,直到出现如下图中的8位数字 PIN 码,可以先记在智商,待会要用。比如我这边是“741-90-907”,至此树莓派端的设置就全部完成啦~

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图15


### iPhone 设置

首先保证你的 iPhone 和树莓派处于同一局域网内!!!

然后打开你的 iPhone 的“家庭” app,然后选择 “Add Accessory” 按钮,我的 iPhone 系统是英文,大家相应选择就好。

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图16


此时会出现一个 “Home Assistant” 的组件,点击选择即可。

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图17


弹出串口选择 “Add Anyway” 按钮。

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图18


选择 “Enter Code Manually” 按钮。

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图19


输入刚刚在 Homebridge 页面显示的8位数字 PIN 码,比如无我的是“741-90-907”,然后你的 iPhone 也设置好啦~

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图20


设置完以后,你的“家庭” app 中应该就有旋转灯了~

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图21


亮度调节:

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图22


颜色调节:

铁熊玩创客 | Hey Siri, 打开 HAY 旋转灯图23


这些都没有问题的话,就可以来试一下 “嗨Siri” 了



点击上面的图片或链接,就能看视频了~

至此,本文结束,大家自己自行制作自己的“旋转灯”,另外 Home Assistant 和 homebridge 是两个很强大的平台,除了可以集成 Siri,还能集成 Amazon 的 Alexa,以及 谷歌 的音箱产品,大家也可以慢慢把玩,本文仅作抛砖引玉。

## 附件

Home Assistant 配置文件、HAY v2 程序、HAY v2结构打印文件

configuration.yaml.zip

1.25 KB, 下载次数: 13616

配置文件

stl.zip

918.12 KB, 下载次数: 14015

3D打印文件

hay-v2-firmware.zip

543.26 KB, 下载次数: 13825

hay程序与库文件

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(31)
JOVI
JOVI
学习学习
DFS1w2cb8o8
DFS1w2cb8o8
厉害厉害
jzzgb
jzzgb
这创意很棒。
RRoy
RRoy
铁熊太牛了
joone
joone
哇,好厉害呀
308399790
308399790
:)):)):)):)):))
ivemcel
ivemcel
您好,可以 发下你的esp8266程序参考下吗
铁熊
铁熊
作者
回复ivemcel
附件可以下载的哦
myrazhang
myrazhang
大神好NB啊,这发明真实用
shmily326
shmily326
哈罗,请问图中的light.esprgbled是代表什么意思呢?通篇我也没有找到定义esprgbled的地方呢
siege_lion
siege_lion
支持
siege_lion
siege_lion
支持
siege_lion
siege_lion
支持
焦旭
焦旭
登录上了 配置文件多了几行 但是还连不上MQTT 配置文件这样的
焦旭
焦旭回复铁熊
哈哈 搞定了 非常感谢
铁熊
铁熊
作者
回复焦旭
mqtt_server这个参数,你改成你的树莓派ip试试?
焦旭
焦旭
大神你好 为什么我把你的配置文件放到我的里面后 http://hassio.local:8123/就登录不了了 但是网络能连上 读取文件
王小吹
王小吹
还有就是直接将Home-Assistan下载到电脑上(手头没有树莓派3)是否就是第一部不同,其他步骤都一样?
铁熊
铁熊
作者
回复王小吹
不好意思,没在电脑上装过 Home-Assistant,不过理论上只要撞上了 Home-Assistant 之后,其他步骤都一样的
王小吹
王小吹
很棒的设计,本人小白一枚,想撸一个智能家居系统,看了之后,决定就做你这个系统了,没有iphone,能够和那个wifi模块通信吗?
铁熊
铁熊
作者
回复王小吹
没有 iPhone 只是用不了 Siri 而已,不影响其他功能
senghu
senghu
经过一夜的等待,终于更新完成,出现安装成功的页面啦!也许是因为网速问题,这个更新过程并不是20多分钟就OKD
senghu
senghu
前辈,为何我在地址栏输入:http://hassio.local:8123无法访问,只能通过IP地址才能打开,而且页面一直停留在Preparing Hass.io这页,没有出现所谓的安装成功的那个页面?!是哪里出问题了吗?
求告知how改头像
求告知how改头像
请问8266 串口一直在打印
Attempting MQTT connection...connected
Attempting MQTT connection...connected
Attempting MQTT connection...connected
Attempting MQTT connection...connected
这时点开关 一秒后自己就关上了 然后灯也没点亮
这是哪出问题了呢 不应该是连接上一次就好了嘛
铁熊
铁熊
作者
回复求告知how改头像
我个人理解是这样的:树莓派自己既可以做服务端,同时树莓派本身也能连传感器,所以自身也可以做客户端。在树莓派上,服务端和客户端应该可以同时存在
求告知how改头像
求告知how改头像回复铁熊
您好,谢谢回复。MQTT协议写的是同一网络内不能有相同的ID,错误的原因在于我把8266源码里client_id设置成和configuration里的client_id一样的了,这样就导致连接后就自动断开了。。。但是我的疑问是,pi里configuration设置的是MQTT的服务端,那里面的client怎么理解呢?
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
Moncia
Moncia
大神能发个ESP8266WIFI的库文件吗?852151014@qq.com多谢了
Moncia
Moncia回复铁熊
为什么我的ESP8266WIFI库编译不通过,下面是编译后的信息:
In file included from C:\Program Files (x86)\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:33:0,
from C:\Users\Monica\Desktop\firmware\firmware.ino:6:
C:\Program Files (x86)\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiType.h:26:19: fatal error: queue.h: No such file or directory
#include
^
compilation terminated.
exit status 1
为开发板 Arduino/Genuino Uno 编译时出错。
铁熊
铁熊
作者
回复Moncia
这是 ESP8266 板子自带的库,不需要下载。或者你网上搜 ESP8266WIFI 也是能下载到的