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