ESP32をAlexaからスマートホームデバイスとして使う

#参考サイト

今回のメインとなるライブラリ：
https://github.com/igorantolic/esp32-alexa-wemo-emulator

WiFi使用時のanalogReadについて：
http://rikoubou.hatenablog.com/entry/2017/07/26/193021

#環境
　・macOS Mojave 10.4
　・Arduino IDE 1.8.5
　・ESP32 DEVKIT
　・Amazon echo Dot
　・Alexaアプリ

#目標
　「Alexa、おはよう」と言うとESP32につながっているLEDをONさせる
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">ESP32とALEXAをつないだ<a href="https://twitter.com/hashtag/esp32?src=hash&amp;ref_src=twsrc%5Etfw">#esp32</a> <a href="https://twitter.com/hashtag/alexa?src=hash&amp;ref_src=twsrc%5Etfw">#alexa</a><a href="https://t.co/o7jhsEg8JO">https://t.co/o7jhsEg8JO</a></p>&mdash; Peppei (@Peeeeepei) <a href="https://twitter.com/Peeeeepei/status/1092788715712241664?ref_src=twsrc%5Etfw">2019年2月5日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 

#ESP32側
　基本的にサンプルコードそのまま。
##１．ライブラリをダウンロード
[こちら](https://github.com/igorantolic/esp32-alexa-wemo-emulator)からzip形式でダウンロード

##２．ライブラリフォルダに移動
zipを解凍し、フォルダごとライブラリフォルダに移動
<img width="425" alt="スクリーンショット 2019-02-05 23.20.05.png" src="https://qiita-image-store.s3.amazonaws.com/0/84072/eb91b050-d97d-ffbb-16a1-881abb0bd82a.png">

##３．サンプルコードを書く
###サンプルコードを開く
先程移動したフォルダの中に`examples`フォルダがあるのでその中の`SingleSwitch`を開く。
<img width="761" alt="スクリーンショット 2019-02-05 23.21.21.png" src="https://qiita-image-store.s3.amazonaws.com/0/84072/6aa7a663-d454-cbe2-6e22-32c16ad1aa72.png">

###`ssid`と`password`を変更し書き込み
15行目と16行目を変更します
<img width="475" alt="スクリーンショット 2019-02-05 23.24.01.png" src="https://qiita-image-store.s3.amazonaws.com/0/84072/3e5ac4e0-b84b-f1c3-2aa2-a5f44ee50cdc.png">

###WiFi接続確認
シリアルモニタを確認し、接続できているようであればOK
<img width="858" alt="スクリーンショット 2019-02-05 22.59.04.png" src="https://qiita-image-store.s3.amazonaws.com/0/84072/023508bf-8f85-fb21-ea62-60280ed87654.png">


#Alexa側
　※Echo Dotの設定はすでに完了している前提です
　ここからはAlexaアプリで設定するだけ。ESP32はプラグとして認識されるようです。

##デバイスを追加する
###デバイスを追加
<img width="375" alt="IMG_4456.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/84072/9e3375d6-b4d7-2b0b-a206-b972df4b8cbf.png">

###プラグを選択
<img width="375" alt="IMG_4457.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/84072/d1105eca-22d9-997f-52db-1d0d6dac074f.png">

###その他を選択
<img width="375" alt="IMG_4458.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/84072/c3d0945b-02a8-c196-f012-9f68dd83e41b.png">

###デバイスを検出を選択
<img width="375" alt="IMG_4459.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/84072/bdb331cd-351b-49e4-6ee0-c452a7c07b17.png">

↓検出完了
<img width="375" alt="IMG_4462.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/84072/345c0801-8cf1-6286-728e-1e15f2f47917.png">


##定型アクションを作成
開始フレーズを入力し、先程認識されたデバイスに対してのアクションを追加します。
<img width="375" alt="IMG_4471.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/84072/b03e8165-a0ec-512c-78f7-6379c4fbfb33.png">

下のようになればOK！右端の三角ボタンでも動作させられます
<img width="375" alt="IMG_4472.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/84072/b6296870-c102-c053-a9f3-2fd8fec83037.png">

#注意
　・当たり前だがAlexaとESP32は同じWiFi(SSDI)に接続されていること
　　　※施設のWiFiとかだとローカルエリアネットワークができないことがあります
　・analogReadを使いたい場合は、ESP32のWiFiを有効にすることで使えなくなるピンがあるということですので注意が必要です。([参考サイト](http://rikoubou.hatenablog.com/entry/2017/07/26/193021)参照)