ESP32とIRリモートおよび手動制御を使用したAlexaホームオートメーション-IoTプロジェクト2021

<iframe width="1200" height="675" src="https://www.youtube.com/embed/5-ZyC3-BzLE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/3907bcc4-c0e8-8b64-5245-4638ea9e4f9d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/9e35e6cd-7381-b87e-f9ae-b46ad6e9e839.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/ee3bedf0-1d39-1bcc-e2cd-8b7ce55bacc3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/a05d8f00-4264-7f40-e233-0b5ffeaff279.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/54ce00c8-b753-8100-b0df-0b1c4b9b63da.png)

この記事は<a href="https://jlcpcb.com/JPA" rel="nofollow"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">JLCPCB</font></font></a>と共同で公開されています。<a href="https://jlcpcb.com/JPA" rel="nofollow"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">JLCPCB</font></font></a>はPCBのプロトタイプと製造の分野で10年以上の経験を持つ最も経験豊富なPCBメーカーのひとつであり、品質、納期、費用対効果など、さまざまな業界のお客様のニーズを満たすことに取り組んでいます。            

このIoTプロジェクトでは、Alexa、IRリモート、スイッチを使用して、IoTベースのESP32ホームオートメーションを作成し、インターネットの有無にかかわらず8チャネルリレーモジュールを制御する方法を示しました。インターネットが利用できない場合は、IRリモートおよび手動スイッチから家電製品を制御できます。記事の中で、私はこのホームオートメーションシステムを作るために、すべてのステップを示しました。


このESP32制御リレーモジュールには、次の機能があります。

１．Alexa（音声制御）で家電製品を制御します。
２．IRRemoteで家電製品を制御します。
３．手動スイッチで家電製品を制御します。
４．Blynkアプリでリアルタイムのフィードバックを監視します。
５．IRリモコンやスイッチからインターネットを使わずに手動で家電製品を制御します。
PCBを使用したくない場合は、8チャネルリレーモジュール、ESP32、およびIRレシーバーセンサーを使用してこのIoTプロジェクトを作成することもできます。

　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　Supplies（用品）
１．ESP32 DEVKIT
２．TSOP1838 IR receiver
３．Relays 5v (SPDT) (8 no)
４．BC547 Transistors (8 no)
５．PC817 Optocuplors (8 no)
６．510-ohm 0.25-watt Resistor (8 no) (R1 - R8)
７．1k 0.25-watt Resistors (10 no) (R9 - R18)
８．LED 5-mm (10 no)
９．1N4007 Diodes (8 no) (D1 - D8)
１０．Push Buttons (8 no) or Switches
１１．Terminal Connectors5V DC supply
１２．Any Alexa devices like ECHO DOT

　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ1：ESP32プロジェクトの回路図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/acd3cc51-1507-c7a4-cfb3-6fe85dc99e46.png)


これは、このホームオートメーションプロジェクトの完全な回路図です。チュートリアルビデオで回路を説明しました。

回路は非常に単純です。GPIOピンD23、D22、D21、D19、D18、D5、D25、およびD26を使用して8つのリレーを制御しました。

また、GPIOピンD13、D12、D14、D27、D33、D32、D15、およびD4は、スイッチに接続されて8つのリレーを手動で制御します。

また、IRレシーバーの出力ピンはGPIOD35に接続されています。

プルアップ抵抗を使用する代わりに、ArduinoIDEでINPUT_PULLUP関数を使用しました。

5V 5ADC電源を使用しました。

　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ2：PCBを設計する前に回路をテストする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/167366d1-4b65-9b22-e720-399b1b87b0bb.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/d9151660-4d76-dcf1-c28f-74afc5ef8932.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/075fc95e-5405-f601-749a-a75ebfba51bb.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/4a21cc4f-dfd2-c68b-22f6-79ce2bfe1f46.png)

PCBを設計する前に、私が使用して完全な回路を作ったESP32、8チャネルリレーモジュール、IR受信機、および手動スイッチ。

