スポンサーリンク

Arduinoを使って、タンク式食洗器への給水を自動化してみた

プログラミング
プログラミング
この記事は約6分で読めます。

引っ越しを機に、人生初の食洗器に挑戦してみました。賃貸なので、ビルドインではなく毎回給水するタンク式を選びました。最初のうちは、めんどくさい食器洗いから解放される喜びが強く文句なしだったのですが、、、、慣れてきてからタンクへ水を入れる作業が苦行…。そこで、水道から20Lほどをタンクにためておいて、食洗器が給水したいタイミングで自動給水するシステムを自作してみました。

スポンサーリンク

完成形

キッチンの蛇口の可動範囲ギリギリに漏斗を置き、床に直置きしている20Lのタンクに週1の頻度で事前に水をためておく。食洗器の電源を付け、給水LEDが光るとCdS光センサーが認識し、くみ上げポンプを起動させることで20Lタンクから食洗器に水をくみ上げる。食洗器が満タンになり、給水LEDが消えるとCdS光センサーが認識しポンプを止める。というシステムを考えました。

スポンサーリンク

予算

ほとんどAmazonで買いそろえました。

合計:30,730円(自動化には4,730円のみ)

2万6千円の食洗器がたった約5千円追加するだけで自動給水に早変わり!金額的には文句なしです。

水道からポリタンクに移す漏斗の3D印刷※なくてもいい

まずは、週1程度で水道からポリタンクに移すのに便利な漏斗を作成しました。毎週漏斗をセットするちょっとした手間をなくすために、自立型の漏斗を3Dプリンターで印刷しました。

この漏斗を蛇口の下において、漏斗の下から飛び出ている部分にチューブをさして、そのまま下にあるポリタンクに流します。※ここで水道を止め忘れると、ポリタンクから水があふれて悲惨なことになるので注意。。。

(3D の設計には、Fusion 360を使用)

くみ上げポンプをArduinoと連携する

魚釣り用のくみ上げポンプをボタンを押さずにArduinoのHIGH, LOWで起動・停止を操作できるように改造します。

右下にあるLED点灯ボタンとくみ上げボタンがあり、本来の使用方法としては、くみ上げボタンを押すと開始、くみ上げ中にもう一度押すと停止というものでした。このままだと、Arduinoで操作できず不便なので、電気的にオンオフできるように改造します。

数本のねじを外し、給水を制御する右のボタンの真裏にあるキャパシタらしきものの両端に導線を半田しました。右のように形になっているので、スイッチ側に半田しても同じですが場所が狭くてやりにくかったので裏から接続しました。

この半田付けをした2本(黒、黄)をリレーでショートさせるとくみ上げポンプのオンオフが制御できます

食洗器の給水LEDに光センサーを取り付ける

食洗器の給水LEDの状態を確認するCdS光センサーを取り付けます。シンプルにセンサーの両端を赤と白の導線に直接はんだ付けして、光センサーの部分を給水LEDの真上に張り付けました

この給水LEDは、食洗器の起動時などの水が足りていない時に点灯して、必要量が食洗器タンクにたまると消えるシステムになっています。つまり、この給水LEDが光っているときだけ給水ポンプを起動させれば溢れることもなくピッタリ給水できることになります。

基盤の回路を作る

続いて、Arduinoを基盤に取り付けます。分かりやすいように最小限の配線にしてあります。

まずはくみ上げポンプの制御部分から。配線は以下の通りです。

リレーの制御用配線 : Arduino(D2) ー リレーの電磁石側 ー Arduino(GND)

くみ上げポンプ操作用 : 黄導線 ー リレーのスイッチ側 ー 黒導線

くみ上げポンプの配線(黄色、黒)はスイッチの代替のため、この2本をショートさせるとポンプが起動します。つまり、リレーを使ってオンオフできるという作戦です。※リレーとは、電磁石に電気を流し、その磁気により物理的なスイッチを押すものです。

リレーのオンオフをArduino D2ピンに設定し、D2からリレーの電磁石側へ接続。反対側をGNDに接続しています。電磁石によって押されるスイッチ側にくみ上げポンプの黄色と黒の配線を接続しています。これで、D2のHIGHでショート(ボタンを押し続ける)、LOWで絶縁(ボタンを離す)操作が可能になりました。

続いて光センサーの認識部分。配線は以下の通りです

食洗器の光センサー配線1 : Arduino(3V3) ー 白導線 ー CdS光センサ ー 赤導線 ー Aduino(A1)

食洗器の光センサー配線2 : Arduino(3V3) ー 白導線 ー CdS光センサ ー 赤導線 ー 抵抗 ー GND

食洗機の給水LEDにつながっているCdS光センサーは、明るさによって抵抗値が変わるセンサーなので、Arduino(3V3)の3VからCdS光センサーを通った後の電圧をArduinoのA1ピンで測定します。明るくなると抵抗値が低くなるので、3Vからあまり落ちていなかったら明るいという認識です。何ボルトになると食洗器の給水ランプが点いたのかは実際に光センサーを食洗器にセットしてから確認しました。

この配線だけだと3VがGNDに落ちていないので、抵抗を介してGNDにもつなげておきました。

Arduinoコーディング

Arduino nanoの互換品(USB typeC)を使用しました。

//Arduino nano用コード
unsigned int pumpPin = 2;//くみ上げポンプのオンオフ操作用ピン
unsigned int cdPin=1;//明るさセンサー用ピン
int onoff=0;//ポンプのオンオフ状態を記録

void setup() {
  pinMode(pumpPin,OUTPUT);//くみ上げポンプオンオフ
  pinMode(cdPin,INPUT);//明るさセンサーの状況チェック
  Serial.begin(9600);
}

void loop() {
  int cds=analogRead(cdPin);//明るさを取得
  Serial.println("cds:"+String(cds));//PCに明るさを表示
  if(cds>300 and onoff==0){//吸引していなくて、給水LEDがついている場合
    digitalWrite(pumpPin,HIGH);//給水ポンプを起動
    delay(1000);
    digitalWrite(pumpPin,LOW);//一旦Lowに戻す
    onoff=1;//給水ポンプを起動したことを記録
  }else if(cds<300 and onoff==1) {//吸引中で給水LEDが消えたとき
   digitalWrite(pumpPin,HIGH);//ここでオフ
   delay(1000);
   digitalWrite(pumpPin,LOW); //LOWに戻す
    onoff=0;//給水ポンプを停止したことを記録
  }else if(cds>300 and onoff==1){//吸引していて、給水LEDがついている場合
  }else if(cds<300 and onoff==0) {//吸引していなくて、給水LEDがついてないとき
  }
  delay(1000);
}

最後に

お試しで買った激安の食洗器が自動供給も付き、とても便利になりました。

ただ1点だけ、週に1回の20Lポリタンクへの給水が面倒になってきました。。。次は給水も自動の食洗器を本格導入するのもありかな?

以上参考になれば幸いです

コメント

タイトルとURLをコピーしました