因为最近要替换掉之前的那个raspberrypi 3b+(它有更重要的任务需要去执行),换成更低功耗的raspberrypi zero,用于控制我房间的灯以及空调。这里就顺手记录一下从零开始构建一个树莓派接入HomeKit的流程,可能以后会帮助到我,或者其他人。

我的设备材料清单

  • 树莓派zero w
  • Micro SD卡(16G)
  • 红外接收管
  • 红外发射管
  • 5v驱动继电器

制作系统镜像

制作镜像,就利用官方发布的一个软件Raspberry Pi Imager即可,方便快捷。因为考虑到我使用的zero版本,性能较低且没有系统桌面需求,安装的是RASPBERRY PI OS LITE(32-BIT)系统镜像。

配置网络

因为没有桌面跟网线,这里需要配置一下Wi-Fi的接入,以及ssh端口的开通。

Wi-Fi配置

将写入系统镜像的SD卡插入电脑,在根目录下创建一个文件wpa_supplicant.conf,并写入Wi-Fi配置信息:

1
2
# cd进入到SD卡根目录
$ sudo vi wpa_supplicant.conf

wpa_supplicant.conf格式如下:

1
2
3
4
5
6
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="WiFi的SSID"
psk="WiFi密码"
}

将SD卡插入树莓派卡槽,重启即可。

ssh端口开通

这里的操作跟Wi-Fi的配置是类似的,但是我用zero w去实践时发现,它们不能同时进行,得先配置一次Wi-Fi的配置后,再进行ssh的配置才有效。

还是来到系统SD卡的根目录,创建一个名为ssh的文件即可,不能输入任何内容。

1
2
# cd进入到SD卡根目录
$ sudo touch ssh

修改密码

为了安全起见,可以修改树莓派的密码,默认密码为raspberry

1
$ passwd

系统空间扩容

当我ssh登录系统后,发现系统空间极其有限,需要对其进行扩容,否则无法进行下一步操作。

1
$ sudo raspi-config

出来操作界面后,选择 Advanced Options -> Expand Filesystem,选择OK,重启系统就解决了。

修改时区

系统镜像安装好之后,默认的时区是不对的,需要修改过来。

1
2
3
4
5
# 查看时间
$ date

# 进行修改
$ dpkg-reconfigure tzdata

apt源

替换apt软件源

参考Raspbian 镜像使用帮助

红外信号接收以及发射

这里可以参考我之前写的如何利用树莓派控制红外遥控设备。需要注意的是,lirc的版本以及树莓派的版本不同,很有东西可能会有差异,需要自行解决。

安装homebridge

我这里接入HomeKit的方式是通过homebridge来进行接入。

依照HomeBridge官网指导进行安装即可,需要注意的是,区分raspberry pi 1以及zero的安装方式会有所不同,官方指导里边也有对应的说明。

安装完成后就按照homebridge引导来,登录树莓派IP+端口进行设置。

安装插件

为了能够控制我的灯跟空调,我为此写了两个home bridge的插件:

  • homebridge-gpio-on-switch: 利用GPIO跟继电器控制房间灯。因为我是直接改动房间里边的市电电路进行改造的,具有一定的风险,不清楚自己在干嘛的,考虑到安全因素,建议采用其他方式。

  • homebridge-lirc-heater-cooler: 利用上边的lirc工具,控制房间空调

查看它们的说明文档,按照指引写入配置即可。