あなたが見ることができるように、リレーから制御することができる赤外線リモコン、手動スイッチ、およびアマゾンアレクサアプリケーション。次の手順では、プロジェクト全体を詳細に説明し、コードとPCBガーバーファイルも共有しました。このプロジェクトのコードをダウンロードします。


　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ3：Alexaを使用して音声コマンドでリレーを制御する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/8a4f3332-f870-0643-e8ab-b8319ef2c977.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/cbf9378f-2c07-fd66-a806-b2163d11667b.png)

ESP32モジュールがWiFiに接続されている場合は、Amazon Alexaアプリ、IRリモート、および手動スイッチから家電製品を制御できます。

Alexaアプリでリレーのリアルタイムステータスを制御、監視できます。ESP32、Amazon EchoDotは同じWiFiネットワークに接続する必要があります。


　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ4：IRリモートを備えたESP32制御リレー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/d62cc622-e53f-9229-2c20-0c887be803d7.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/175f633c-4144-6741-e058-6d7b2f0fe2dd.png)

IRリモコンからいつでもリレーを制御できます。このプロジェクトでは、任意のIRリモコンを使用できます。

次の手順で、リモコンからIRコード（HEXコード）を取得する方法を説明します。

また、ESP32がWi-Fiに接続されている場合は、AmazonAlexaアプリでリアルタイムのフィードバックを監視することもできます。

　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ5：スイッチを使用してリレーを手動で制御する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/fd51eedf-27ed-0c0b-bafa-4c04c90305f0.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/cc260d2a-fbb1-d0a6-a06e-bd16b12f84f3.png)

WiFiが利用できない場合は、手動スイッチからリレーを制御することもできます。

ESP32は3秒ごとにWiFiをチェックします。WiFiが利用可能になると、ESP32は自動的にWiFiに接続します。

手動スイッチの接続は回路図を参照してください。


　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ6：このスマートホームシステムのPCBを設計する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/326b4d1f-9a9c-b34e-62ad-0f69e8d2844c.png)

回路をコンパクトにしてプロフェッショナルな外観にするために、スマートリレーモジュールのすべての機能をテストした後、PCBを設計しました。

このホームオートメーションプロジェクトのPCBGerberファイルは、次のリンクからダウンロードできます：
https://drive.google.com/uc?export=download&id=1Y8rXnczq6baxAKOrBEE8aro-uqcK0J93


　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ7：PCBを注文する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/409a4741-f0b1-0fdf-8804-bc81a2b6d444.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/37265b20-3383-fbb7-0172-93c360a5757a.png)


ガーバーファイルをダウンロードした後、PCBを簡単に注文できます

1. https://jlcpcb.com/JPA
にアクセスし、サインイン/サインアップします

2. [ QUOTENOW ]ボタンをクリックします。

3 [ガーバーファイルを追加]ボタンをクリックします。次に、ダウンロードしたガーバーファイルを参照して選択します。

　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ8：ガーバーファイルをアップロードしてパラメータを設定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/a5263883-42c5-2906-90c2-181b1de0a832.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/37f53017-b013-769a-6dfe-1a790cd80d07.png)


４．数量、PCBマスキングカラーなどの必要なパラメータを設定します

５．PCBのすべてのパラメーターを選択した後、[カートに保存]ボタンをクリックします。


　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　  ステップ9：配送先住所と支払いモードを選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/533b5437-3ce0-f112-8bc5-da9ec527d312.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/a71561ef-89c1-5d13-9aaa-60e35fe8f737.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/94943b93-d5c0-69d3-5adf-07c6d3277295.png)

6.配送先住所を入力します。

7.お客様に適した配送方法を選択してください。

8.注文を送信し、支払いを続行します。https://jlcpcb.com/JPA
から注文を追跡することもできます。

私のPCBは、DHL配送オプションを使用して製造され、1週間以内に到着するまでに2日かかりました。

