Raspberry Pi による「本格」水やりシステム (ハード編)

スマートフォンから水やりできるシステムを Raspberry Pi を使って作る方法を紹介します.

はじめに

Interface 2018年10月号の「IT農耕実験」特集を見て,庭の苔の水やりに使えないかと調べはじめ,こつこつ2ヶ月ほど週末作業を続けて無事完成したので紹介します.


「本格」と謳うにあたり,次のようような方針を立てました.

10年程度の安定稼働
せっかく作るので,家のインフラとして安心して10年間程度安定稼働させることを目指します.
フェールセーフ
長期稼働にはトラブルが予想されるので,そういった場合にも問題が大きくならないように部品選定を行います.
簡単操作
家族でも簡単に使えるよう,スマホから操作できるようにします.特定の時間に自動的に水やりする機能も付けます.

システム構成を以下に示します.

  • Raspberry Pi に Web サーバを立て,スマートフォンから制御を受け付けます.
  • Raspberry Pi はそれを受けて電磁弁の制御を行います.
  • 水量はセンサでモニタし,リアルタイムにスマートフォンに対して表示します.

完成写真

先に完成後の写真を紹介します.ハードウェアとしては,電磁弁を収めたボックスと,Rapberry Pi を収めた制御ボックスの 2 つで構成しています.

電磁弁ボックス

基本的には電磁弁とセンサーしか入ってないです.もう片方のボックスとは 2 本のケーブルで接続し,それぞれ次の信号を通します.

  • 24V と GND
  • 電磁弁制御と流量センシング電圧

屋外に設置する上で最も怖いのは凍結です.凍結してしまうと故障してしまう可能性が高いので,次の対策を行っています.

保温チューブ
水道管はすべて保温チューブで覆いました.かなり冷え込む地方だと,ボックスそのものに対して対策するなどの追加措置が必要かも.
ヒータ
寒くなった場合にヒータを ON して温度をあげられるようにしました.写真の上の方に見える横長の白色のものがそれで,モノとしてはセメント抵抗を使っています.

制御ボックス

Raspberry Pi Zero W とそれを動かすのに必要な電源が入っています.電源は AC100V から取ります.

回路

作成するは次のような感じになります。

ポイントは次の通りです.

電源構成
AC100V から DC24V を生成したあと,24V から 5V を作り出す電源構成とします.(回路図では24V 電源は省略)
過電流保護
24V にはヒューズを挿入し,トラブル時に電源が遮断されるようにします.
外部 A/D 変換器
流量センサの出力はアナログとなるため,A/D 変換器が内蔵されていない Raspberry Pi のために外部 A/D 変換器(ADS1015) を搭載します.また,A/D 変換器は 5V で動作させるので,PCA9306 を使って I2C 通信の電圧レベル変換を行います.
保護ダイオード
流量センサの出力を受け取る部分には,保護用のツェナーダイオードを配置し,何らかの要因で過電圧がかかった場合でも回路が壊れないようにしておきます.
電磁弁制御
電磁弁はトランジスタだけで制御せず,リレーを駆動します.電磁弁はコイルで構成されており,インダクタンス成分を持っているためです.
サージ対策
電磁弁の直近にサージ対策用のダイオードを配置します.前項と同じく,電磁弁がインダクタンス成分を持っているためです.
凍結防止
前のほうで少し触れましたが,凍結防止のヒータとして 330Ω を配置しています.温度センサが壊れることを想定しなければ,もう少し発熱が多きいものでもよいのですが,万一壊れた場合にトラブルの元になるので,大きめの抵抗値を選択しています.

必要なもの

制作に必要な部品を選定のポイントとともに準に紹介していきます.

電磁弁・センサ

システムの心臓部となる電磁弁とセンサーは次のものを使用しました.いずれも DC24V で動作します.

RSV-15A-210W-3A011-DC24V
Interface の記事でも使われていた CKD 社の電磁弁です.記事とは異なり,連続通電形のものを使用しました.連続通電形の場合消費電力は増えますが,電源を喪失した場合に水圧によって自動的に弁が閉じるので安心です.

