前回までで、音声コントロールしたい家電のリモコンの解析は終了しました。
次に行う事は、
①ESP8266で赤外線送信できるようにする(赤外線解析同様にIRremoto8266ライブラリを使用する)
②解析した赤外線コードを使ってアレクサにスマートデバイスとして認識させる(esp8266-alexa-wemo-emulatorライブラリ)を使用する
2019/7/25現在esp8266-alexa-wemo-emulatorは第三世代Echodogとの互換性がなく正しく動かない事が判明!!
ライブラリを導入してもalexa側でデバイスとして認識はできますが、サーバーエラーとなり音声コントロールできません。
第三世代のEchodogを使う場合はfauxmoESPライブラリを使用する事でalexaとesp8266を連携でき家電の音声コントロールが可能です。
第三世代alexaとESP8266で家電コントロールする場合はこちら
③スマートホームを利用して先進的で革新的に家電を音声コントロールする。
以上になります。
ライブラリを導入する
とりあえずライブラリのダウンロードとインストール
IRremote8266のダウンロードとインストール→以前の記事を参照
esp8266-alexa-wemo-emulatorライブラリのダウンロードとインストールについても同様で、zipファイルをダウンロードします。
ダウンロードできたら、スケッチからライブラリをインクルードを選択→zip形式のライブラリをインスールを選びます。
ダウンロードしたzipファイルを選ぶと無事ライブラリをインクルードできます。
赤外線送信の準備
IRremoto8266ライブラリのを導入したのでスケッチ例のIRsendDemo.inoを参考に赤外線送信プログラムを参考にします。
赤外線送信は簡単で、スケッチ例をみてみると、
必要なファイルをインクルードします。
送信で使うファイルはIRremotoeESP8266.hとIRsend.hです。
スケッチ例そのものです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <Arduino.h> #include <IRremoteESP8266.h> #include <IRsend.h> const uint16_t kIrLed = 4; // ESP8266 GPIO pin to use. Recommended: 4 (D2). IRsend irsend(kIrLed); // Set the GPIO to be used to sending the message. void setup() { irsend.begin(); #if ESP8266 Serial.begin(115200, SERIAL_8N1, SERIAL_TX_ONLY); #else // ESP8266 Serial.begin(115200, SERIAL_8N1); #endif // ESP8266 } |
上記のとおりにsetupの中でirsend.begin、Serial.beginでライブラリをスタートさせるだけです。
1 2 3 4 5 |
void loop() { Serial.println("NEC"); irsend.sendNEC(0x00FFE01FUL); delay(2000); } |
送信の使い方は上記ののようにメインループの中で、irsend.sendで赤外線解析時に取得したデータを入力すればよろしいようです。むっちゃ簡単です。
esp8266-alexa-wemo-emulatorの使い方
上記のライブラリの準備をしていきます。
ただしこのライブラリは第三世代のEchodogでは相性が悪く利用できません。
第三世代のEchoDogのalexaとESP8266を連携させる場合はfaumoESPライブラリを使った記事はこちらから。
このライブラリはesp8266をwifiに繋ぎ、alexaから連携できるようにするライブラリになります。
ですので、自宅のwifiのSSIDやパスワードなども必要になります。
こちらのスケッチ例は複数の赤外線信号を扱うため、Multiswichを参考とします。
とりあえず、このesp8266-alexa-wemo-emulatorライブラリのMultiswichtoとIRremoto8266ライブラリのIRsendDemoを組み合わせてプログラムしていきます。
参考になったのが、ここのサイトです。
上記サイトを参考にプログラムしたスケッチです。
赤外線のライブラリも加えて赤外線送信も可能としております。
1 2 3 4 5 |
#include <ESP8266WiFi.h> #include "WemoSwitch.h" #include "WemoManager.h" #include "CallbackFunction.h"<code> |
上記プログラムですが、基本的に各ライブラリのスケッチ例を基本としています。
結構簡単にalexaによって家電を赤外線コントロールができます。
ただ、第三世代のalexaからはesp8266-alexa-wemo-emulatorライブラリの相性が悪くうまく使えなくなっています。
次回はそれを克服する為ライブラリをfauxmoESPに変更して第三世代alexa対応編をやっていこうと思います。