PCBは十分に梱包されており、この手頃な価格で品質は本当に良かった。


                                                          ステップ10：PCB上のすべてのコンポーネントをはんだ付けする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/52bab17a-121b-442b-0139-58e5240a0764.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/df746b84-fc1f-ebb8-2b72-a5a4cfd384df.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/2e7f4015-d66d-478f-e393-0b411587ee49.png)



その後、回路図に従ってすべてのコンポーネントをはんだ付けしました。

次に、ESP32ボードをPCBに接続します。



                                                           ステップ11：リモートからIRコード（HEXコード）を取得する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/c76a2790-3240-dd35-1074-8ae8a23f95dd.png)


ここで、リモートからHEXコードを取得するには、まず、IRレシーバーの出力ピンをGPIOD35に接続する必要があります。

そして、VCCとGNDの両端に5Vを与えます。IRレシーバは、金属製の筐体を持っている必要がありそうでない場合、あなたが問題に直面する可能性があり、。

次に、次の手順に従ってHEXコードを取得します

１．ArduinoIDEにIRremoteライブラリをインストールします
２．添付のコードをダウンロードして、ESP32にアップロードします。
３．ボーレート9600のシリアルモニターを開きます。
４．次に、IRリモートボタンを押します。
５．それぞれのHEXコードがシリアルモニターに入力されます。
すべてのHEXコードをテキストファイルに保存します。

<div class="downloads"><h3 class="sr-only">Attachments</h3><ul id="attachments" class="ible-files unstyled list-unstyled"><li class="file-info clearfix"><a class="thumb-wrapper" href="https://content.instructables.com/ORIG/FMV/RUDB/KOX6KUAD/FMVRUDBKOX6KUAD.ino" download="Code_IR_Button_HEX_Code.ino"><span class="file-thumb"><img class="tiny-img ls-is-cached lazyloaded" data-src="https://content.instructables.com/static/image/file.default.gif" src="https://content.instructables.com/static/image/file.default.gif" alt="download {{ file.name }}"><noscript><img class="tiny-img" src="https://content.instructables.com/static/image/file.default.gif" alt="download {{ file.name }}"/></noscript></span><span class="title">Code_IR_Button_HEX_Code.ino</span></a><div class="file-actions"><a href="https://content.instructables.com/ORIG/FMV/RUDB/KOX6KUAD/FMVRUDBKOX6KUAD.ino" download="Code_IR_Button_HEX_Code.ino" class="btn pull-right">Download</a></div></li></ul></div>

　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ12：BlynkESP32ホームオートメーションのコード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/c82966bf-0d6a-040e-5094-280e8fce5891.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/b375009c-26cf-62a2-869f-aa820e8834dc.png)



スイッチ（ラッチ）を使用する場合は、スイッチのコードを参照してください。一時的なスイッチの場合は、押しボタンのコードを使用してください。

ArduinoIDEに次のライブラリをダウンロードしてインストールします

・IRremoteライブラリ
・AceButtonライブラリ
・エスパレクサライブラリ

コード内のすべてのライブラリのダウンロードリンクを共有しました。

