プランター自動水やり機 設置完了!
前回 の手直しで「プランター自動水やり機」の準備が大体出来ましたので、遂に今回最後の仕上げと設置を行いました!
1. プログラム!
デバッグが終了したと言ってから何回目になるのでしょうか、またまたプログラムを修正しました
1.1 水やり時刻
内容:前回のプログラムでは、「7:00、7:30、11:00、11:30、15:00、15:30、19:00、19:30」の計8回土の湿度を測定する。土が乾燥していたら水をあげる。
欠点:11時や15時にホースに溜まった水を出すとホースの中で温められた水がお湯となって出てきて、根っこが茹で上がってしまいそう
対策:11時と15時の水やりを9時と17時に2時間ずらしました。
1.2 水やり時の土の湿度
内容:前回のプログラムでは、土がある程度乾燥(閾値730以下)してから水やりする。
欠点:特にキュウリの苗は乾燥に弱く耐えられそうにありません
1.3 水を出す時間
内容:前回のプログラムでは、一回の散水当たり2分30秒間水を出す。
欠点:550型プランターの容量は20Lと小さく殆ど土に染み込む事無く下から出てしまいます土の水はけが良過ぎる?
対策:一度に少量の水を(1分)出す様にして、水やりの回数は各時間00分と30分だったものを00分、20分、40分へと増やして細かくあげます。
/*NOBのArduino日記! プランター自動水やり機制御プログラム(20170809作成)*/ #include <Wire.h> #include "DS1307.h" const int SensorPower = 2;//土壌湿度センサー電力供給制御ピン番号 const int SolenoidPower = 8;//水電磁弁開閉制御ピン番号 const int SwitchIn = A1;//水電磁弁の手動ONスイッチ接続ピン番号 const int SensorIn = A3;//土壌湿度センサー値取得ピン番号 DS1307 clock;//DS1307クラスのオブジェクトを定義する //初期設定 void setup() { clock.begin(); Serial.begin(9600); pinMode(SensorPower, OUTPUT); pinMode(SolenoidPower, OUTPUT); pinMode(SwitchIn, INPUT); } //機能:土壌湿度センサーの値を読み込む関数 int SensorRead() { int SensorValue = 0; //SensorValueをint型の変数として宣言(毎回0にリセット) for (byte i = 0; i <= 10; i++) { //A3ポートの電圧を10回読み平均値を出す digitalWrite(SensorPower, HIGH); //センサー電力供給開始 delay(10); //一定時間電流を流して測定値を安定させる SensorValue = SensorValue + analogRead(SensorIn); //センサー電圧を10回読み合計する digitalWrite(SensorPower, LOW); } //センサー電力供給停止 return SensorValue / 10; } //センサー電圧平均値を返す //メインループ void loop() { clock.getTime();//現在の時刻を取得する if (digitalRead(SwitchIn) == HIGH) { digitalWrite(SolenoidPower, HIGH); //手動スイッチONで水を出す } else { //手動スイッチOFFで以下自動水やり制御実行 if (clock.hour == 7 || clock.hour == 9 || clock.hour == 17 || clock.hour == 19) { //時刻が7,9,17,19時で以下実行 if (clock.minute == 0 || clock.minute == 20 || clock.minute == 40) { //時刻が0,20,40分で実行 if (SensorRead() < 936) { //土が乾燥していた場合実行(20170812、830→936に修正) digitalWrite(SolenoidPower, HIGH);//水を出す delay(60000UL);//1分待つ digitalWrite(SolenoidPower, LOW);//水を止める } else { if (clock.hour == 7 && SensorRead() < 945) { //朝は土が湿っていても以下実行(20170812、910→945に修正) digitalWrite(SolenoidPower, HIGH);//水を出す delay(30000UL);//30秒待つ(20170812、60→30に修正) digitalWrite(SolenoidPower, LOW); } } } }//水を止める digitalWrite(SolenoidPower, LOW); } //スイッチOFFで水を止める //Serial.print("SensorRead:");Serial.println(SensorRead());//センサー測定値確認用 delay(1000); }//1秒待つ
図1:プログラム例
2. 設置!
2.1 ソーラーパネル
前々回作った設置冶具をポールに固定します。
結束バンド遣いの私は、結束バンド以外の固定方法は良く分かりません!
なので、当然結束バンドでキュッと締めただけです!結束バンド最強です!!
図2:ソーラーパネル冶具設置(左:取り付け場所、右:取り付け後)
2.2 制御装置
鉛バッテリーも収まっている重量級の制御装置もモチロン結束バンド(流石に心配なので4本)で取り付けました!ビクともしません!
図3:制御装置設置(左:取り付け前、右:取り付け後)
2.3 充電開始!
ソーラーパネルと制御装置のソーラー充電コントローラーを接続して鉛電池への充電を開始しました!
充電前の電圧が「12.41V」だったものが、充電を開始すると見る見るうちに「12.75V」へと増えました!
ちゃんと充電しているようです
図4:バッテリーの充電確認!(左:充電前、中:充電中、右:充電後)
2.4 土壌湿度センサー
土壌湿度センサー を土に挿します。
図5:土壌湿度センサー取り付け
2.5 散水ホース
制御装置のホースニップルに10mの散水ホースを挿し、ホースバンドで固定します。
後はホースを水やりするプランターの上に通して終端部を二重に折り曲げて結束バンド×2で固定しました。
図6:散水ホース取り付け(左:ホースニップル取り付け、中:ホース設置、右:端を止水)
2.6 配線
園芸用の支柱を横に渡し、制御装置から出ている散水ホースと土壌湿度センサーのケーブルを結束バンド(小)で固定します。
図7:散水ホース設置完了!
2.7 散水ノズル
ホースに挿すだけで使える自在散水ノズルを取り付けます。
取り付けたい場所に、電導ドリルでφ4mmの穴を空けて挿すだけです。
プランターは7台有って各2つ苗が植えて有るので計14個取り付けました。
図8:散水ノズルの設置(左:穴あけ、右:散水ノズル取り付け)
2.8 水道
水道配管にはパイプシールを巻いとけばOK!と考えていたのは甘かった様です
水漏れを止めようと金属のメスねじにプラスチックのG1/2オスネジコネクタをギュウギュウ締めたらコネクタのねじ山が潰れてしまいました(;''∀'')
金属同士の接合部からも水が漏れ止まりません(´;ω;`)
水道から接続するホースの取り付け角度にも問題が・・・。
やはりパッキンが必要なのと、新品のG1/2オスネジコネクタが必要なのと、その固定角度の無理を解消するエルボを買う為にホームセンターに行きます。
なんだかんだ灼熱の日向でハマる事数時間・・・図10の通り完成しました!
図9:水道ホースジョイントの取り付け(左:ジョイント部品、中:パッキン、右:砲金ストリートエルボ6124Y-13)
図10:水道ホースジョイント完了! 水は殆ど漏れません!
2.9 動作確認
試しにプログラムの散水時刻を現在の時刻+1分にしてあちゃんでいいのに書き込みました。
土壌湿度センサーを宙に浮かせた状態で暫く待つと図11の通り自動で散水されました!
図11:ちゃんと水 出ました!
3. まとめ!
当初の目論見通りお盆休み前迄に滑り込みで完成しました!
これで安心して家を2,3日留守に出来そうです
と言う事で「プランター自動水やり機」全12回無事完了です
図12:構想!
図13:遂に完成!
励みになりますのでよければクリック下さい(^o^)/