Hey Siri, 开灯

420 阅读2分钟

接触了苹果手机之后,发现苹果有些方面做的确实挺棒的,尤其是看到苹果智能家居方面的功能,只能说哇塞太棒了。想尝试下苹果的智能家居,相关产品的价格实在不忍直视。但是,能不能手动打造一个智能台灯呢。查了资料,结合我现有的材料,可以。说干就干,找出了吃灰几年的树莓派,还有一个手工加装了 5V 继电器的插座。

材料包括:iPhone 手机一部,树莓派一个,继电器插座,以及台灯。

大概实现方式就是台灯连插座,树莓派可以通过 GPIO 接口控制插座,然后苹果 HomeKit 连接树莓派。

最终的目标就是:实现说 “Hey Siri,开灯”,然后可以打开台灯。


这里面复杂的部分都在树莓派上,下面依次介绍

WiringPi 安装

WiringPi 是树莓派上方便操作 io 接口的一个库。

安装可以参考之前的文章 juejin.cn/post/716514…

Homebridge 安装

Homebridge 可以实现把没有经过 HomeKit 认证的智能设备接入苹果智能家居平台 HomeKit。

Homebridge 是 NodeJS 编写的一个软件包,因此需要提前安装 node。

安装 homebridge

npm i -g homebridge

启动

homebridge

启动之后会展示一个二维码,拿手机的 “家庭” APP 扫码连接即可。

Homebridge 插件安装

Homebridge 安装之后还不能直接实现 GPIO 的操作,需要通过其插件功能来扩展。 已经有上千种插件将各种各样的设备接入了 Homebridge。

这里使用了 homebridge-gpio-device 插件,可以用来控制树莓派上的 io 口

www.npmjs.com/package/hom…

npm i -g homebridge-gpio-device

添加配置 .homebridge/config.json,表示 GPIO.25 IO 口,将作为一个开关型设备,名称为 light

{
  "accessories": [
    {
      "accessory": "GPIODevice",
      "name": "light",
      "type": "Switch",
      "pin": 25
    }
  ]
}

保存后,运行 homebridge,就能在手机上看到多了一个设备 light,并且可以实现远程控制了,手动或者语音都可以。

Homebridge 设置开机启动

还没完,为了以后启动更方便,最好把 homebridge 设置为开机启动。

创建文件 /lib/systemd/system/homebridge.service,保存以下内容:

[Unit]
Description=Homebridge
After=network.target
[Service]
Type=simple
User=pi
ExecStart=/usr/bin/homebridge -U /home/pi/.homebridge
[Install]
WantedBy=multi-user.target
# 更新系统设置
sudo systemctl --system daemon-reload
# 设置开机启动
sudo systemctl enable homebridge.service

# 手动启动
sudo systemctl start homebridge.service
# 停止
sudo systemctl stop homebridge.service
# 查看状态,启动出问题的时候也可通过该命令查看
sudo systemctl status homebridge.service

最终

对着手机说:“Hey Siri,开灯”。O(∩_∩)O~