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をつくようにします。
今回は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をつないで家電制御をすることも可能とのこと。
プラグインを使えば、もうちょっと複雑なこともできるみたいですから、夢が広がりそうです。
せっかく構築した環境なので、何か面白い使い道がないか考え中です。
![]() |
« ASUS Zenfone 3発表!メモリ6GB ストレージ64GBで約55,000円 | トップページ | ナンバープレートに取り付けて駐車時の衝突を防ぐセンサー”Fender Defender” »
「Raspberry Pi・Arduino・電子工作」カテゴリの記事
- 名古屋 大須へ行ってきました(2024.04.28)
- Raspberry Pi 5用電源購入(2024.04.19)
- Interface 2024年5月号はRaspberry Pi 5特集(2024.03.26)
- Raspberry Pi 5とPCがつながらなかった理由は「プライバシーセパレーター機能」のせいでした(2024.03.12)
- Raspberry Pi 5に日本語LLM(ELYZA-Japanese-Llama-2-7b-fast-Instruct)を入れてみた(2024.03.10)
コメント
« ASUS Zenfone 3発表!メモリ6GB ストレージ64GBで約55,000円 | トップページ | ナンバープレートに取り付けて駐車時の衝突を防ぐセンサー”Fender Defender” »
アップルウォッチに向かって
「マーベラー!!!!」
って叫ぶんですね(w
投稿: mokekyo | 2016年6月 3日 (金) 08時03分
こんにちは、mokekyoさん。
変形ロボですか、難易度高そうですね。
Siriに認識させるには、後ろに動詞をつけないといけないようなので「マーベラーを変形させて」とでもいうんでしょうか?カコワルイ…
投稿: arkouji | 2016年6月 4日 (土) 07時47分