<div class="downloads"><h3 class="sr-only">Attachments</h3><ul id="attachments" class="ible-files unstyled list-unstyled"><li class="file-info clearfix"><a class="thumb-wrapper" href="https://content.instructables.com/ORIG/F9E/MVZW/KOX6KU81/F9EMVZWKOX6KU81.ino" download="Code_ESP32_Alexa_IR_Manual_Button_8Relays.ino"><span class="file-thumb"><img class="tiny-img ls-is-cached lazyloaded" data-src="https://content.instructables.com/static/image/file.default.gif" src="https://content.instructables.com/static/image/file.default.gif" alt="download {{ file.name }}"><noscript><img class="tiny-img" src="https://content.instructables.com/static/image/file.default.gif" alt="download {{ file.name }}"/></noscript></span><span class="title">Code_ESP32_Alexa_IR_Manual_Button_8Relays.ino</span></a><div class="file-actions"><a href="https://content.instructables.com/ORIG/F9E/MVZW/KOX6KU81/F9EMVZWKOX6KU81.ino" download="Code_ESP32_Alexa_IR_Manual_Button_8Relays.ino" class="btn pull-right">Download</a></div></li><li class="file-info clearfix"><a class="thumb-wrapper" href="https://content.instructables.com/ORIG/FT0/GR2Y/KOX6KU82/FT0GR2YKOX6KU82.ino" download="Code_ESP32_Alexa_IR_Manual_Switch_8Relays.ino"><span class="file-thumb"><img class="tiny-img ls-is-cached lazyloaded" data-src="https://content.instructables.com/static/image/file.default.gif" src="https://content.instructables.com/static/image/file.default.gif" alt="download {{ file.name }}"><noscript><img class="tiny-img" src="https://content.instructables.com/static/image/file.default.gif" alt="download {{ file.name }}"/></noscript></span><span class="title">Code_ESP32_Alexa_IR_Manual_Switch_8Relays.ino</span></a><div class="file-actions"><a href="https://content.instructables.com/ORIG/FT0/GR2Y/KOX6KU82/FT0GR2YKOX6KU82.ino" download="Code_ESP32_Alexa_IR_Manual_Switch_8Relays.ino" class="btn pull-right">Download</a></div></li></ul></div>


　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ13：ArduinoIDEでESP32をプログラムする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/586e59a6-8a87-8ea9-caa4-96c0d240be15.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/478f2254-c036-1ad1-2423-b61792414fe0.png)


コードで入力してください無線LAN名、無線LANのパスワード＆Blynk認証トークンを。

次に、チュートリアルビデオに示すように、ir_remote関数のHEXコードを更新します。

その後、DOIT ESP32 DEVKITV1ボードと適切なポートを選択します。

次に、コードをESP32ボードにアップロードします。

コードをESP32にアップロードしているときに、「Connecting ....___」というテキストが表示された場合は、ESP32のBOOTボタンを押します。



　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ14：スマートホームシステム用にAlexaアプリをセットアップする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/f22b7241-a0fa-b2a5-7c02-53b86591555a.png)


Amazon Alexaアプリを開き、次の手順に従います。

１．[デバイス]をタップします。次に、「+」アイコンをタップします。

２．「ライト」をタップし、「その他」を選択します。

３．Alexaに移動し、[デバイスの検出]をタップします。デバイスの追加には1分かかります。この間、ESP32はWiFiに接続する必要があります。

４．[デバイス]をタップし、[ライト]をタップしてすべてのデバイスを表示します。


　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ15：AlexaでPCBをテストする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/e71b0f57-6cf1-bca4-22fc-9073a02a174b.png)

コードをアップロードした後、ESP32がWiFiに接続すると、青いLEDが点灯します。

次に、Amazon AlexaAppからリレーモジュールを制御できます。

　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ16：家電製品を接続する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/04e28654-3400-ef6d-6836-b3af7e081073.png)


回路図に従って8つの家電製品を接続します。

高電圧での作業中は、適切な安全対策を講じてください。

5ボルトのDC電源をPCBに接続します。

　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ17：電源をオンにします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/973c7b0d-d10c-cf0b-4f89-75a516a38213.png)

110V / 230V電源と5VDC電源をオンにします。


　　　　　　　　　　　　　　　　　　　　　　　　　　　　　ステップ18：ついに!! Alexaホームオートメーションシステムの準備ができました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1873014/540efed6-38fd-406d-222c-d0b7b6cbd118.png)


今、あなたはスマートな方法であなたの家電製品を制御することができます。

このAlexaホームオートメーションプロジェクトを気に入っていただけたでしょうか。このプロジェクトに必要なすべての情報を共有しました。貴重なご意見をお寄せいただければ幸いです。

また、ご不明な点がございましたら、コメント欄にご記入ください。ありがとう＆ハッピーラーニング。