電磁弁とESP32で水道のオンオフを制御してみた
電磁弁とESP32で水道のオンオフを制御してみました!この記事では、電磁弁の使い方をはじめ、どうやってESP32と電磁弁を配線するのかなど詳しく解説いたします。電磁弁の他にもリレーモジュールと昇圧型のDC-DCコンバータを使って、USB電源ひとつですべての動作を実現させています。農場や植物菜園、水槽管理などに幅広く応用が効くと思いますのでぜひ、ご参考になさってみてください。
つかうもの
この記事でつかうものをご紹介いたします。
電磁弁
12VDCで動くこちらの電磁弁を使いました。ネジ穴はG1/2の口径ですので、タカギ製品のアダプタを使えば簡単に蛇口とホースで接続可能です。
こちらの電磁弁の使い方は、後ほど詳しく解説いたします。
G1/2ホース変換アダプタ
G065FJというタカギさんから出ている変換アダプターを使ってホースと接続します。呼び径13、管用平行ネジG1/2です。
ESP32
WayinTopさんから販売されているESP32を使用しました。技適マークも刻印されていますので、安心して国内で使えます。GPIOの役割図は 商品ページ に詳しく掲載されていますのでご参考ください。
▼ WiFiやBluetooth接続が必要なければ、他のArduinoでも構いません。こちらの記事で色々な種類のArduinoをご紹介していますので、ご参考になさってみてください。
昇圧型DC-DCコンバータ
電磁弁へ供給する電源を、ESP32の5V(USB電源)から供給するために、昇圧型のDC-DCコンバータを使って5Vを12Vへ変換しました。こちらのDC-DCコンバータは5V電源を最大26Vまで昇圧できます。また最大出力も2Aとなっており、色々な用途に使いやすいです。
昇圧型DC-DCコンバータの使い方は、こちらの記事で詳しく解説してます。
リレーモジュール
電磁弁のスイッチをオンオフするために、リレーモジュールを使います。
リレーモジュールの使い方はこちらの記事で詳しく解説してますので、ご参考ください。
その他
また、ブレッドボードやジャンプワイヤもあると便利です。
電磁弁の使い方
電磁弁を購入したは良いものの、説明も情報もまったくなく困ったものでした。手探りで使い方を把握しましたのでご参考ください。
まず電磁弁の極性ですが、下の写真のように「+」シールを貼ってある方にプラスを、反対はマイナスになるように12V電源をつないでください。
こちらのツイート動画にあります通り、電磁弁を通電させると12V電圧で大体500mA程度の消費電流になります。
電磁弁のテスト成功!😄
— アラギ (@tosisico) November 25, 2022
12Vで500mA程度、ネジ系はG1/2なので繋ぎやすい!
これにESP32とリレーモジュールを繋げばもう!😋 https://t.co/fcMSfqsVus pic.twitter.com/RDzS2t3VRD
また、電磁弁へホースをつなぐ際は方向がありますのでご注意ください。下の写真の黄色いテープで「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経由で電磁弁をオンオフするところまでできました!
— アラギ (@tosisico) November 25, 2022
リアルタイム性の要求はないので、定期的なHTTPリクエストでステータスを取得してます🙂 pic.twitter.com/Logtl86u6H
ESP32でHTTPリクエストするやり方は、下記の記事をご参考ください。
その後、ちょうど良いケースを見つけたのでそれに収めました^^
▼ タカチのプルボックスケース「BCAS081307G」を使いました。