サイトロゴ

電磁弁とESP32で水道のオンオフを制御してみた

著者画像
Toshihiko Arai

はじめに

AIによる本記事の要約

この記事では、ESP32を使用して電磁弁を制御するために必要な部品とその使い方について詳しく説明しています。主な内容は以下の通りです:

・使用される主な部品は、12VDC電磁弁、G1/2ホース変換アダプタ、ESP32、昇圧型DC-DCコンバータ、リレーモジュールです。 ・電磁弁はプラスとマイナスを適切に接続し、消費電流は約500mAです。また、水の流れ方向に注意が必要です。 ・ESP32を使用して、リレーモジュールを介して電磁弁をオンオフすることができます。 ・昇圧型DC-DCコンバータを使い、ESP32の5V(USB電源)から電磁弁の必要な12Vへ電圧を変換します。 ・ESP32で制御する電磁弁のサンプルプログラムが提供されており、WiFi機能を活用して遠隔操作も可能です。 ・最終的には、製作した装置をケースに収め、電磁弁のサイズに合わせて選ぶことが推奨されています。

電磁弁とESP32で水道のオンオフを制御してみました!この記事では、電磁弁の使い方をはじめ、どうやってESP32と電磁弁を配線するのかなど詳しく解説いたします。電磁弁の他にもリレーモジュールと昇圧型のDC-DCコンバータを使って、USB電源ひとつですべての動作を実現させてます。農場や植物菜園、水槽管理などに幅広く応用できます。

電磁弁の使い方

電磁弁を購入したは良いものの、説明も情報もまったくなく困ったものでした。手探りで使い方を把握しました。 まず電磁弁の極性ですが、下の写真のように「+」シールを貼ってある方にプラスを、反対はマイナスになるように12V電源をつないでください。

こちらの動画にあります通り、電磁弁を通電させると12V電圧で大体500mA程度の消費電流になります。

ただし、電磁弁をオンオフさせても開閉音は鳴りません。上の動画のカチカチ音はリレーの音です。 電磁弁がちゃんと開閉されているかどうかは、実際にホースを繋いで水を流すことで確認するしかありません。

ここで電磁弁へホースをつなぐ際に、水を流す方向がありますのでご注意ください。下の写真の黄色いテープで「IN」と書かれている方を蛇口側へつなぐようにします。電磁弁に電圧をかけていない場合は、止水されますのでノーマリークローズです。電磁弁を通電させると、左側から供給された水が流れるようになります。

ちなみに、動画で使っている安定化電源はこちらのものです。0V〜30Vまで10Aの出力で可変できます。出力用のオンオフスイッチも付いていて便利です。また、電流値がすぐに分かるのも安定化電源のメリットですね。

電磁弁のネジ穴はG1/2という規格なので、散水用ホースへつなぐには変換アダプタを用意しましょう。

電磁弁とESP32の配線

さて、ESP32を使って実際に電磁弁を制御してみました。電磁弁のオンオフはリレーモジュールを使うと簡単にできます。また、電磁弁とESP32の電源をUSBケーブルひとつで済ませたかったので、DC-DCコンバーターを使って5Vを12Vへ昇圧させることにしました。電磁弁を動かすには、12V x 500mAで6W必要なので、5Vだと1.2Aあれば良いことになります。また、ESP32はWiFiを使ってもせいぜい100mA程度、リレーモジュールの消費電流が70mA程度ですから、2.4AのUSB電源が一つあれば足りる計算です。少し複雑ですが、下記のような配線で動作テストしたところ、2.4AのUSB電源ひとつで動かすことができました。

ESP32で電磁弁を制御するサンプルプログラム

ESP32で電磁弁を制御するプログラム例です。配線は少しややこしかったですが、ソースコード自体はリレーモジュールを動かす要領ですので非常に簡単ですね!

/**
 * @date 2022-11-25
 * @author Toshihiko Arai
 * @copyright https://101010.fun
 * @brief リレーモジュールを使って電磁弁(12VDC)を制御するデモ
*/
#include <Arduino.h>

/**
 * @brief 電磁弁  <-->  Relay  <-->  ESP32  の配線
 *                     DC+    <-->  5V
 *                     DC-    <-->  GND
 *                     IN     <-->  GPIO14
 *        電磁弁+ <-->  COM
 *        12VDC  <-->  NO
*/
#define TRG_PIN 14

void setup() {
    Serial.begin(115200);
    pinMode(TRG_PIN, OUTPUT);
}

void loop() {
    digitalWrite(TRG_PIN, HIGH);
    delay(2000);
    digitalWrite(TRG_PIN, LOW);
    delay(5000);
}

ESP32のWiFi機能を使えば、下の動画のように遠隔操作で電磁弁の制御ができます。植物の栽培などに活用できますね^^

ESP32使ってWiFi経由で電磁弁をオンオフするところまでできました! リアルタイム性の要求はないので、定期的なHTTPリクエストでステータスを取得してます🙂

その後、ちょうど良いケースを見つけたのでそれに収めました^^ (こちらは防水加工して企業様へ納品いたしました。)

ただし電磁弁によってはサイズや形が結構違うので、事前にご自身で寸法を測ってからケースをお選びください。

関連記事