まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません

Googlehomeで好きな言葉をしゃべらせる その1

IFTTTで出力の部分をGoogleアシスタントにできないので、現状Dialogflow(GoogleBot制作サービス)を使わない限りコードを書かずにしゃべらせるということはできません。
ここではサーバーサイドのjavascriptと言われるnode.jsのお勉強も兼ねて、node.jsのライブラリである「google-home-notifier」を使って何かしゃべってもらおうと思います。
node.jsなにそれおいしいの?レベルでも大丈夫です。
なおラズパイではなくMac+Atomを使用しています。

●node.jsのインストール
1.こちら
Node.js
にアクセスして、自分に合った環境のnode.jsをダウンロード+インストール
2.ちゃんとインストールされているか確認するために、ターミナルで「ユーザー名$」の後に「node -v」と入力してエンターキーを押す。バージョン名が表示されればOK

ユーザー名$ node -v

3.同様にターミナルで「ユーザー名$」の後に「npm -v」と入力してエンターキーを押す。バージョン名が表示されればOK

ユーザー名$ npm -v

google-home-notifierのインストール
1.「ユーザ名$」の後に「npm install google-home-notifier」と入力してエンターキーを押す

●エディタ「Atom」でnode.jsを動かすテスト
ターミナルでやるのが定石なのでしょうが、個人的にはエディタでやりたい派なのでAtomを使ってみました。
1.Atomをインストールする
atom.io
2.「Atom」メニュー→「Prefernces」→「+ Install」をクリックし、「atom-beautify」と入力して「Packages」をクリックする。ソースコードを見やすくしてくれるパッケージです
3.「atom-beautify」の「Install」をクリックする
4.2-3と同じ方法で、下記のパッケージをインストールします
・script いろんな言語を実行する。Macの場合はCommand+iで実行
atom-ternjs javascript補完ツール
・platformio-ide-terminal ターミナルが使える。+アイコンで起動
・autoclose-html HTMLで閉じたタグを自動で入力
5.「File」メニュー→「Save As」をクリックし、名前は英字で拡張子「.js」をつけて保存。ここでは「index.js」として保存する
6.「index.js」に下記を入力する。こちら
www.youtube.com
の映像を参考にさせて頂きました(英語)。

var array = ['おはよう','こんにちは','こんばんわ'];

for (var i = 0; i < array.length; i++) {
  console.log(array[i]);
}

7.「File」メニュー→「Save」で保存する
8.「platformio-ide-terminal」がインストールされていれば左下に「+」アイコンが出てくるので、それを押してターミナルを起動
9.「Macの名前:5のファイルがある場所 ユーザ名$」と出てくるので、「ユーザ名$」の後に「node 5.のファイル名」と入力してエンターキーを押す
例:My-iMac:nodejsTestFolder MYUSER$ node index.js
10.下記のような結果になればOK
おはよう
こんにちは
こんばんわ

●Googlehomeにしゃべらせる
ようやくgoogle-home-notifierでしゃべらせることができます。
google-home-notifierのGithubに書かれているものを日本語用に改良しています。
googlehome.deviceのところはサンプル通り'Google Home'でもいけるのですが、出てきたデバイス名が"Google-Home-ID名"なっていたのでGoogle-Homeとしています。

1.Atomの「File」メニュー→「New File」を選択して新しいファイルを作る
2.「File」メニュー→「Save As」をクリックし、名前は英字で拡張子「.js」をつけて保存。ここでは「ghtalktest1.js」として保存する
3.下記を入力する。日本語の文字列「'ハローワールド、私はグーグルホームです。'」のところはお好きな言葉でOKです。

var googlehome = require('google-home-notifier');
var language = 'ja'; 

googlehome.device('Google-Home', language); 
googlehome.notify('ハローワールド、私はグーグルホームです。', function(res) {
  console.log(res);
});

4.「File」メニュー→「Save」で保存する
5.「platformio-ide-terminal」がインストールされていれば左下に「+」アイコンが出てくるので、それを押してターミナルを起動。
すでに起動している場合は何もせず6.を行う
6.「Macの名前:5のファイルがある場所 ユーザ名$」と出てくるので、「ユーザ名$」の後に「node 2.のファイル名」と入力してエンターキーを押す
例:My-iMac:nodejsTestFolder MYUSER$ node ghtalktest1.js
7.キェェェシャベッタァァァ!