找完实习做毕设,这学期真是累成狗,趁着闲下来几天鼓捣了一下落灰已久的树莓派。研究了利用树莓派作为家里面智能硬件的网关,利用IOS自带的homekit进行控制。简单记录下过程。
一、前期准备
1、镜像选择
这次没有选择官方的镜像,而是另一个镜像2016-09-26-Hassbian-Bluetooth。
下载地址 链接:http://pan.baidu.com/s/1miJTjuS 密码:oxvw
烧写过程都是一样的,上电以后,树莓派会自动安装最新版本的HomeAssitant软件。该软件会在树莓派的8123端口开一个http服务器,在我这里树莓派的IP地址是192.168.1.102,所以在浏览器输出192.168.1.102:8123,最开始的时候会无法访问,等几分钟后会显示出一个网站,说明更新已经完成。
2、配置树莓派环境
修改密码:系统默认的用户名和密码为:pi和raspberry,输入命令:
1
sudo raspi-config
修改时间:这一步很重要,如果时间不正确,在下面的git或者npm命令之后会出现很多奇怪的问题
1
sudo date --s="2017-04-27 10:34:00"
更新软件源:
1
sudo nano /etc/apt/sources.list
将第一行注释掉,并将下面的代码复制到最后,换成阿里云的源
1
2deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib最后在更新软件:
1
sudo apt-get update
安装基础软件:xrdp,用于远程桌面连接
1
sudo apt-get install xrdp
二、homebridge安装
接下来就是homebridge的安装了。
1、安装基础组件
安装“Samba,Screen和Git”这三个系统组件,接下来的安装过程中我们会用到。
1 | sudo apt-get install -y samba screen git |
2、安装nodejs
如上图所示输入命令:
1 | curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - |
安装nodejs,如上图所示输入命令:
1 | sudo apt-get install -y nodejs |
然后再安装依赖包libavahi,如上图所示输入命令:
1 | sudo apt-get -y install libavahi-compat-libdnssd-dev |
至此就可以使用node npm等命令了。
3、安装homebridge
输入命令:
1 | sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp |
与上面不同的是使用npm进行安装,在最开始会有一个光标在那一直转,时间比较长耐心等待就可以了。
如上图所示输入下面四行命令:
1 | cd /usr/lib/node_modules/homebridge/ |
完成之后如下图:
4、安装HomeBridge-HomeAssitant
输入命令:
1 | sudo npm install -g homebridge-homeassistant |
现在就可以运行homebridge啦:
1 | homebridge |
如图可以看见黄色字体提示缺少config.json文件,也就是homebridge的配置文件。
三、homebridge插件的安装
homebridge是一个桥接ios与智能硬件的平台,想要控制智能硬件,还必须要有相应的插件,在github上面有非常多的插件,而且可以通过npm进行安装,他们的明明都是homebridge-XXX。
比如我想加入一个智能硬件用来控制树莓派的GPIO,就可以在npm上面搜索,可以发现有很多相关的插件。我基本尝试了所有的插件,也都遇到了各种问题,最后选定了homebridge-gpio-wpi2这个插件。github地址为https://github.com/rsg98/homebridge-gpio-wpi2
下面以这个插件为例继续下一步的操作。
1、安装依赖包与插件
1 | sudo apt-get install wiringpi#wiringpi是用于控制树莓派GPIO的库 |
2、修改配置文件
配置文件最开始是不存在的,需要新建
1 | sudo nano /home/pi/.homebridge/config.json |
把下面内容复制进去
1 | { |
再次打开homebridge
1 | homebridge |
运行成功,保证手机与树莓派在同一网段内,即可在家庭应用中添加设备并且可以控制。
此时打开siri,就可以进行语音控制啦。
四、后记
- 控制io只是实现了最基础的功能,npm上面有很多插件等着我们去探索,不过插件也是良莠不齐会出现各种问题,要学会去github上面看参考文档。
- 上面用到的插件是我试过的唯一好用的pgio的插件,具体的配置参数github主页上有非常详细的说明。
- homebridge的插件开发文档还很少,后期可以尝试着自己开发插件。
五、参考地址
http://bbs.feng.com/forum.php?mod=viewthread&tid=10857822
https://github.com/nfarina/homebridge