はじめに

この記事では、12Vの電磁弁をESP32からオンオフする配線例をまとめます。リレーモジュールで電磁弁の電源を切り替え、USB 5VをDC-DCコンバータで12Vへ昇圧することで、テスト環境ではUSB電源ひとつで動かせました。

水道や散水まわりに使う場合は、GPIOの制御だけでなく、電磁弁の流向、12V側の電流、ケースの防水がつまずきやすいところです。ここでは、実際にホースをつないで動作確認した流れと、ケースに収めるときの注意点まで整理します。

先に要点

  • 使った電磁弁は12Vで約500mA、つまり約6Wの負荷でした
  • ESP32から直接電磁弁を動かさず、リレーモジュールで12V側をオンオフします
  • USB 5Vから昇圧する場合は、ESP32、リレー、電磁弁を合わせた電流容量に余裕を見ます
  • 電磁弁には水を流す向きがあり、IN側を蛇口側へつなぎます
  • 屋外や水まわりで使う場合は、防水ケース、コネクタ、配線の引き込みまで別途対策が必要です

電磁弁の使い方

電磁弁を購入したは良いものの、説明や情報がほとんどなく困ったものでした。手探りで使い方を把握しました。 まず電磁弁の極性ですが、下の写真のように 「+」シールを貼ってある方にプラスを、反対はマイナスになるように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動作、リレーモジュール、DC-DCコンバーターの変換ロスが乗るため、電源容量はギリギリにしない方が安心です。今回の動作テストでは、2.4AのUSB電源ひとつで動かすことができました。

配線は少し複雑ですが、役割を分けると分かりやすいです。

  • ESP32のGPIOは、リレーモジュールのINを制御する
  • リレーモジュールは、電磁弁へ流す12Vをオンオフする
  • DC-DCコンバーターは、USB 5Vを電磁弁用の12Vへ昇圧する

リレーモジュール自体の端子やCOM/NO/NCの考え方を先に確認したい場合は、リレーモジュールの使い方 も合わせて読むと配線の意味を追いやすいです。

電磁弁とESP32の配線

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

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

/**
 * @date 2022-11-25
 * @author Toshihiko Arai
 * @copyright https://araisun.com
 * @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リクエストでステータスを取得してます🙂

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

ケースに収納

水まわりで使う装置は、ケースに入れれば終わりではありません。ケース本体の防水だけでなく、電源ケーブル、ホースまわり、コネクタの引き込み部分から水が入らないように考える必要があります。常設する場合は、メンテナンス時に電源を切れる構成にしておくことも大事です。

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

口の長さが違う電磁弁

関連記事

ESP32やリレーまわりを続けて確認する場合は、次の記事も参考になります。

関連アイテム