梅雨明けに合わせて
本当はもう少し早く完成する予定だったのですが...
グリーンカーテンへの給水システムが完成しました。
目的:
去年に引き続き、グリーンカーテンを行うが、水やりはとても面倒だ。
去年の夏に、ベランダまでホースをつないで水道を持ってきたので、散水を自動化したい。
ただ自動化するだけでは面白くないので、ネットワークから制御できるようにしたい。
動作の仕組み:
当初は電磁弁とかいろいろ考えていたものの、まったく業界が違うということで難航。
手っ取り早く乗っ取れるデバイスがあればそれが一番だよね!と、検討していたところ、
タイマー制御の製品を発見。
タカギ(takagi) 水分センサー付かんたん水やりタイマーセット G216【2年間の安心保証】
- 出版社/メーカー: タカギ(Takagi)
- メディア: Tools & Hardware
- クリック: 4回
- この商品を含むブログを見る
この製品の、今すぐ水やりボタンを乗っ取れば、手っ取り早いのではないか、ということでさっそくポチッ。
タイマーというだけであれば、乗っ取る必要もなく、非常によくできた製品だったため、そのまま使ってもよかったのだが...
結局ばらしてしまい、有線制御できる状態に。
この状態で、室内から散水の制御が可能になったのだが、人間の指による結線で制御している状態。
案外便利だったので、1か月放置...
昨日やっと制御部分を作りました。
かなりやっつけですが、Beaglebone BlackのGPIOで、ソリッドステート・リレー(SSR)を開閉。
ところで、水やりのほうは、付属のプランター行給水とは別にミストクーラーなるものもつないでいます。
タカギ(takagi) ミストクーラー ガーデンクーラースタータキット ミスト G701 【安心の2年間保証】
- 出版社/メーカー: タカギ(Takagi)
- 発売日: 2011/06/10
- メディア: Tools & Hardware
- クリック: 47回
- この商品を含むブログ (5件) を見る
1分間でどれぐらいの水量が出ているのか、気になって調べてみました。
メーカーの情報では、水圧0.4MPaで230ml/minだそうです。
きっちり1分間分の水をペットボトルで回収。
60mlでした。ノズルは3か所設置しているので、180ml/1minでした。
gpioの制御はこんな感じです。
かなり適当です。トラップもかけてません。
earth@beagleboneblack:~$ cat ./sprinkler2.sh #!/bin/bash LANG=C ######################## #for takagi sprinkler2.sh #c earthlab 2013. ######################## loop_count=$1 if [ -z "$1" ];then loop_count=1 fi for i in `seq 1 $1` do echo "loop: $i" echo 30 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio30/direction echo 0 > /sys/class/gpio/gpio30/value sleep 0.3 echo 1 > /sys/class/gpio/gpio30/value sleep 0.1 echo 0 > /sys/class/gpio/gpio30/value if [ ${loop_count} -eq 1 ];then break fi sleep 65 done earth@beagleboneblack:~$
0.1秒間だけopenにして、タカギのタイマーにスイッチを押したときと同じ動作をさせています。
あまり長く押し続けると、設定モードに入るのので注意です。
また、制御装置が途中でハングしたときに、水が出続けるのは困るので、タカギのタイマー側で、今すぐ水やりボタンが押されたときに1分間水が出るようにセットしています。
引数があった場合(数字かどうかの判定は省略していますが)、65秒間まってから、再度ボタンを押しています。
1分間水が流れた後、5秒してから再度流れ始めるわけです。
どの程度精度の良いタイマーを使っているのか、分からなかったのでマージンは多めです。
タカギのタイマーは、流れている最中にボタンを押すと、キャンセル扱いの制御になるので...
earth@beagleboneblack:~$ sudo ./sprinkler2.sh 3
実効にはroot権限が居るようなので、こんな感じで実行しています。
root@beagleboneblack:~# cat /etc/sudoers earth ALL=(ALL) NOPASSWD: /home/earth/sprinkler2.sh
制御装置の入れ物はもう少し何とかしますが、基本的には完成です。
なお、先ほどのスクリプトは個人で使う分には自由に使って良いですが、自己責任でお願いします。