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

  • 28
    いいね
  • 0
    コメント

前提

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