プログラミングじゃあないんですが、IoTの話なので記事にしちゃいます。
細かい手順は、偉大なる先輩方が細かく書いていらっしゃるので、概要までにしておきます。
できるようになったこと
Amazonのスマートスピーカー「Alexa」を使って、声で家電を操作。
- テレビ
- エアコン
- 電気(照明)
- PS4
用意したもの
- スマートスピーカー(Amazon Alexa)
- スマートリモコン(NatureRemoMini)
- 家電にもともとついていたリモコン
PS4の操作用に
やり方
PS4以外の操作
NatureRemo(スマートリモコン)の機能で、プログラミングなしにできてしまいます。
AmazonEchoの初期セットアップ(専用のスマホアプリ使用)
- Amazonのアカウントでログインして使えるようにする
- スキルを有効にする。スキルとは発声に対応するサービスのこと(ざっくり解釈)。
NatureRemoMiniの初期セットアップ(専用のスマホアプリ使用)
- 家電を登録する
- 登録した家電に対する操作を覚えさせる。具体的には家電リモコンの赤外線を覚えさせる。
PS4の操作
RaspberryPiへのインストール
- node.js
- node-red
- ps4-waker
ps4-wakerの準備
最初にPS4側も設定する必要がある。このへんは先輩方の記事を参照ください。
Google Homeに話しかけてPS4を操作してみる
RaspberryPiのコンソールからps4-wakerを実行して、PS4を起動/停止できることを確認しておく。
sudo ps4-waker
sudo ps4-waker standby
詳しくはps4-wakerのreadmeを参照ください。
node-redの準備
デバイスをNode-red Alexa Home Skill Bridge(node-redのwebサービス側)に登録。
ここで登録した名前がAlexaに呼びかけるときの名前となる。
自分の場合は、「プレステ」でON/OFFスイッチ制御するデバイスとして登録。
操作する機器は同じだが「トルネ」も登録した。
(その他謎のキーワードが登録してありますが、ワードが長すぎたのかうまく反応しませんでした。)
- RaspberryPiにインストールしたnode-redを起動
node-red
- ブラウザからnode-redのエディタ(パレット)にアクセス。
-
Node-red Alexa Home Skill Bridgeで登録しておいたデバイスをパレット上に貼り付けて、そのデバイスへの処理を登録。ここではPS4を操作したいので、最後に「ps4-waker」をcallするよう登録。
(なんか試行錯誤の跡がそのまま残っていますが気にしないでください…結局ON/OFFしかできませんでした)
仕組み
PS4起動を例に図を描きました。
おそらくNatureRemoによる家電の操作も同じような仕組みでしょう。
ろくに調べずに書いていますので、私のざっくり解釈です…
偉大なる先輩方の記事
@miso_develop 様 - Google Homeに話しかけてPS4を操作してみる
@machu 様 - Amazon Echoで「○○をつけて」と言って家電を操作する
CHASUKE.com 様 - Alexaスマートホームスキル『Node-RED』を使ってみた