※左の写真は,類似品のもの


カルマン渦式水用流量センサ WFK3012S-15-A0B

流量センサも同じ CKD 社のものを使用しました.このセンサーは可動部を持っていないため耐久性に期待して選びました.電磁弁の近くに設置するため,開閉時にウォーターハンマーによるストレスがかかることが想定されるためです.流量に応じて 0~5V を出力します.選択したモノは最大流量 12L/min のもになります.


24V 電源関連

屋外に長期設置するため,安心できるメーカ製の防塵防滴のものを選んでいます.端子台や少し大きめのコネクタ(VHコネクタ)を使って基板と接続します.

電源の容量は,電磁弁と Rapsberry Pi Zero W の合計で最大で 6W あれば十分だと思いますが,倍の 12W 対応品を選択.

AC100V は扱いを間違えると発火につながるので手堅くいっています.

No.写真品名単価個数小計
防塵防滴型LED機器用定電圧電源 ELV12-24-R503,99013,990
防水ゴムキャップ 接地2P WF751595491549
組端子台 T10-03PM1691169
組端子台 T10-04PM2191219
銅線用 裸圧着端子 (R形)丸形 R2-4M4891489
VHシリーズ コンタクト5591559
VHシリーズ ハウジング94194
VHシリーズ ベース付ポスト1491149
合計6,218

制御回路関連

5V 電源は機密性が確保されたモジュールを選択しました.1A 品ですが,Raspberry Pi Zero W は CPU の処理性能が乏しい代わりに消費電力が小さいので,これで問題なく駆動できます.

リレーは 5V で駆動するものなら何でもよいと思います.ケースが透明だとトラブル時の原因が見てわかりそうだったのでこれを選びました.駆動電流は 106mA と大きくないので,前段につける抵抗入りトランジスタは何でも良いと思います.

LED は駆動状態を簡単に確認できるようにつけておきました.屋外設置なので,天候によってはテスターでの確認がつらいと思われるためです.

温度スイッチはできればちゃんとしたメーカのが良かったのですが,手頃なのが無かったので AliExpress のものを使用しました.テストしたところ,しっかり 5℃以下で ON してくれています.ただ,耐久性が心配なので,セメント抵抗は 24V で使用しても発熱が 2W 以下になる抵抗値にしました.

チェック端子は回路図には載せてませんが,回路がうまく動かないときに観測したいポイントに配置しておくのと良いと思います.設置後にしゃがんで素子のリードにテスターを当てるのはなかなかしんどいですが,これがあると簡単・確実に行えます.

No.写真品名単価個数小計
超高効率DC-DCコンバーター 5V1A M78AR05-15001500
パワーリレー G2R-1 DC53291329
抵抗入トランジスタ DTC123EL10110
ADS1015使用12ビット4チャンネルADコンバータ1,28011,280
I2Cバス用双方向電圧レベル変換モジュール(PCA9306)1501150
モールドフレーム形防水・防滴(IP65)LED表示灯 Φ104491449
5.1V ツェナーダイオード1N5231B1001100
サージアブソーバ― 双方向型VRD Z20279391939
Normally Open 1.5A Thermal Switch Temperature Sensor138138
セメント抵抗 20W 330Ω97197
チェック端子(テストポイント) TEST-82010200
合計4,083

ケース関連

屋外に設置するので防水性を確保できる部品で固めます.ケーブルは耐候性に優れたクロロプレンゴムを使ったものを選択し,ボックスとの接続部分にも防水性を確実に確保できるケーブルグランドを使用します.また,空気を通して水を通さないプロテクティブベントをつけて,気圧差が生まれないようにします.

ここで手を抜くと,隙間に水分が残っている時に中と外の気圧差が発生すると徐々に浸水してしまいます.手堅く行くのがお勧めです.

