ラズパイとリレーモジュールを使ってポンプ制御してみる

  • URLをコピーしました!

今回はラズパイとリレー回路を使用して(ポンプ用の)モーターを動かしていきます。

この記事の内容で、自動水やり機が作れるようになります。

こちらの「自動水やり装置 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

おっと、ボタンを押す前にポンプのセッティングをしておきます。

  1. このポンプモーターを水の中へ入れます。
    罪悪感あるけど...大丈夫なやつです
    (僕は牛乳の中に入れました。)
  1. ポンプのホースは外に出しておきます。
    ホースの先から水(牛乳)が出てきます。

そしてボタンを押すと..動いたあぁ!!ポンプが水を吸い出してます。
牛乳を吸い出してコーヒーに入れている。..つまりカフェオレを作っていますね。画期的!

いかがだったでしょうか。WayinTop 自動水やり装置 DIYキットを使えば簡単にラズパイでポンプが制御できます。
僕はLINEと連携させてLINEから遠隔でポンプを動作させていたりします。(いつか記事書く)

ラズパイで自動水やり装置を作ってみたい方は、ぜひこちらのモジュールを試してみては。

それと、僕が使っているジャンパーケーブルはこちらがおすすめ。
(オス-オス、オス-メス、メス-メスpinと複数サイズ感が混在していていろんな用途に使えます)

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次