“Alexa for IoT”を試す!!!
前回、”M5Stack Core2 for AWS”で”Blinky Hello World”(Lチカ)をやりましたが、チュートリアルの最後に”Alexa for IoT”が紹介されています。”M5Stack”でアレクサができれば面白そうなので(日頃使うかはともかく)やってみました。
まずは”ESP Alexa”アプリをスマホにインストールします。

もし前記事の「“M5Stack Core2 for AWS”を試す!!!」をやっていなければGitHubからAlexaプロジェクトを入手する必要があります。
1 |
git clone https://github.com/m5stack/Core2-for-AWS-IoT-EduKit.git |
次にAWS IoT証明書をEspressif Alexaサイトから入手します。
E-mailアドレスを入力してGenerateを押すとそのアドレスにAWS IoT証明書が送られてきます。

チュートリアルでは、ダウンロードしたファイルを解凍して、となっていますがE-mailで送られてきたファイルは個別の7つのファイルでしたのでチュートリアルに合わせて「espcredentials」フォルダーを作ってそこに入れてみました。
その中のmfg_config.csvに記述されているの各ファイルのパスを実態に合わせて変更します。以下はWindow10の場合です。
1 2 3 4 5 6 7 8 |
key,type,encoding,value device,namespace,, device_id,file,binary,/path/to/device.info account_id,file,binary,/path/to/account.info mqtt_host,file,binary,/path/to/endpoint.info client_cert,file,binary,/path/to/device.cert client_key,file,binary,/path/to/device.key server_cert,file,binary,/path/to/server.cert |
↓
1 2 3 4 5 6 7 8 |
key,type,encoding,value device,namespace,, device_id,file,binary,C:\Users\xxx\espcredentials\device.info account_id,file,binary,C:\Users\xxx\espcredentials\account.info mqtt_host,file,binary,C:\Users\xxx\espcredentials\endpoint.info client_cert,file,binary,C:\Users\xxx\espcredentials\device.cert client_key,file,binary,C:\Users\xxx\espcredentials\device.key server_cert,file,binary,C:\Users\xxx\espcredentials\server.cert |
このmfg_config.csvファイルを使用して以下のコマンドをコマンドプロンプトなどで実行して、証明書(mfg.bin)を生成します。
1 |
python %IDF_PATH%\components\nvs_flash\nvs_partition_generator\nvs_partition_gen.py generate c:\users\xxx\espcredentials\mfg_config.csv mfg.bin 0x6000 |

M5StackをUSBで接続して、以下のコマンドで証明書を書き込みます。
1 |
python %IDF_PATH%\components\esptool_py\esptool\esptool.py --chip esp32 --port COM3 write_flash 0x10000 mfg.bin |

これでAWS IoT証明書を書き込めたので次はAlexaファームウェアを書き込みます。
ESP-IDFコマンドプロンプトを起動して、前回もしくは先ほどCloneした”Core2-for-AWS-IoT-Edukit”フォルダーに移動してプロジェクトをbuild/flashします。
1 2 |
cd >cd %userprofile%\Core2-for-AWS-IoT-Edukit\Alexa_For_IoT-Intro idf.py build flash monitor -p COM1 |

そこそこ大きいプログラムなので書き終わるまでそこそこ時間がかかります(10分~20分くらい)。
書き終わるとAlexaが起動します。

次に最初にスマホにインストールしたESP Alexaアプリを使用してAlexaアカウントでアプリケーションを承認します(*原文のまま)。
1.Bluetoothを有効にして、アプリを起動して「Add New Device」をタップします。

2.表示されたAlexaデバイスを選択してパスワードに”abcdf1234″と入れて(普通はそのまま表示されています)、「OK」をタップします。
3.デバイスに接続したら、Amazonアカウント(普段、普通に使っている)にサインインします。
4.WiFi選択画面になるので普段使っているWiFiを選択して(2.4GHz帯のもの)、パスワードを入れます。
これでAlexaの完成です。
以下、「Alexa」と呼ぶと横LEDが青く光りリッスン状態になりますので「What time is it?」などと声をかければ現在時間を英語で答えてくれます。

英語なので簡単な英語でないと私としては発音もリスニングも怪しいのでいろいろ試せないのが残念なところです。
試しに”Alexa”の後に日本語で「今、何時?」とか聞いてみましたが、長い英語で答えられました。何を言っているかよくわかりませんが、英語で話しかけてください、とでも言っているのでしょうか?
後、どこかのファイルを変更すれば日本語対応になるのでしょうか?
また検討してみたいと思います。
— 追記(2021年2月17日) —
上記で使用したスマホアプリの「ESP Alexa」で「Manage Devices」からAlexaデバイスを選んで”Language”を日本語にすればあっさり日本語化できました₍どこかのサイトに書いてあった)。
私が見たときのAWSのサイトでは”tempolary”とか書いてあった気がするのですが今は無いようですし₍気のせいかもしれない)、Alexa Voice Service(AVS)APIやSDKは使用は無料です、とかなっているので、普通にAlexaとして使えるということでしょうか。使えるなら天気予報とか時間の確認とかに使えるのかな。
