- 使用されるハードウェアコンポーネント:
- CP2102 USB-TTLコンバーターを使用したESP-01モジュールのプログラミング:
- ESP-01とCP2102モジュールの接続:
- Alexaホームオートメーション用のESP-01モジュールのプログラミング
- 回路図
- ホームオートメーション用にAmazonAlexaアプリをセットアップする
アマゾンエコーやグーグルホームのようなスマートスピーカーは最近人気が高まっており、どちらもカスタムスキルやアクションを統合して、これらのスマートスピーカーを使用してアプライアンスを制御する機能を備えています。以前は、Raspberry PiとAlexaを使用して独自のスマートスピーカーを構築し、このRaspberryPiスマートスピーカーを使用して家電製品を制御していました。
ホームオートメーションは今日非常に一般的になり、人々はIoTを使用して家の中のすべてを自動化しています。ここでは、このチュートリアルでは、実アマゾンエコードットのスピーカーを使用して、カスタムスキルを作成するAC家電制御灯などを、ファン、テレビ、ソケットアマゾンエコードットスピーカーを使用します。ここでは、ArduinoUNOとESP8266-01Wi-Fiモジュールを使用して、EchoドットスピーカーをACアプライアンスに接続します。このチュートリアルの後、Alexaを介して任意のアプライアンスを制御できるようになります。
使用されるハードウェアコンポーネント:
- Arduino UNO
- ESP-01モジュール
- アマゾンアレクサエコードット
- CP2102USB-TTLコンバーター
- ブレッドボード
- 5Vリレーモジュール
- ACアプライアンス
- ジャンパー
CP2102 USB-TTLコンバーターを使用したESP-01モジュールのプログラミング:
ここで、ESP-01はCP2102USB-TTLコンバーターを使用してプログラムされています。ArduinoUNOボードを使用してプログラムすることもできます。ここで私の場合、CP2102モジュールを使用しました。これを行うための手順を以下に説明します。
ESP-01モジュール
ESP8266 ESP-01は、IoTアプリケーションの設計で非常に人気のあるWi-Fiモジュールであり、ArduinoUNOなどのマイクロコントローラーがインターネットに接続できるようにするために使用されます。このモジュールは、小型コンピュータのように機能する自己完結型のシステムオンチップ(SOC)です。ATファームウェアがプリインストールされているため、ArduinoIDEを使用してプログラムできます。リンクをたどると、ArduinoIDEを使用したESP-01Wi-Fiトランシーバーとそのプログラミングの詳細を学ぶことができます。
ピンの説明:
VCC: 3.3VDCで供給可能なESP-01の電源ピン
GND: ESP-01のグランド基準ピン
TXD: UART送信機ピンとして使用
RXD: UARTレシーバーピンとして使用
RESET:モジュールをリセットするために使用され、アクティブなLOWピンです。
CH_PD:アクティブHIGHピンであるのはチップイネーブルピンです。
GPIO0:このピンには2つの目的があります。1つは汎用入出力であり、もう1つはESP-01のプログラミングモードを有効にすることです。
GPIO2:これは汎用入力/出力ピンです。
ESP-01とCP2102モジュールの接続:
次の図は、CP2102USB-TTLコンバータのピン配置図を示しています。以下の表に従って、ESP-01モジュールをCP2102USB-TTLコンバータモジュールに接続します。
ESP-01モジュール |
CP2102モジュール |
VCC |
3.3V |
GND |
GND |
RXD |
TXD |
TXD |
RXD |
CH_PD |
3.3V |
リセット |
接続なし |
GPIO0 |
GND |
GPIO2 |
接続なし |
上記の接続が正常に完了すると、回路は次のようになります。
次に、CP2102モジュールをPCに接続してプログラミングします。コードをESP-01にアップロードする前に、まず通信ポートを確認してください。これを行うには、スタート->に移動し、デバイスマネージャを検索します。次に、COMとポートをクリックします。このオプションでは、次の画像に示すように、「 Silicon labs CP21xxUSB-UARTBridge 」のようなUSB-TTLコンバーター名のCOMポートを取得する必要があります。
そして、上記の手順、オープンArduinoのIDEが正常に完了した後「などのボードを選択し、汎用ESP8266モジュールから」ツールメニューを、我々は、前の段階に入ったCOMポートを選択します。
Alexaホームオートメーション用のESP-01モジュールのプログラミング
完全なコードは、このプロジェクトの最後に記載されています。これは、ESP-01モジュールにアップロードされるコードの段階的な説明です。最初のステップは、必要なすべてのライブラリを含めることです。こちらのリンクから「fauxmoESP.h」ライブラリをダウンロードできます。
#include #include
このステップでは、ESP-01をインターネットに接続するために必要なすべての資格情報を定義する必要があります。プログラムのネットワークSSIDとパスワードデータを更新します。
#define SSID "*******" #define pass "*******"
次に、Alexaから制御する必要があるデバイスの名前を定義します。私の場合、私は"として私のデバイス名をとっている寝室の光」、「寝室のファン『と』スマートソケット。」
#define device1 "bedroom light" #define device2 "bedroom fan" #define device3 "smart socket"
関数WiFi.modeは、ESP-01モジュールをステーションモードとして設定するために使用され、関数WiFi.beginは、ネットワークのSSIDとパスワードを引数として取るインターネットにESP-01モジュールを接続するために使用されます。
WiFi.mode(WIFI_STA); WiFi.begin(ssid、pass);
次の部分は、サーバーの作成、Alexaデバイスのポート番号の有効化、デバイスの有効化など、Fauxmoクラスのすべての機能を初期化 することです。次に、前に作成した fauxmo.addDevice を使用してすべてのデバイスを追加します。
fauxmo.createServer(true); fauxmo.setPort(80); fauxmo.enable(true); fauxmo.addDevice(device1); fauxmo.addDevice(device2); fauxmo.addDevice(device3);
次に、音声コマンドを事前定義されたデバイス名と比較する関数を記述します。コマンドが一致する場合は、 Serial.print を使用してArduinoシリアル端末に文字を送信し ます。
fauxmo.onSetState((unsigned char device_id、const char * device_name、bool state、unsigned char value){if(strcmp(device_name、device1)== 0){if(state)Serial.print( "1"); else Serial.print( "2");}}
では 、ボイドループ() 関数で、 fauxmo.handle 機能だけアレクサからの着信データをチェックし、それは使用してアクションを実行します onSetstate() 関数を。
void loop(){fauxmo.handle(); }
最後に記載されている完全なコードをESP-01モジュールにアップロードし、アップロードが成功することを確認します。
Arduinoコード:
その後、Arduinoにコードをアップロードします。Arduinoのコードは非常に単純です。ESP-01モジュールからUART端子を介して送信された文字のみを受信し、それを比較してターンオン/オフ信号をリレーに送信します。Arduinoの完全なプログラムを以下に示します。
文字データ; void setup(){Serial.begin(115200); pinMode(7、OUTPUT); pinMode(6、OUTPUT); pinMode(5、OUTPUT); digitalWrite(7、LOW); digitalWrite(6、LOW); digitalWrite(5、LOW); } void loop(){if(Serial.available()> 0){data = Serial.read(); Serial.print(data); Serial.print( "\ n"); if(data == '1')digitalWrite(7、HIGH); else if(data == '2')digitalWrite(7、LOW); else if(data == '3')digitalWrite(6、HIGH); else if(data == '4')digitalWrite(6、LOW); else if(data == '5')digitalWrite(5、HIGH); else if(data == '6')digitalWrite(5、LOW); }}
アップロードが成功したら、コードをArduinoに接続し、次に以下の回路図に従ってハードウェアを接続します。
回路図
Alexaを使用したホームオートメーションの回路図を以下に示します。
ここでは、すべてのコンポーネントをPerfboardにはんだ付けして、Arduinoシールドとして機能させています。
同様に、Perfboard上にリレーモジュールも構築しました。
ホームオートメーション用にAmazonAlexaアプリをセットアップする
ハードウェアのセットアップとコーディングが正常に完了したら、AlexaAndroidアプリをセットアップします。まず、このアプリで近くのスマートデバイスを検索する必要があります。これを行うには、Alexaデバイスの電源を入れてから、Alexaアプリを開き、[ デバイス ]オプションをクリックしてから、[ デバイスの追加] を求める「+」記号をクリックします。次に、「 デバイスの追加 」 を クリックし、デバイスのタイプで「 その他 」をクリックして、「デバイスの検出」を選択します。次に、Alexaアプリがデバイスを検索する必要があります。これには最大45秒かかる場合があります。
注:別の方法として、我々はまた、「音声コマンドを使用してデバイスを検出することができます デバイスを検出、アレクサを 」
デバイスの検出が完了すると、コードで指定した名前で3つの新しいデバイスを取得するはずです。私の場合、これらは、 ベッドルームライト 、寝室のファン、 および スマートソケット 。これでセットアップをテストする準備が整いました。「Alexa、寝室のライトをオンにして」と言ってテストすると、「OK」というフィードバックが返され、ライトがオンになります。同様に、他のすべてのコマンドをテストできます。
これは、AmazonEchoドット制御家電の完全なセットアップがどのように見えるかです。
デモビデオ付きのESP-01の完全なコードを以下に示します。