Arduino

自動水やり機を作ってみた2 【 鉢植えへの組付け】

自動水やり機を作ってみた1 【 Arduinoとトランジスタを使った、モーター制御】の続きになります。実際に鉢植えに組付けて自動で水やりをしていきます。

  • 回路設計編で設計した回路を使って「自動水やり機」を組み立てる
  • 1日2回(12時間に1回)水やりをするプログラムを実装する

将来的には土壌センサの実装を考えていますが、今回は簡単なプログラムを実装したいと思います。

目次
  1. 追加部品一覧
  2. 回路の確認
  3. 配線とホースの組付け
  4. ポンプの駆動時間
  5. Arduinoのプログラム
  6. 今後の展開

追加部品一覧

・追加部品

No 品名 単価 備考
1 タッパー 100円 百円ショップでOK
2 ※ACアダプタ 家に余っているものでOK
3 ※USBケーブル 家に余っているものでOK
4 熱収縮チューブ  
5 ※電源用の線 250円/m 防水ケーブルグランドの仕様を確認
6 ※コンセントプラグ オス 204円  
7 ※コンセントプラグ メス 130円  
8 ※防水ケーブルグランド 80円 電源用の線の仕様を確認 必要数2個
9 ※端子台 (Φ3) 300円  
10 ※セメント抵抗 1.5Ω 60円  
11 ※裸端子 (Φ3) 20円 100個で700円ぐらい
12 ホース 360円/m  
13 ホースクランプ 130円 必要数4個
14 TorY字のホース接手 150円  
15 灯油タンク お好みの大きさでOK

※写真有 

・使用する道具

No 品名 備考
1 ニッパー 配線のカットに使用
2 カッター 配線の被覆をはがすのに使用
3 ※裸端子用圧着工具  
4 ハンダコテ、コテ置き  
5 ドライバー  
6 ※ドリル タッパーの加工 防水ケーブルグランド用の穴空け
7 USBケーブル PCからArduino Uno にプログラムを送る

※写真有

回路の確認

「回路設計編」の時とは違い今回の電源は5VのACアダプタを使用したいと思います。しかし、電動灯油ポンプは単3電池2本を直列に接続していたため3Vで駆動していました。5Vでは電圧が高いので抵抗を付けてポンプへ入るときの電圧を下げます。

抵抗値はオームの法則で計算します。今回は2V電圧を下げたいので

抵抗値(Ω)=下げたい電圧値(V) ÷ 電流値(A)
R = 2V ÷ 1.2A ≒ 1.7Ω

1.7Ωは販売していないので1.5Ωを採用したいと思います。1.5Ωを使用するとモーターに加わる電圧は3.2Vになります。

消費電力の大きい抵抗器についてはワット数にも気を付けなければなりません。1.5Ωの抵抗器を使用した場合、約2.2Wの電力が熱として消費されることになります。

消費電力(W)= 1.8V × 1.2A ≒ 2.2W

抵抗器も2.2Wに耐えられるものを選定しなければなりません。そのため一般的な抵抗器(炭素被膜抵抗器)ではなく5Wまで使えるセメント抵抗を使用しました。

配線とホースの組付け

1.タッパーの穴あけ

タッパーに防水ケーブルグランドを取り付ける穴を空け、防水ケーブルグランドを取り付けます。電源線とポンプ線はこの防水ケーブルグランド内を通って、タッパーの外に出ます。

2.電源線の組み立て

電源用の線の両端の被覆をカッターで剥き、丸形の裸端子を圧着します。

この部分はコンセントからの交流の電気が流れるため+-は関係ないです。裸端子を付けた両端に各コンセントプラグを付ければ電源線の完成です。メス側のコンセントプラグは防水ケーブルグランドを通してタッパー内で組付けましょう。

3.ポンプの改造

電動灯油ポンプから電池ボックス部分を外し、モーターの線をむき出しにします。

モーターの線を電源用の線で延長し、先端に丸形の裸端子を圧着します。配線の接合部は熱収縮チューブなどでしっかりシールしましょう。

3.配線

「②回路の確認」の回路を実際に組んでいきます。部品点数が少なく、一部回路に1.2Aと比較的大きい電流が流れるため、端子台を使って回路を作りました。ユニバーサル基盤を使って回路作成しても問題ないですが、大きい電流が流れる部分にはハンダを多めに盛るなど工夫がいるかもしれません。

4.ホースの加工と組付け

内径が25mmのホースを使用しました。電動灯油ポンプにつける際に苦労したので改良の余地があるかもしれません。

ホースにΦ3ぐらいの小さな穴を空けホース接手に組付けます。穴は鉢に組付けた時のことを考慮しながら空けます。

この時に空けた穴の総面積がホースの内径と同じぐらいにした方が良いです。穴が少なすぎると水の勢いが強すぎたり、モーターの線が出ている部分から水がにじみ出たりします。

ポンプの駆動時間

今回のシステムでは「ポンプを動かす時間」で鉢へ与える「水の量」が決まります。なので実際にArduinoを使って、1秒(1000ms)ごとに何mlの水を汲めるかを測りました。

この時、ポンプと水の出口の高低差によって汲める水の量は変わるので、実際に使用した際の散水口の高さを考慮して測定した方がよいです。

Arduinoのプログラム

LEDをチカチカさせるときのプログラムと同じです。

delay関数は0~4,294,967,295ms(232-1ms)の範囲で秒数を指定できます。日数にすると大体50日ないくらいになります。今回のプログラムは12時間に1回、800mlの水をくみ上げることを目的としています。

水を800mlくみ上げるにはポンプを5000ms動かし、その後の待ち時間を43200000ms-5000msで示しています。43200000は12時間を示しています。(12時間×60分×60秒×1000ms)

❻ 今後の展開

一旦形にはなりましたが、改良点もいくつかあります。

1.土壌センサの実装

Arduino用の土壌センサが販売されていまが、少しお高めなので自作したいと考えております。土の様子を見ながら水やりを行えるのでカラカラやあげすぎがなくなるはず!!

2.省電力化

delay関数の待ち時間中にもガッツリ電気を消費しています。Sleep機能を使って消費電力を抑える。

3.小型化

もう少しコンパクトにしたいと思います。ベランダは有限です。