茱萸note

電子工作の備忘録と旅行の記録

Alexa Arduino AWS ESP8266 IoT マイコン 電子工作

Alexa で ESP8266 を操作する方法【Alexa×Arduino 検討】

投稿日:

Alexa を搭載した Amazon Echo 等を使って ESP8266(Arduino)を操作する方法を検討します。


目次


Alexa 便利だわ

今年の7月頃に Amazon Echo Dot がプライム会員向けに500円で販売されていたので、買ってしまいました。同時に Amazon Music Unlimited にも契約させられました。今も契約しています。「アレクサ、いい日旅立ちを流して」というだけで曲が聞けるのは便利すぎます。Amazon沼にハマってしまいました。

Amazon Echo は Alexa 搭載デバイスなわけですが、Alexa で何ができるのかと言うと、Amazon Echo 単体では天気を聞く、曲を聞くぐらいしかできていないです。「電気消して」って言うと電気消してくれるみたいな、スマートホームデバイスをイメージしていたのですが、家にある古い家電はスマートホーム対応ではない型落ち品ばかりなので、照明とかエアコンを Alexa で操作するには追加で5000円以上払ってスマートリモコンを買わなきゃならないのですね。Echo Dot の10倍以上するんですね。ハハッ。

「じゃあ自分で作れば良くね?」という結論に至るのは至極当然のことであるわけです。

ESP8266 を Alexa で操作したい

ESP8266 は、すごい安い WiFi モジュールとして電子工作界隈では広く用いられています。ESP-WROOM-02 というモジュールとして秋葉原では売られています。単品で買うと250円です。安すぎる。PCと直接接続できる開発ボードでも1200円で手に入ります。

ESP-WROOM-02開発ボード

ESP8266 の最大の特徴は、Arduino として使えるという所にあるでしょう。WiFi に接続できる Arduino 互換ボードが 1200円 というのはいくらなんでも安すぎますね。

そんな ESP8266 が Alexa と連携できるなら、赤外線LEDを付けてスマートリモコン化するのも安価に可能ですし、無限の可能性がそこには秘められているわけです。

ESP8266 を Alexa で操作する方法をググってみると結構ヒットするのですが、方針が大きく分けて3つあります。

IFTTT などの外部サービスと連携させる

IFTTT は様々な IoT 機器(自作含む)やSNSを連携させることのできるサービスとして知られています。もちろん、Alexa と連携させることもできます。

しかし、IFTTT は最近有料化されたそうです。無料で使える枠があるらしいですが、使い物にならないらしいです。有料版だと月額1000円するらしい。高い。

IFTTT の代替として、n8n というものも注目されているらしいです。n8n は IFTTT に似たサービスを自分のサーバーに構築できるものです。n8n をインストールするサーバーを用意するのが面倒ですね。

fauxmoESP ライブラリ等のエミュレータを使う

fauxmoESP ライブラリを使うと、外部サービスとの連携なしに Alexa で ESP8266 を操作できるようです。私はうまくいきませんでしたが。

esp8266-alexa-wemo-emulator というライブラリが昔はよく使われていたようですが、一年前くらいに使えなくなったようです。どちらのライブラリも、エミュレータ、すなわち、既存の製品に化けることで、スマートホームデバイスとして振る舞います。fauxmoESP ライブラリは Philips Hue ライト をエミュレートしてるみたいです。

最近これを試してみたのですが、残念ながら私の Alexa くんは ESP8266 を検出してくれませんでした。何かの手順をミスってた可能性はありますが、正攻法では無いのでいつ使えなくなるかわからない方法です。

Alexa Smart Home Skill と AWS IoT を組み合わせる

Alexa Smart Home Skill を自作し、AWS IoT と連携させることで ESP8266 の操作を Alexa から可能にする方法です。

一番面倒そうな方法で、実際手順も多いですが、Amazon のサービスだけで完結しますし、無料利用枠で恐らく収まるので料金もかかりません。素晴らしい。

AWSアカウント作成とAmazon.co.jpのアカウントで開発者登録が必要になります。Alexa Smart Home Skill の実態は、AWS Lambda というサービスで実装します。AWS Lambda はトリガーが発火すると関数が実行されるという仕組みで、これのおかげでEC2 インスタンスやVPSを使ってサーバーを常時起動させるというような面倒なことをしなくても済みます。

AWS IoT Core は IoT デバイス向けのサービスです。ESP8266 を常時 AWS IoT Core に接続することで、AWS IoT Core と ESP8266 の双方向の通信を可能にします。


結局、fauxmoESP ライブラリを使う方法は私の場合はうまくいかなかったので、Alexa Smart Home Skill と AWS IoT を組み合わせる方法で、Alexa から ESP8266 に接続した LED を操作することに成功しました。

次回(次の投稿とは言っていない)は、AWS IoT と ESP8266 の連携方法、Alexa Smart Home Skill の実装方法等を説明しようと思います。

-電子工作
-, , , , , ,


  1. […] という、いつものテンションで始まりました。本記事シリーズは、この忌まわしき IDE を一切用いずに低レイヤを実感しつつ、このモジュールをしゃぶり尽くしてやろうという企画です。このモジュールの分かりやすい説明はここで後輩くんが説明してくれているので、こちらもどうぞ。 […]

comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【Emacs万歳!】WSLでEmacsを使う

WSLでEmacsを使うことを強要されている人々に向けて書きます。GUI版Emacsを動かす方法も説明します。

WindowsでSerialポートを使う

C++/CLI又はC#を使い、Windows上でSerialポートの制御をしてみます。

プロキシ設定が必要な学内LANに接続するときに役に立つスクリプト

プロキシ設定が必要な学内 or 社内LANに接続する際のプロキシ設定の切り替えをしやすくするスクリプトを用意します。

【ふざけるな Anaconda】Windows で Python 環境を整える

Anaconda なんか使わずに Windows に Python をインストールします。

Atmel SAM D21 を使ってみる(1)

秋月で売っているAtmelのARMマイコンATSAMD21G18AをWindows環境で使いたいと思います。