「Hey, Siri! LEDつけて」でLEDを点灯させる

More than 3 years have passed since last update.


前提

RaspberryPi初めて使ったメモ


やりたいこと

「Hey, Siri! LEDつけて」でLEDを点灯させる


やる方法

AppleのSiriのHomekitを使ってRaspberrypi3に接続したLEDを光らせる


使うもの


  • Raspberry Pi 3



  • 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版をインストールする


  1. リンク先からRaspbian jessie Liteをダウンロード

  2. ちょっと忘れてしまったので割愛します

  3. が、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は足が長いほうから足が短いほうに流れる

IMG_1813.JPG


プラグインのインストール

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_cmdoff_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