« ASUS Zenfone 3発表!メモリ6GB ストレージ64GBで約55,000円 | トップページ | ナンバープレートに取り付けて駐車時の衝突を防ぐセンサー”Fender Defender” »

2016年6月 2日 (木)

Raspberry PiをSiriで操作してみた(Lチカ)

Raspberry Piを音声でコントロールする方法はありますが、最強の音声認識であるSiriを使う方法です。

「homebridge」というやつを使えばiPhone等のSiriでRaspberry Piをコントロールできると聞いて

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

早速やってみました。

ただし、上のサイトの情報だけではうまくいかず。以下のサイトも参考にしました。

Raspberry Pi + HomeKit + IRKit = Siriで家電を音声操作できるようにする | AWS~セキュリティまで データホテルのテックブログ

まずは、Raspberry PiでLEDをつくようにします。

20160530_11_09_38

今回はRaspberry Pi 3を使用。LEDと150Ωの抵抗をブレッドボードに挿し、LEDのマイナス極側をRaspberry Piの6番ピン(GND)に、プラス側(LEDの足の長い電極側)を8番ピン(GPIO 14)に接続。

このGPIO 14に接続したLEDをコマンド上で実行できるようにします。

Raspberry Piを起動し、SSHで接続。以下のコマンドを実行。

echo 14 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio14/direction

これでコマンド上からLEDを実行できるようになります。

LEDをオンにしたいときは

echo 1 > /sys/class/gpio/gpio14/value

オフにするときは

echo 0 > /sys/class/gpio/gpio14/value

と打ち込みます。

LEDがオン/オフするのを確認したら、これをSiriで実行できるようにするため”homebridge”というのをインストールします。

これが少々難儀しました。

まずはお約束の2行を実行

sudo apt-get update
sudo apt-get upgrade

続いて、必要なものをインストールしておきます。

sudo apt-get install git make libavahi-compat-libdnssd-dev

makeなんて最初から実装しているものですが、なぜこれがいるのかはわかりません。が、確かにインストールしないと動きませんでした。

続いて、node.jsをインストール。

wget https://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-armv6l.tar.gz
tar -xvf node-v4.0.0-linux-armv6l.tar.gz
cd node-v4.0.0-linux-armv6l
sudo cp -R * /usr/local/

そのあとに”homebridge”をインストールします。

sudo npm install -g homebridge

コマンドをSiriから実行させるため、homebridge-cmdというプラグインもインストールする必要があるそうです。

sudo npm install -g homebridge-cmd

これでhomebridgeのインストール完了。

続いて、環境設定。

ホームディレクトリ(/home/pi/)に.homebridgeというディレクトリを作成。

mkdir .homebridge

そのディレクトリに入り

cd  .homebridge

”config.json”というファイルを作成します。

vi config.json

中身は以下のコードを入れます。

{
    "bridge": {
        "name": "Homebridge",
        "username": "(Raspberry PiのMACアドレス)",
        "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"
        }
    ]
}

まんまリンク先のソースコードを使いましたが、”usename”のところにあるMACアドレスは機種ごとに違うため注意。

”ifconfig”コマンドで、有線LANなら”eth0”の、無線LANなら”wlan0”の項目の”HWaddr”の後ろの項目をコピペ。ただしアドレスのアルファベットの部分は大文字に直します。

この段階でhomebridgeを実行。

homebridge

ところで、私の環境ではなぜか実行できず。

sudo homebridge

と打ったら動きました。

この場合、先ほどのconfig.jsonは/home/pi/.homebridgeではなく/root/.homebridgeの方を読みに行くため、コピーしておきます。

sudo cp /home/pi/.homebridge/config.json /root/.homebridge

紆余曲折ありましたが、実行するとこんな画面が出てるはず。

Raspi_siri01

灰色の四角に囲まれた8桁の数字、これがこのhomebridgeのIDのようです。

続いて、iPhone側に次のアプリをインストール。

AppStore:Insteon+を App Store で

このinsteon+を開きます。最初のログイン時にアカウント登録をする必要があります。

登録して起動するとこんな画面が出ます。

20160530_17_31_32

「Home」-「All room」-「All Devices」の順にタップし、右上の”+”アイコンをタップ。

20160530_17_36_33

「Add Device」をタップ。

20160530_16_30_12

レーダーっぽい画面が出ますが、一番下に”Homebridge”が出てます。これをタップ。

20160530_16_39_22

変な警告が出ますが無視して”このまま追加”をタップ。

20160530_16_30_38

「コードを手動で入力」をタップ。

20160530_16_39_32

homebridgeを起動しているターミナルに表示された8桁の数字を打ち込みます。

20160530_16_39_42

アイコンやデバイス名を変えられますが、とりあえずそのまま。

20160530_17_42_33

こんな感じに登録されました。config.jsonがうまく認識されていれば”LED”というのも出てきます。

では早速、Siriを使ってみます。

私の端末は”Hey!Siri”で起動しないため、ホームボタンを長押ししてSiriを起動。

20160530_16_43_40

「LEDをつけて」というと、LEDがオンになります。

20160530_16_43_51

「LEDを消して」というと、LEDがオフになります。

20160530_16_43_30

20160530_16_44_10

とりあえず、成功です。

これ、Apple WatchとリンクしたiPhoneなら、Watch上からも使えます。

これを応用すれば、この間作った4足歩行ロボットもSiriで制御できそうですね。

参照記事の2つ目にもある通り、IR-KitとRaspberry Piをつないで家電制御をすることも可能とのこと。

プラグインを使えば、もうちょっと複雑なこともできるみたいですから、夢が広がりそうです。

homebridge プラグイン

せっかく構築した環境なので、何か面白い使い道がないか考え中です。

IRKit - iPhone,iPadを使って外出先からエアコン等の家電を操作できる学習リモコン

« ASUS Zenfone 3発表!メモリ6GB ストレージ64GBで約55,000円 | トップページ | ナンバープレートに取り付けて駐車時の衝突を防ぐセンサー”Fender Defender” »

Raspberry Pi・Arduino・電子工作」カテゴリの記事

コメント

アップルウォッチに向かって
「マーベラー!!!!」
って叫ぶんですね(w

こんにちは、mokekyoさん。

変形ロボですか、難易度高そうですね。

Siriに認識させるには、後ろに動詞をつけないといけないようなので「マーベラーを変形させて」とでもいうんでしょうか?カコワルイ…

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/510034/63706340

この記事へのトラックバック一覧です: Raspberry PiをSiriで操作してみた(Lチカ):

« ASUS Zenfone 3発表!メモリ6GB ストレージ64GBで約55,000円 | トップページ | ナンバープレートに取り付けて駐車時の衝突を防ぐセンサー”Fender Defender” »

当ブログ内検索

  • カスタム検索

スポンサード リンク

ブログ村

無料ブログはココログ