Amazon Echoで照明を操作する


Amazon EchoはSmart Homeとの連携ができPhillipsのHueと言った照明を音声でコントロールすることが出来ます。

けど、ちょっと試したいって時に、Hueはちょっと高いんですよね。。

いろいろ調べていたら、Raspberry Piで試せそうでした。(Intel Edisonでも動きます)

参考にしたのはこちらのサイト。
Home Automation with Amazon Echo voice control

サイトのサンプルではログを表示するだけでしたので、GPIOを利用してAmazon EchoからLチカしてみました。

Raspberry Pi Smart Home
デバイスの検出と操作動画

手順

配線

Raspberry PiのGPIO 4を使うので、以下のように配線します。

Raspberry Piでサンプルコード実行

元のソースを少しいじって、GPIOでLチカできるようにしてます

git clone https://github.com/sparkgene/echo.git
cd echo
sudo python example-gpio.py

違うPINを使う場合は、以下のところを直してください。
https://github.com/sparkgene/echo/blob/master/example-gpio.py#L10

Amazon Echoからデバイスを探す

Alexa, discover my devices と語りかけると同じネットワークにあるデバイスを探してくれます。

デバイスが見つかると、Echoの管理画面に表示されます。

Lチカ

ONにするときは Alexa, turn on living
livingはサンプルの中でそのように命名しているからで、お風呂場だったらbathroomのように変えてあげればいい。
https://github.com/sparkgene/echo/blob/master/example-gpio.py#L18

Offにするときは Alexa, turn off living

Alexaは違う言い方でも対応しており、単純に Alexa, living onAlexa, living off でも操作できます。

あとがき

実際に家の照明を操作するとした場合、今回利用したLEDの代わりにリレーなどを使って、照明の電源をOn/Offする形になります。

けど、実際にこれを壁のスイッチの所に埋め込むのは大きすぎて厳しいですね。
やはり市販のものみたいに、コントローラとなるものは別置きにして、照明とコントローラ間は別の通信方法にするか、Wi-Fiとマイコン部分が専用なものにできれば、自作できるのかな。

また、Echo → Skill → Lambda → Raspberry Piという作りこみをすることで、ネット経由で外部からも操作できるようになりますが、それなりのタイムラグが出てしまいます。
照明みたいな家電を操作するぐらいは、今回のサンプルのように直接操作できたほうがストレスも無いし、大掛かりにならないので向いてると思います。