Google Home、IFTTT、Firebase、Node.jsを使ってドローンを操作する

[前回の記事](https://qiita.com/h-takauma/items/54e968268afeaadbd6b4)ではHoloLensを使ってドローンを操作することを行いました。
今回はそれの応用で、Google Homeを使ってIFTTTと連携し声でドローンを操作してみました。
ほぼ前回の記事と流れは同じです。

#環境
* [Google Home](https://store.google.com/product/google_home?hl=ja)
* [IFTTT](https://ifttt.com/)
* [Firebase](https://firebase.google.com/?hl=ja)
* [Raspberry Pi Zero W](http://ssci.to/3200)
* [node-rolling-spider](https://github.com/voodootikigod/node-rolling-spider)
* [Parrot MAMBO](https://www.parrot.com/jp/minidoron/parrot-mambo-mission)

![s109.JPG](https://qiita-image-store.s3.amazonaws.com/0/154355/86d38c35-3f86-8a96-d905-eff0bf7ce69e.jpeg)

#動作デモ
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">GoogleHomeでドローンを声で操作してみた。 <a href="https://twitter.com/hashtag/%E3%83%89%E3%83%AD%E3%83%BC%E3%83%B3?src=hash&amp;ref_src=twsrc%5Etfw">#ドローン</a> <a href="https://twitter.com/hashtag/GoogleHome?src=hash&amp;ref_src=twsrc%5Etfw">#GoogleHome</a> <a href="https://twitter.com/hashtag/Firebase?src=hash&amp;ref_src=twsrc%5Etfw">#Firebase</a> <a href="https://twitter.com/hashtag/Nodejs?src=hash&amp;ref_src=twsrc%5Etfw">#Nodejs</a> <a href="https://t.co/dufp8RGTul">https://t.co/dufp8RGTul</a></p>&mdash; がおまる@HoloLens研究者 (@gaomar) <a href="https://twitter.com/gaomar/status/933258467103588354?ref_src=twsrc%5Etfw">2017年11月22日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

#処理の流れ
![HomeDrone仕組み.001.png](https://qiita-image-store.s3.amazonaws.com/0/154355/a0f768e6-0f92-f6de-08fe-636d88db3bc6.png)

#導入
[導入](https://qiita.com/h-takauma/items/54e968268afeaadbd6b4#導入)〜[Node.jsにFirebase環境構築](https://qiita.com/h-takauma/items/54e968268afeaadbd6b4#nodejs%E3%81%ABfirebase%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89)まで行ってください

#IFTTTの設定
ここからIFTTTの設定を行います。
IFTTTの[サイト](https://ifttt.com/)へログインしレシピを作成しましょう。
this部分をクリックしましょう

![s100.png](https://qiita-image-store.s3.amazonaws.com/0/154355/8e7f8f7d-167e-e219-9daf-e0b0b7c8811a.png)

###Google Assistantの設定
Google Assistantを検索します。
![s101.png](https://qiita-image-store.s3.amazonaws.com/0/154355/6bae30a7-667a-7011-5cb9-c7002269adea.png)

`Say a phrase with text ingredient`を選択します
![s102.png](https://qiita-image-store.s3.amazonaws.com/0/154355/20b8ac4f-7f33-0aaa-c12c-090827bb12fd.png)

What do you want to say?にGoogle Homeに反応させるワードを登録します。
`$`で書いてる所に様々なワードが入ってくるイメージです。
例えばここに、「離陸」や「着陸」といったワードが入ってきます。

![s103.png](https://qiita-image-store.s3.amazonaws.com/0/154355/7c5b761a-a780-5dda-34ea-f7192b12ece5.png)

###Webhooksの設定
続いてthatの部分を登録していきます。Firebaseに値を書き込みたいので、
Webhooksで連携します。

![s104.png](https://qiita-image-store.s3.amazonaws.com/0/154355/2446e018-9a3f-5c9d-ae73-5161588470b1.png)

Webhooksを検索します。
![s105.png](https://qiita-image-store.s3.amazonaws.com/0/154355/31c53a94-7501-e09f-8a2b-bcd1e21530b8.png)

`Make a web request`をクリックします。
![s106.png](https://qiita-image-store.s3.amazonaws.com/0/154355/60ecb83d-04d8-c8a2-acb8-70a30b082d62.png)

URLにFirebaseに書き込むためのURLを指定し、Methodは`PUT`でContent Typeは`application/json`を指定します。
Body部分に`{{TextField}}`と入力します。

![s107.png](https://qiita-image-store.s3.amazonaws.com/0/154355/6f54fce4-9a76-e2b9-071e-279a3ee9901f.png)

これでレシピは完成です。
![s108.png](https://qiita-image-store.s3.amazonaws.com/0/154355/ed683687-cd83-a300-0b77-6cacc72028e1.png)

#まとめ
簡単にGoogle Homeと連携出来ました。
ただ１点問題があり、ドローンの音が大きすぎて声がGoogle Homeに届かないという残念な事になります。
静かな部屋にGoogle Homeを置いて、別の部屋にドローンを置いて遠隔で指示するというのは可能なので、そういうシーンで使うのが良いかもしれませんね。