No.写真品名単価個数小計
BCAR型防水・防塵ルーフ付プラボックス BCAR203013G3,39013,390
BMP-P型プラスチック取付ベース BMP2030P4991499
BCAR型防水・防塵ルーフ付プラボックス BCAR162110G2,19012,190
BMP-P型プラスチック取付ベース BMP1520P3291329
プロテクティブベント PMF-12HAS77921,558
THA45型 ケーブルグランド THA450-16LL21951,095
2種EPゴム絶縁クロロプレンゴムキャブタイヤケーブル 2PNCT 0.75×31,49011,490
2種EPゴム絶縁クロロプレンゴムキャブタイヤケーブル 2PNCT 0.75×29991999
プラグ式 防水中継コネクター THB387-3P1,79023,580
合計15,130

水道管関連

水道管をボックスに引き込む際は,片ナットユニオンとテーパソケットの間に O リングをかませてねじ締めを行い,防水性を確保します.外側には「信越 一般工業用RTVゴム」を使ったシーリングも行っておきます.

引き込んだ水道管は,次の2点の目的でボックス内で折り返して同じ方向から出すようにしています.

設置の容易性確保
水道管の経路とボックスの設置場所の関係次第ですが,同じ方向から水道管を出し入れした方が,微調整も含めた設置がしやすくなります.
ボックスの小型化
流量計を正しく動作させるためには,センサーの前後にストレートをもうける必要があります.ボックス内で折り返すことで,サイズを小さく保ったまま,センサーと電磁弁の間の距離を稼ぐことができます.

両ネジ長ニップルは,mm 単位で長さをオーダーできるので,組み立てながら必要な長さを測定して注文するのがお勧めです.

No.写真品名単価個数小計
片ナットユニオン 6170-13×1357921,158
ステンレス製ねじ込み テーパーソケット4192838
OリングPシリーズ赤シリコン 4C-P21 R47294
ステンレス製ねじ込み ストリートエルボ68921,378
SUS304両ネジ長ニップル47931,437
合計4,905

組み立て

部品が集まったら組み立てていきます.水道管をあつかう関係上,構造部品はちょっと大かがりですが,構成は比較的シンプルなので特に難しくないと思います.強いていえば,電磁弁ボックスへの水道管の引き込みが工作難易度高いかもしれません.

それ以外でハマったポイントを2点紹介します.

水道管の接合にはシール材

最初組み立てたとき,昼間の動作確認では問題なかったものの,冷え込む夜間に水漏れするようになってしまいました.

どうやら,水道管/電磁弁/水流センサーはそれぞれ収縮率が異なる金属で作られており,シールテープではカバーしきれなくなってしまったようです.

そこで,左のようなシール材でやり直すことになりました.施工後,寒暖の差がある日が何日か続きましたが,今のところ全く問題は起きてないです.

少し高価ですが,完全に締め付けなくても固定できるので、電磁弁・流量センサの位置決めと確実なシール性の両立が簡単にできるので,非常にお勧めです.硬化促進剤の SF 7649 とセットで使用します.


電磁弁ボックスと制御ボックスの接続確認

ボックス間の接続は中継コネクタを介して行いますが,この結線が間違いやすように思います.通電前に接続チェックを確実にしておくのがお勧めです.

システム全体としてはかなり大がかりになるので,それぞれのボックス内のチェックのみ実施して,結合してのチェックは省きたくなりますが,サボるのはトラブルの元です.

私の場合,最初組み立てたとき結線が間違っており,さらに保護用のツェナーも配置していなかったので,Raspberry Pi に 24V が引火されて破壊してしまいました.

設置

設置するとこんな感じ.

水道管には保温チューブを巻いておきます.

ちなみに,立水栓からの接続はこんな感じ.むき出しになっている金属の部分をどうするかは悩み中です.普通に考えると冷えた水は下の方に移動してくれるので,この部分は凍らないと期待したいところですが...

動作確認

Raspberry Pi にログインして下記のコマンドを打てば動くはずです.

ソフト編に続く.

コメント

  1. […] 前回に続いて,スマートフォンから水やりできるシステムを Raspberry Pi Zero を使って作る方法を紹介します. […]