愛知県稲沢市在住の【中小企業診断士✖️IoTプロフェッショナルコーディネーター】が、ものづくりの楽しさをお伝えする《がちゃラボ》です。
「トマトの自動水やりシステムを作ろう」ということで、
cronによる定期実行方法
そして、
リレーによってスイッチ機能の実現方法
をこれまで紹介してきました。
しかし、上記の記事を見ていた皆さんの中には、
ただLEDを点滅させてただけじゃないか
農業IoTを謳っておいて、肥料も水もあげてないじゃないか
と、思った人もたくさんいると思います。
そこで、今回はトマトに水をあげるために
『ラズベリーパイを使って、ポンプを動かして水をあげる』
という方法を紹介します。
中には
LEDやモータを動かすことは電子工作の本を読めばできるけど、ポンプは難しくてわからない
という人も多いかと思います。
そうなんです、LEDやモータってRaspberry pi(ラズベリーパイ、ラズパイ)の本や電子工作の本ではたくさん紹介されているのですが、水をくみ上げるポンプってなると、なかなか紹介されてる本ってないんですよね。
でも実は意外なほど簡単に、水をくみ上げるためのポンプってRaspberry piで使えるんです。
実は意外に簡単!
ポンプが使えるようになると、農業IoTやアグリテックで使われるような水を撒くためのシステムの構築もできるようになります。
私も無知状態から自分で調べてポンプを制御できるようになったので、分かりやすいように丁寧に説明していきますね^^
準備するもの
Raspberry pi 一式
Raspberry pi は2年ほど前に購入したRaspberry pi 3 model B+を使いました。購入方法やセットアップ方法は以下の記事を参考にしてください。
リレー
時間が来た時にポンプを動かすためのスイッチとして、リレーを使います。リレーについては下記の記事を参考にしてください。
ポンプ+ホース
作物や植物に水を撒くためには、水をくみ上げるポンプが必要です。そこで今回は次のようなポンプとホースを準備しました。
[rakuten id=”autoparts-agency02:13548096″ kw=”【楽天市場】AP 水中ポンプ 12V 小型 ブラシレス 水槽内の循環やミニ噴水に! AP-UJ0467:オートパーツエージェンシー2号店”]
[rakuten id=”aimu:10016598″ kw=”【楽天市場】SUDO(スドー) デラックスチューブ 白 5m (F-510):アイム”]
9V電池接続用のクリップコネクター
今回使用するポンプがDC5VからDC9Vの電圧で動くポンプです。
Raspberry pi にも電源はあるのですが、Vcc3.3VやVcc5Vでは電圧降下などによってポンプが駆動できない可能性があるため、9Vの電池を使います。
その9V電池を接続するためのコネクター(クリップ、接続用ホルダー)も準備します。
[rakuten id=”wesstore:10064949″ kw=”【楽天市場】uxcell バッテリースナップ バッテリークリップコネクタ 電池接続ホルダー 5個入り ブラック シルバートーン レッド プラスチック メタル フェイクレザー T型コネクター:WES STORE”]
これで、一通りの必要な機材はそろいました。それでは接続していきましょう。
接続方法(ラズパイ、リレー、ポンプ、電池)
接続方法は以下の通りになります。
なお、9V電池を繋ぐクリップコネクタはブレッドボードにさせるようにケーブルを切ってジャンプワイヤ(こちらも半分に切ってます)とハンダで繋げました。
ポンプを駆動する要となるリレーの各端子は、以下の通りに接続します。
①NO | ポンプの+側(電源側、赤い線)を接続 |
②Common | 9V電池の+側を接続 |
③NC | 何も繋がない |
④GND | ラズベリーパイのGNDを接続 |
⑤Vcc(5V) | ラズベリーパイのVcc(5V)を接続 |
⑥Signal | ラズベリーパイのGPIOを接続 |
<ポイント(動作イメージ)>
ラズパイのGPIOがONすると、リレーの①NO=ポンプ(+)と②Common=9V電源(+)が繋がり、ポンプが駆動し水を汲み上げる
GPIOによってポンプをON/OFFさせます
プログラムを組む(cron、python)
あとはLEDを定期実行させたのと同じpythonのプログラムが使えます。ただ、ポンプの駆動時間を設定するためsleep時間を長くします。
cron設定内容
テストのために3分ごとにポンプを動かすようにcronを設定します。
「✳︎/3」で「3分毎」という設定になるんでしたね。
*/3 * * * * python /home/pi/cron_test/test.py
pythonプログラム
ポンプを動かすためにGPIOを制御するプログラムを作ります。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(2, GPIO.OUT)
GPIO.output(2, GPIO.HIGH)
time.sleep(10.)
GPIO.output(2, GPIO.LOW)
time.sleep(0.5)
このプログラムはcornによって、定期的に実行されます。
GPIO02をHIGH(ON)した後の、time.sleep(10.)がポンプを駆動する時間となります。
動作確認
では作ったプログラムの動作を確認しましょう。
プログラムが正しい場合、3分毎に10秒間ポンプが駆動し水を汲み上げて撒きます。GPIOの出力が変わると、リレーの接点の状態が変わるため、カチッという音が鳴るため切り替わった事がわかると思います。
どうでしょう。「カチッ」という音の後でLEDが点灯、そしてポンプで水をくみ上げて水を撒く、この一連の動作が分かるかと思います。
ほんの数行のプログラムで自動の水やり機が実現できましたね。IoTって難しいように見えて、実はちょっとしたプログラムで1つのシステムができてしまうんです。
すごいですよね〜。
まとめ
今回はラズパイとポンプ、そしてリレーを使って水やり機を作りました。このポンプを変える事で色々な事が実現できそうですね。
スピーカーみたいなものをつければ、目覚まし時計とかできそう
アイデア次第でいろいろなシステムを作ることができますので、ぜひ試してみてください!
コメント