Raspberry Piを音声でコントロールする方法はありますが、最強の音声認識であるSiriを使う方法です。
「homebridge」というやつを使えばiPhone等のSiriでRaspberry Piをコントロールできると聞いて
「Hey, Siri! LEDつけて」でLEDを点灯させる - Qiita
早速やってみました。
ただし、上のサイトの情報だけではうまくいかず。以下のサイトも参考にしました。
Raspberry Pi + HomeKit + IRKit = Siriで家電を音声操作できるようにする | AWS~セキュリティまで データホテルのテックブログ
まずは、Raspberry PiでLEDをつくようにします。
今回は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
紆余曲折ありましたが、実行するとこんな画面が出てるはず。
灰色の四角に囲まれた8桁の数字、これがこのhomebridgeのIDのようです。
続いて、iPhone側に次のアプリをインストール。
AppStore:Insteon+を App Store で
このinsteon+を開きます。最初のログイン時にアカウント登録をする必要があります。
登録して起動するとこんな画面が出ます。
「Home」-「All room」-「All Devices」の順にタップし、右上の”+”アイコンをタップ。
「Add Device」をタップ。
レーダーっぽい画面が出ますが、一番下に”Homebridge”が出てます。これをタップ。
変な警告が出ますが無視して”このまま追加”をタップ。
「コードを手動で入力」をタップ。
homebridgeを起動しているターミナルに表示された8桁の数字を打ち込みます。
アイコンやデバイス名を変えられますが、とりあえずそのまま。
こんな感じに登録されました。config.jsonがうまく認識されていれば”LED”というのも出てきます。
では早速、Siriを使ってみます。
私の端末は”Hey!Siri”で起動しないため、ホームボタンを長押ししてSiriを起動。
「LEDをつけて」というと、LEDがオンになります。
「LEDを消して」というと、LEDがオフになります。
とりあえず、成功です。
これ、Apple WatchとリンクしたiPhoneなら、Watch上からも使えます。
これを応用すれば、この間作った4足歩行ロボットもSiriで制御できそうですね。
参照記事の2つ目にもある通り、IR-KitとRaspberry Piをつないで家電制御をすることも可能とのこと。
プラグインを使えば、もうちょっと複雑なこともできるみたいですから、夢が広がりそうです。
homebridge プラグイン
せっかく構築した環境なので、何か面白い使い道がないか考え中です。
最近のコメント