LoginSignup
9

More than 5 years have passed since last update.

GoogleHome x IFTTT で、寝る前にかかとにクリームを塗る!

Last updated at Posted at 2017-12-05

(2018.5.13 "Raspberry Piをインターネットからアクセスできるようにする"のところのngrokのクライアントインストール方法の書き方が雑だったので、丁寧にしました。)

スマートスピーカーIFTTT 大喜利 アドベントカレンダー5日目です。

この間、友人とスーパー銭湯に行ったら、「かかとにクリームを45日連続塗ったところ、この時期にありえないくらいスベスベである」というのです。

仕事できておしゃれで美人のうえ、しなくて充分なのに最近筋トレでダイエットもし、さらに猫も飼っているという完璧超人の上に、

 
_人人人人人人人人 人人人人人人人人人_
> 冬なのにかかとがスベスベだと!!!  <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
 

じぶんも早速塗らなければ!
しかし立ちはだかる三日坊主という病の壁。。。うう
そこでイフトですよ!

今回のは力作です。
本来12/5の0時に更新するはずが、12/5 23時更新になってしまいましたが、仕方ないのです!

やりたいこと

  • タイトル:かかとクリーム塗りわすれリマインダー
  • 内容:毎日夜11時になると「かかとにクリーム塗った?」とGoogle Homeが教えてくれる
  • システム構成:
    • IFTTT
    • Ngrok
    • Raspberry Pi3
    • Google Home Mini

作り方

Raspberry Pi3のセットアップ

OSインストール / wi-fi接続 /ssh接続 が済んでるものを使用します。

  • node, npm の最新版インストール

    • →以前やってあったのでスルー
  • Macのターミナルからsshでラズパイに接続し、google-home-notifierからzipをダウンロードする

$ ssh pi@192.168.自分の家のラズパイのIP
$ cd Documents
$ mkdir GoogleHome
$ cd GoogleHome
$ git clone https://github.com/noelportugal/google-home-notifier
$ cd google-home-notifier
  • npmでgoogle-home-notifierをインストールと、nodejsの最新版のインストール
$ curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
$ sudo apt-get install nodejs
$ sudo apt-get install git-core libnss-mdns libavahi-compat-libdnssd-dev
$ pwd
/home/pi/Documents/GoogleHome/google-home-notifier
$ npm install

Raspberry Piをインターネットからアクセスできるようにする

参考)ngrokでRaspberry Piのデスクトップをインタネットに公開

  • Ngrokクライアントをラズパイにインストール
$ cd /home/pi/Documents/GoogleHome/google-home-notifier/
$ wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm.zip
$ unzip ngrok-stable-linux-arm.zip

ngrokというディレクトリができる。

  • 続けてNgrokのサイトでアカウント登録。
    • https://dashboard.ngrok.com/get-started
    • 無料コースで良い。
    • トークンが発行されるのでコピーする。
    • (二回目以降のアクセスの際は、)Dashboard > Auth > Your Tunnerl Authtoken で閲覧できるのでコピーする。
$ cd /home/pi/Documents/GoogleHome/google-home-notifier/
$ ./ngrok authtoken xxxxxxxxxxxxxxxxx(発行されたトークンを入れる)
$ ./ngrok http 8091

80ではなく、google-home-notifierに合わせて8091を指定するのがポイント。
これでngrokのリスナーが起動した。以下のような画面が表示される。

スクリーンショット 2017-12-05 21.07.27.png

http://f2bca69c.ngrok.io」 のところが、自分のラズパイにインストールしたngrokクライアントに割り当てられたサブドメイン。
ngrokジョブをctrl+cで停止して起動するたびに新しいものが発行されるので、この記事が公開されるときにはもうこの世から消えてます。ひひひ。

  • Macでもう一枚ターミナルを開いてラズパイにssh接続し、google-home-notifierを起動する
$ ssh pi@192.168.自分の家のラズパイのIP
$ cd /home/pi/Documents/GoogleHome/google-home-notifier
$ node example.js

Endpoints:
    http://192.168.0.20:8091/google-home-notifier
    undefined/google-home-notifier
GET example:
curl -X GET undefined/google-home-notifier?text=Hello+Google+Home
POST example:
curl -X POST -d "text=Hello Google Home" undefined/google-home-notifier

このコンソールを開いておきます。受け取ったアクセスの変数が見れます。
終了するときはctrl+c。
もちろん末尾に&をつけてバックグラウンド実行しても良い。

$ node example.js&

Google Homeを外から叩いて喋らす

  • Macでもう一枚ターミナルを開いて、example.jsが表示してくれたサンプルコマンドに、ngrokが発行したサブドメインをつけてリクエストする。
curl -X GET http://f2bca69c.ngrok.io/google-home-notifier?text=Hello+Google+Home

curl -X GET http://f2bca69c.ngrok.io/google-home-notifier?text=kakatoni+cream+nutta??

Google Homeが喋った!!!
でも声がいつものGoogleHomeじゃない!(^^;) ナンジャコリャー!

Hello+Google+Home
https://youtu.be/CK6iNfuCAeE

kakatoni+cream+nutta??
https://youtu.be/q11_681-a3I

以前買った中華Bluetoothスピーカーの起動音声に似てるというか。。
https://youtu.be/HtM5n1nrv5M

めちゃめちゃなまってるなぁ。インド風?

IFTTTを作る

ここまでで力尽きたので、イフトは最低限にしておきます!

概要

名前:毎日決まった時間に、GoogleHomeにリマインダーを喋ってもらう
URL:非公開
使ったもの:Date & time, Webhooks
言語:特に指定なし。

スクリーンショット 2017-12-05 22.39.59.png
スクリーンショット 2017-12-05 22.40.15.png

IF

  • Trigger:Date & time , "Every day at"
  • 11 PM
  • 00 Minutes を指定。

then

  • Action: Webhooks "Make a web request"
  • URL:[Chosen by user]
  • Method:[Hidden from user]
    • POST
  • Content Type:[Hidden from user]
    • application/x-www-form-urlencoded
  • Body:[Chosen by user]
    • text=”Did you put cream on your heel?"

時間ぴったりに、
ポヨヨン Did you put cream on your heel?
と喋って教えてくれました!!

やったー

これでかかとスベスベになったるでー

課題

  • 日本語で喋らせたい。
  • 再起動するたびにサブドメインが変わってしまうngrokでは長く使えない。URLを固定にした上で、セキュリティ的にも忖度したい。

以上です!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9