今回はラズパイとリレー回路を使用して(ポンプ用の)モーターを動かしていきます。
こちらの「自動水やり装置 DIYキット」を使用します。
用意するもの
今回準備するものは
- ラズパイ
- WayinTop 自動水やり装置 DIYキット (リレーモジュールも含まれています)
- ジャンパーケーブル (メス-メス、オス-メス)
- ボタンモジュール
たったこれだけ
ボタンモジュールはポンプのON/OFFのトリガーとして使用します。
(無くてもポンプの動作は可能です。)
ボタンモジュールは下記記事で紹介しているKumanのセンサーモジュールキットに同梱されているものを使用しました。
自動水やり装置使用方法
自動水やり装置の配線図
ラズパイとリレーモジュール、ポンプ用モーターを以下のような配置でジャンパーケーブルで接続した。
GPIO配置図も載せているので参考に。
■ ポンプモーター
GND -- リレーモジュール (COM)
VCC -- ラズパイ (5V)
■ リレーモジュール
GND -- ラズパイ (GND)
VCC -- ラズパイ (5V)
IN -- ラズパイ (GPIO 4)
COM -- ポンプモーター (GND)
NO -- ラズパイ (GND)
■ ボタンモジュール
GND -- ラズパイ (GND)
VCC -- ラズパイ (3.3V)
S -- ラズパイ (GPIO 17)
ソースコード (Python)
さて、今回は要件を満たすコードは自分で書く必要がありましたので、書きましたよ。
動作仕様
・ボタンを押している間はポンプON
・ボタンを離すとポンプOFF
※ ボタンのON/OFFに合わせてリレーモジュールのON/OFF制御を行っています。
import RPi.GPIO as GPIO
import time
# ボタンモジュールPIN
Button_PIN = 17
# リレーモジュールPIN
Relay_PIN = 4
# リレー有効の場合はTrue
RELAY_STATUS = False
# 初期化処理
def setup():
GPIO.setwarnings(True)
GPIO.setmode(GPIO.BCM)
GPIO.setup(Button_PIN, GPIO.IN)
GPIO.setup(Relay_PIN, GPIO.IN)
# ボタン検知待ち
def button_detect_loop():
GPIO.add_event_detect(Button_PIN, GPIO.FALLING, callback=button_detect, bouncetime=200)
while True:
pass
# ボタン検知
def button_detect(ev=None):
# ボタン用GPIOのinput値は、押下中=0, 押下なし=1のため
while not GPIO.input(Button_PIN):
relay_on()
time.sleep(0.1)
# 上記ループを抜ける場合リレー状態をOFFにしておく
relay_off()
# リレーモジュールをONにする
def relay_on():
global RELAY_STATUS
if RELAY_STATUS is not True:
# リレーON
GPIO.setup(Relay_PIN, GPIO.OUT)
RELAY_STATUS = True
# リレーモジュールをOFFにする
def relay_off():
global RELAY_STATUS
if RELAY_STATUS is not False:
# リレーOFF
GPIO.setup(Relay_PIN, GPIO.IN)
RELAY_STATUS = False
# 終了処理
def destroy():
GPIO.setup(Relay_PIN, GPIO.IN)
GPIO.cleanup()
if __name__ == '__main__':
try:
# 初期化
setup()
# ボタン押下待ち
button_detect_loop()
except:
print("error!!")
finally:
destroy()
上記回路設定で組んでおけばソースコードコピペで動作します。
(それ以外のピン配置の場合は適宜PIN設定を変更してください。)
ポンプ制御実行
ファイル名はRaspiPump.py
としました。
pythonでプログラムを実行させておきます。(これでボタン待機状態になりますので、あとはボタン押下するだけ)
python3 RaspiPump.py
おっと、ボタンを押す前にポンプのセッティングをしておきます。
- このポンプモーターを水の中へ入れます。
罪悪感あるけど...大丈夫なやつです
(僕は牛乳の中に入れました。)
- ポンプのホースは外に出しておきます。
ホースの先から水(牛乳)が出てきます。
そしてボタンを押すと..動いたあぁ!!ポンプが水を吸い出してます。
牛乳を吸い出してコーヒーに入れている。..つまりカフェオレを作っていますね。画期的!
いかがだったでしょうか。WayinTop 自動水やり装置 DIYキットを使えば簡単にラズパイでポンプが制御できます。
僕はLINEと連携させてLINEから遠隔でポンプを動作させていたりします。(いつか記事書く)
ラズパイで自動水やり装置を作ってみたい方は、ぜひこちらのモジュールを試してみては。
それと、僕が使っているジャンパーケーブルはこちらがおすすめ。
(オス-オス、オス-メス、メス-メスpinと複数サイズ感が混在していていろんな用途に使えます)
コメント