ESP Wi-Fiモジュールを使い始めて以来、私は常に、スマートフォンを介してワイヤレスでAC負荷を制御できるスマートWi-Fiソケットを構築したいと考えていました。人気のMokoWiFi Smart PlugやSonoffなど、このような製品はすでに市場に出回っていますが、少し高価であることに加えて、独自の製品を構築する喜びはありません。そのため、このプロジェクトでは、ESP8266Wi-Fiモジュールを使用して独自のスマートプラグを構築する方法を紹介します。。私たちが構築したデバイスは、既存のACソケットに簡単に差し込むことができ、もう一方の端では、デバイスのこのソケットに差し込むだけで実際の負荷を接続できます。その後は、ソケットのメインスイッチを常にオンにしておくだけで、スマートフォンから直接負荷を制御できます。楽しいですよね?それでは、プロジェクトに取り掛かりましょう…。
ホームオートメーション用ESPスマートプラグ
シンプルなRFベースのホームオートメーションから、お気に入りのGoogleアシスタントベースの音声制御のホームオートメーションまで、すでにいくつかのホームオートメーションプロジェクトを構築しています。しかし、今日、このプロジェクトの要件は少し異なります。
ここでの目的は、ワークステーションから直接スマートフォンを使用するだけで、Wi-Fiルーターのオン/オフを切り替えることです。インターネット接続がダウンしたり、カスタマーケアに電話したりすると、 「ご不便をおかけして申し訳ありません。ルーターの電源を切り、数秒後にもう一度電源を入れて、ルーターを再起動してください 。 」 Puffff!毎回ルーターに行くのにうんざりしていたので、このWi-Fiスマートプラグを作成し、それを使用してルーターを制御することにしました。
しかし、ちょっと待ってください!ルーターの電源を切ると、インターネットにアクセスできなくなります。では、リモートで再びオンにするにはどうすればよいですか?幸い、ESP8266はアクセスポイントとして使用できます。つまり、独自のWi-Fi信号を送信することでルーターのように機能することもできます。このWi-Fi信号は、ESP8266に電力が供給されている限り常に利用できます。したがって、ESP8266をキャプティブポータルとしてプログラムします。これにより、ESPのWi-Fi信号に接続すると、負荷をオン/オフできるWebページに移動します。
必要な材料
1. ESP8266Wi-Fiモジュール
2. Hi-Link AC-DCコンバーター(3.3V)
3.3Vリレー
4.NPNトランジスタBC547
5.FTDIプログラマーモジュール
6. ArduinoWi-Fiシールド
7.接続線
注:以前に作成したこのArduinoWi-Fiシールドを使用しています。ボードは、ArduinoコードをESP8266モジュールにアップロードするためにのみ使用されます。このボードがない場合は、この単純なESP8266プログラマー回路を使用してコードをアップロードするリンクを使用してボードを作成できます。
ESP8266用のスマートプラグプログラム
先に進む前に、プログラムに直接飛び込んで、DIYWiFiスマートプラグがどのように機能するかを理解しましょう。ここでわかるように、いくつかのヘッダーファイルをインクルードし、DNSネットワークサーバーをセットアップすることからプログラムを開始します
#include
次に、ESPのGPIOピン2を、負荷を制御するために使用される出力として初期化します。その後、Webページの長いHTMLコードが作成されます。ここでは、ウェブページにホーム画面、オン画面、オフ画面の3つの画面があります。
String Home_Screen = "" //ページ1-ホーム画面のHTMLコード "" " " + style_detials + "
「」ようこそ-CircuitDigest
"" "; String ON_Screen =" "//ページ2-デバイスの電源がオンになっている場合" "" "+ style_detials +" 「」スマートプラグ-オン
"" "; String OFF_Screen =" "// 3ページ-デバイスの電源がオフの場合 " " " " + style_detials + " 「 」スマートプラグ-オフ
" " ";これらの3つのWebページを開くと、次のように表示されます。Webページをカスタマイズして、好きなように表示できます。
次に、 ボイドセットアップ 関数があり、その中でESPをアクセスポイントとして機能するように定義し、その名前(ここでは「ESP_Smart_Plug」)を指定します。ユーザーがこのWi-Fiに接続すると、前に定義したホームページに移動します。
pinMode(LED_BUILTIN、OUTPUT); //表示用の出力としてのLEDピン pinMode(GPIO_2、OUTPUT); //リレー制御の出力としてのGPIOピン WiFi.mode(WIFI_AP); // ESPをAPモードに設定 WiFi.softAPConfig(apIP、apIP、IPAddress(255、255、255、0)); WiFi.softAP( "ESP_Smart_Plug"); // APネットワークに名前を付けます dnsServer.start(DNS_PORT、 "*"、apIP); webServer.onNotFound((){ webServer.sendHeader( "Location"、String( "http://www.circuitdigest-automation.com/home.html")、true); //デフォルトでホーム画面を開く webServer.send( 302、 "text / plain"、 ""); });
ホームページでユーザーがONボタンをクリックすると、画面上のページが表示され、GPIO2ピンがハイに設定されます。
// ON_Screen webServer.on( "/ relay_ON"、(){//オンボタンが押された場合 digitalWrite(LED_BUILTIN、LOW); // LEDをオフにします digitalWrite(GPIO_2、HIGH); //リレー webServer.sendを オフにします(200、 "text / html"、ON_Screen); //この画面を表示する});
同様に、ユーザーがオフボタンをクリックすると、オフ画面ページが表示され、GPIO2ピンがLOWに設定されます。
// OF_Screen webServer.on( "/ relay_OFF"、(){//オフボタンが押された場合 digitalWrite(LED_BUILTIN、HIGH); // LEDを オンにするdigitalWrite(GPIO_2、LOW); //リレーを オンにするwebServer.send (200、 "text / html"、OFF_Screen); //この画面を表示する });
完全なコードとライブラリファイルは、以下のリンクからZIPファイルとしてダウンロードできます。コードの準備ができたので、アップロードボタンをクリックするだけで、コードをESPモジュールにアップロードし、コードがアップロードされるのを待つことができます。完全なプログラムとライブラリファイルは、以下のリンクからダウンロードできます。
ESP8266スマートプラグ–Arduinoコードのダウンロード
Wi-Fiシールドをお持ちの方は、上記のようにモジュールを接続し、コンピューターに接続するだけで、ArduinoIDEを使用してESP8266のプログラミングを開始できます。このボードをお持ちでない方は、前述の回路図をご利用いただけます。
コードがアップロードされたら、携帯電話でWi-Fiネットワークを検索すると、 「ESP_Smart_Plug」 という名前の信号が見つかります 。 それに接続すると、私たちがデザインしたばかりのWebページに移動します。ここで、ターンオフボタンを押すと、ESPボードのLEDがオフになり、ターンオンボタンを押すと、LEDが再びオンになります。
コードをさらに数回検証した後、このプロジェクトのプログラマーボードは不要になります。ここで、ESPモジュールに主電源電圧から直接電力を供給する回路を構築し、そのGPIOピンを使用してリレーを切り替える必要があります。この回路を構築するために、私はHi-LinkのAC-DCコンバータモジュールを使用しました。これは、AC主電源電圧を3.3V DCに変換し、主電源を介してESPモジュールに電力を供給するのに十分な900mAの出力電流を備えています。出力側リレーは3.3Vリレーであり、このBC547のようなトランジスタを介してESPのGPIOピンで制御できます。また、トランジスタのベース電流を制限するために1kの抵抗が必要になります。
回路図
Wi-Fiスマートプラグの完全な回路図は次のようになります。
私たちのプロジェクトに電力を供給するAC電源は、このプラグを介して取得されます。他のコンポーネントは、earilerを説明したものです。集中するもう1つの重要なことは、起動時にGPIO-0とGPIO-2を高く保つことです。それ以外の場合、ESPモジュールはプログラミングモードに入り、出力コードは機能しません。したがって、デフォルトでGPIOピンをHighにプルするために、10k(3.3kから10kの間の値を使用できます)の抵抗を使用しました。あるいは、BC547の代わりにPNPトランジスタを使用して、リレーをハイサイドから切り替えることもできます。回路図の準備ができたので、ボードのサイズをできるだけ小さくして小さなケーシングの中に収まるようにし、ボードのはんだ付けを進めることによって、これらのコンポーネントをはんだ付けする方法を計画しました。
スマートプラグソケット用の3Dプリントケーシング
次に、バーニアを使用してボードの寸法を測定し、プラグとソケットの寸法も測定して、スマートプラグのケーシングを設計しました。完成した私のデザインは以下のようになりました。
デザインに満足したら、STLファイルとしてエクスポートし、プリンターの設定に基づいてスライスし、最後に印刷しました。この場合も、STLファイルはthingiverseからダウンロードでき、それを使用して独自のケーシングを印刷できます。
印刷が終わった後、私は結果に非常に満足しました。次に、ボードにワイヤを追加し、電源端子とソケットにネジで固定しました。完全に接続されたので、回路をケーシングに組み立てました。ここに表示されているように、すべてがうまく適合しました。
スマートプラグの準備ができたので、ルーターに行き、ワイヤーをトレースしてアダプターを見つけました。次に、それをソケットから取り外し、スマートプラグを同じソケットに接続して電源を入れました。これで、アダプターをスマートプラグに接続し直したので、今後は電話からアダプターを制御できます。同じように、自宅の低電力AC負荷を制御して、楽しむことができます。
完全なコードはここからダウンロードでき、このDIYスマート電源ソケットの作業ビデオはこのページの下部にあります。プロジェクトを楽しんでいただけたでしょうか。コメントセクションで、このデバイスで何を自動化するかをお知らせください。ご不明な点がございましたら、フォーラムにお任せください。できる限りお答えいたします。