前提
RaspberryPi初めて使ったメモ
やりたいこと
「Hey, Siri! LEDつけて」でLEDを点灯させる
やる方法
AppleのSiriのHomekitを使ってRaspberrypi3に接続したLEDを光らせる
使うもの
- Raspberry Pi 3
- microSD 4GB
- Raspbian Jessie lite
- LED
- ブレッドボード
- 抵抗(2kΩ)
- ジャンパー線(メスとオスの先端になっているもの)2本
- Homebridge
ちょっとした詳細
Homekit
Siri(iOSのデバイス)から家電を操作するためのフレームワーク
Homebridge
HomekitのAPI機能をエミュレートするためのNode.jsサーバ
Node.js
サーバーサイドjavascript
http://qiita.com/hshimo/items/1ecb7ed1b567aacbe559
で説明されていた「Apache+mod_php+webアプリケーション」がなんとなくわかりやすかったです。
npm
Node.jsのパッケージマネージャー
やりかた
RaspberryPiのセットアップ
うっかり4GBのSDカードを買ったのでRaspbianのLiteじゃない版が入らなくて、CUIのみのLITE版をインストールする
- リンク先からRaspbian jessie Liteをダウンロード
- ちょっと忘れてしまったので割愛します
- が、MacのterminalからSDカードにosのイメージを書き込みました
- RaspberryPiの環境セットアップ
- Wifi設定とSSH接続できるようにする
この辺も忘れてしまいました…
Homebridgeのインストール
NodeJSのインストール
HomebridgeのWikiを参考にしてインストールを行いました
apt-getの更新
sudo apt-get update
sudo apt-get upgrade
gitとmakeのインストール
sudo apt-get install git make
(HAP-NodeJSかどこかで使われているみたいで、これがないとエラーがでました)
NodeJSのインストール
最初は適当にやっていたのですが、エラーがたくさん出たので色々探していて、homebridgeのwikiにあったリンクでやると通ったのでおとなしく従ったほうが良いと思いました。
RaspbianのJessieだとg++のインストールはいらないのですが、Wheezyはver4.9を使う設定にする必要があるみたいなので、HomebridgeのWikiに従って行いました。
- nodebrewのインストール
nodebrewを使ってNodeJSのバージョン管理をやろうと思ったのでとりあえず入れます
curl -L git.io/nodebrew | perl - setup
パスを指定
export PATH=$HOME/.nodebrew/current/bin:$PATH
- nodeのインストール
nodebrewをつかってNodeJSをインストール
nodebrew install-binary stable
使うバージョンを指定
nodebrew alias default v6.1.0
- npmのインストール
sudo apt-get install npm
- /usr/localにコピー(なんかいろいろやった挙句これをやったらhomebridgeがインストールできた)
sudo cp -R * /usr/local/
追記
場所をcd /home/pi/.nodebrew/node/v6.2.2/
に移動してからsudo cp -R * /usr/local/
を行う
Homebridgeのインストール
sudo npm install -g homebridge
LEDの配線を行う
RaspberryPi3のピン配置を参考にBCM14とGroundにジャンパー線を入れる
LEDは足が長いほうから足が短いほうに流れる
プラグインのインストール
BCM14を出力に指定する
echo 14 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio14/direction
□追記
この方法だとRaspberryPiをリブートした時にリセットされてしまうため、毎回このコマンドを叩く必要があるみたいです
(/etc/init.d/に起動スクリプトを置くと良いみたいです)
LEDをONにする(つないだ時点ですでに光ってる)
echo 1 > /sys/class/gpio/gpio14/value
LEDをOFFにする
echo 0 > /sys/class/gpio/gpio14/value
のコマンドを叩くとON/OFFを操作できるため、今回はSiriからコマンドでON/OFFを操作するプラグインをインストールする。
https://github.com/senyoltw/homebridge-cmd
sudo npm install -g homebridge-cmd
プラグインのセットアップ
先ほど書いたコマンドで操作するため、.homebridge/config.json
を作成し、その中に下記を記述します。
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "031-45-154"
},
"description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",
"accessories": [
{
"accessory": "CMD",
"name": "LED",
"on_cmd": "echo 1 > /sys/class/gpio/gpio14/value",
"off_cmd": "echo 0 > /sys/class/gpio/gpio14/value"
}
]
}
username
は私の使っているRaspberryPiのMACアドレスに変更しましたが、小文字で表記するとエラーが出ました。
on_cmd
とoff_cmd
に先ほどのON/OFFのコマンドを書いておきます。
iPhoneアプリのインストール
insteon+をインストールしました。
HomebridgeのPINを入力します(この場合は"031-45-154")
これで動くはず
参考文献
http://senyoltw.hatenablog.jp/entry/2015/12/07/052951
すごく参考にさせていただいて、プラグインも使用させていただきました。
https://github.com/nfarina/homebridge/wiki/Running-HomeBridge-on-a-Raspberry-Pi
http://qiita.com/hshimo/items/1ecb7ed1b567aacbe559