- ハードウェア要件
- Alexa音声制御LEDのプロジェクトフロー
- 通信用のAdafruitアカウントの設定
- IFTTTを使用してAlexaをAdafruitIOにリンクする
- ESP12コードの説明
- ワーキング:
以前のチュートリアルでは、Amazon Echoスピーカーを構築する方法と、AlexaVoiceを使用してRaspberryPiGPIOを制御する方法を見てきました。現在、AlexaPiとESP-12E(または任意のESPボード)を使用して、世界中のどこからでも家電製品を制御するIoTプロジェクトを作成してい ます。
ハードウェア要件
- AVSがインストールされたRaspberryPi
- USB2.0マイク/ウェブカメラ
- ESP-12E
- リレーモジュール
- LED / AC電球
適切に構成されたAmazon開発者アカウントを使用して、Alexa音声サービスがインストールされたRaspberryPiを準備する必要があります。したがって、以下のチュートリアルを実行して、Alexaサービスを準備してください。
- RaspberryPiを使用して独自のAmazonEchoを構築する
Alexa音声制御LEDのプロジェクトフロー
このIoT制御LEDプロジェクトでは、次のフローチャートに従います。
つまり、プロセスは次のようなものです。まず、USBマイクを介してRaspberryPiに入力が与えられます。現在、この録音はAlexa音声サービスに送信され、音声認識後、AVSはデータをIFTTTに送信し、IFTTTで条件をトリガーします。レシピによると、IFTTTはコマンドをMQTTブローカーであるAdafruitIOに送信してアクションを実行します。その後、ESP 12eはMQTTプロトコルを介しAdafruit IOからデータを受け取り、LEDは、コマンドに応じてON / OFFを向けるだろう。
ここでは、マイク用のUSBWebCamを使用しました。すでにAlexaVoiceサービスを使用して電球をオンにしていますが、ローカルに接続されているアプライアンスしか処理できません。
AlexaVoiceサービスがインストールされたRaspberryPiが既にインストールされていることを前提としているため、以下の2つの手順を実行します。これについて、1つずつ説明します。
- 通信用のAdafruitアカウントの設定
- IFTTTを使用してAlexaをAdafruitIOにリンクする
- ESP12にコードをアップロードする
通信用のAdafruitアカウントの設定
まず、AdafruitIOでフィードを作成します。フィードには、IFTTTから送信されたデータが保存されます。フィードを作成するには、次の手順に従います。
ステップ1:-資格情報を使用してAdafruit IOにログインするか、アカウントを持っていない場合はサインアップします。
ステップ2:- [マイアカウント]-> [ダッシュボード]を クリックし ます
ステップ3:- [アクション] をクリックして 、新しいダッシュボード を 作成します 。
ステップ4:-フィードに名前と説明を付けて、[作成]をクリックし ます 。
ステップ5:- [キー]ボタンをクリックし、AIOキーを書き留めます。このキーをコードで使用します。
ステップ6:-「+」ボタンをクリックして新しいブロックを作成し、「トグル」ボタンをクリックします。
ステップ7:-ここで、フィードの名前を入力し、[作成]をクリックし ます 。次に、フィードを選択して、[次のステップ]をクリックします。
ステップ8:-ブロック設定で、 ボタンオンテキスト フィールドに「1」を書き込み、 ボタンオフテキスト フィールドに「0」を書き込みます。
ステップ9:-フィードが正常に作成されます。
IFTTTを使用してAlexaをAdafruitIOにリンクする
次の手順に従って、IFTTTでアプレット/レシピを作成します。
ステップ1:-資格情報を使用してIFTTTにログインするか、アカウントを持っていない場合は サインアップ します。
ステップ2:- [マイアプレット]で、[新しいアプレット]をクリックします
ステップ3:- +これをクリックします
ステップ4: -Amazon Alexaを検索してクリックし、Amazon開発者アカウントの詳細を使用してサインインします。
ステップ5:- トリガーを選択し 、特定のフレーズを言います
ステップ6:- フレーズとして 「ライトをオンに する 」を入力し 、[トリガーの作成]をクリックし ます。
ステップ7:- + thatをクリックします
ステップ8: -Adafruit を検索してクリックします。
ステップ9:-資格情報を使用してAdafruitアカウントにログインします。[ データをAdafruit に 送信]を クリックし ます 。
AdafruitIOで作成したフィード名を選択します。ここで、保存するデータに「1」を指定します。これは、LEDがオンになることを意味します。[ アクションの作成]を クリックし ます 。
手順10:-同じ手順に従って アプレットを作成し、LEDをオフにし ます。[保存するデータ]フィールドに「0」を入力するだけです。すべての手順は同じままです。
あなたは仕事の半分を終えました。それでは、ESP-12Eをプログラムしましょう。
ESP12コードの説明
ArduinoIDEでESP12をプログラムします。完全なコードは、このチュートリアルの最後にあります。
まず、このリンクからダウンロードできるAdafruitMqttライブラリが必要です。ArduinoIDEを開くだけです。 例に 移動 -> adafruitmqttライブラリ-> mqtt_esp8266
私たちはします。このコードを編集し、当社のAIOキーとのWi-Fiの認証情報に基づいて。
まず、 ESP8266WIFIとAdafruitMQTTの すべての ライブラリ を含めました。
#include
ESP-12eを接続するWi-FiのSSIDとパスワードを定義しました。
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
このセクションでは、Adafruitサーバーとサーバーポートを定義します。これらはそれぞれ「 io.adafruit.com 」と「 1883 」として固定されています。
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
以下のフィールドを、フィードの作成中にAdafruitサイトからコピーしたユーザー名とAIOキーに置き換えます。
#define AIO_USERNAME "********" #define AIO_KEY "******************************"
次に、ESP8266 WiFiClientクラスを作成して、MQTTサーバーに接続します。
WiFiClientクライアント;
WiFiクライアントとMQTTサーバーおよびログインの詳細を渡して、MQTTクライアントクラスをセットアップします。
Adafruit_MQTT_Client mqtt(&client、AIO_SERVER、AIO_SERVERPORT、AIO_USERNAME、AIO_KEY);
変更をサブスクライブするための「light」というフィードを設定します。
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe(&mqtt、AIO_USERNAME "/ feeds / light");
では、セットアップ機能、我々はあなたが出力を取得したいESP-12eのPINを宣言します。D0ピンを出力として使用しています。次に、ESP-12eをWi-Fiアクセスポイントに接続します。
void setup(){ Serial.begin(115200); delay(10); pinMode(D0、OUTPUT); Serial.println(F( "Adafruit MQTTデモ")); // WiFiアクセスポイントに接続します。 Serial.println(); Serial.println(); Serial.print( "接続中"); Serial.println(WLAN_SSID); WiFi.begin(WLAN_SSID、WLAN_PASS); while(WiFi.status()!= WL_CONNECTED){ …。 …。 …
ライトフィードのMQTTサブスクリプションをセットアップします。
mqtt.subscribe(&light); }
では ループ 機能、我々はなりMQTTサーバへの接続がMQTT_connect()を使って生きていることを確認してください。関数。
void loop(){ MQTT_connect();
ここで、「light」フィードをサブスクライブし、adafruit IOから文字列を取得し、atoi()を使用してこの文字列を数値に変換します。関数を作成し、digitalWrite()を使用してこの番号をPIND0に書き込みます。関数。
Adafruit_MQTT_Subscribe *サブスクリプション; while((subscription = mqtt.readSubscription(5000))){ if(subscription ==&light){ Serial.print(F( "Got_light:")); Serial.println((char *)light.lastread); uint16_t num = atoi((char *)light.lastread); digitalWrite(16、num); }
ワーキング:
ESP-12Eをラップトップに接続し、以下のコードをアップロードします(コード内の資格情報を編集することを忘れないでください)。
LEDまたはリレーをピンD0に接続します。ここで、AlexaサービスがRPiで実行されていることを確認します。
コマンドを送信するには、コマンドを送信するたびに「Alexa」を呼び出してAlexaサービスをウェイクアップする必要があります。ビープ音が鳴ります。ビープ音が聞こえたら、「 Alexa Trigger Turn ontheLight。 」一瞬でライトが点灯するのがわかります。そして、「 Alexa Trigger Turn off the Light 」と言うと 、ライト がオフになります。
それでおしまい…。ESP-12EのGPIOピンを追加し、IFTTTでさまざまなフレーズを使用してさまざまなアプレットを作成することにより、上記のコードにアプライアンスを追加できます。
以下の完全なコードとデモンストレーションビデオを確認してください。また、ここですべてのホームオートメーションプロジェクトを確認してください