ラズパイ - 水中ポンプを制御しよう

commits4 min read

💡やること

リレーモジュールを使って、水中ポンプを制御します。

🏁デモ

https://twitter.com/tw_kotatu/status/1447081901051633666

🔧パーツ一覧

no 部品名 個数 備考
1 ラズベリーパイ 1 今回は4Bで確認
2 水中ポンプ(DC5V-12V) 1 Amazon
3 リレーモジュール 1 Amazon
4 ACアダプタ - 5V 1 ポンプ用電源
5 ジャンパー線 適量 -
6 ホース(内径φ6) 1 Amazon

接続図

水中ポンプ(モータ)の駆動は、電流が多く流れるため外部電源から取りましょう。
ラズパイ自体が壊れる恐れがあります。

ピンの接続

ラズパイ側

Pin リレーモジュール 備考
5V DC+ -
GND DC- -
BCM21 IN 緑ケーブル

リレーモジュール側

リレーモジュール 接続先 備考
COM ACアダプタ 5V -
NO ポンプVc ポンプ側の赤ケーブル
NC つながない Not Connect

水中ポンプ側

水中ポンプ 接続先 備考
黒ケーブル ACアダプタ 0V -

💻環境

開発環境

  • ラズベリーパイ
    • Linux rpi 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l GNU/Linux
  • Python
    • Python 3.7.3 (default, Jan 22 2021, 20:04:44)

ラズベリーパイの設定

特になし

モジュールのインストール

OSのクリーンインストールした前提で記載しています。

apt

pigpioライブラリは、Raspberry PiのGPIOを制御するためのライブラリです。
以下のコマンドは、はじめてインストールする場合のみ必要です。

$ sudo apt install pigpio
$ sudo service pigpiod start
$ sudo systemctl enable pigpiod.service

pip

Pythonに関するモジュールをインストールします。

$ python3 -m venv env
$ source env/bin/activate
(env) $ pip install pigpio
(env) $ pip install gpiozero

📝手順

3回に分けて水を排出します。

コード

pump.py
from gpiozero import LED
from gpiozero.pins.pigpio import PiGPIOFactory
from time import sleep

# relay switchのピン
PIN_RELAY_SWITCH = 21

def main():
    # ピン設定
    factory = PiGPIOFactory()
    p = LED(PIN_RELAY_SWITCH, pin_factory=factory)

    # 水の排出
    for _ in range(3):
        print("relay on - 排出")
        p.on()
        sleep(3.0)
        print("relay off - 停止")
        p.off()
        sleep(1.0)

if __name__ == "__main__":
    main()

実行手順

(env) $ python pump.py
relay on - 排出 #<=水 - 排出中
relay off - 停止 #<=水 - 停止
relay on - 排出 #<=水 - 排出中
relay off - 停止 #<=水 - 停止
relay on - 排出 #<=水 - 排出中
relay off - 停止 #<=水 - 停止

デモの結果になります。

🔎ポイント

リレーモジュール

ラズパイから、IN(信号トリガーターミナル)に電流を流すことで、NO側をスイッチとして動作させることができます。
リレースイッチが入っているので、ON/OFFの切り替え時に、"カチッ"と音がします。

水中ポンプ

↓のような動作となります。

さいごに

ガーデニング、水やり、水槽の循環などに使えそうですね。

本記事も含め、下記のBookにまとめてあります。

https://zenn.dev/kotaproj/books/raspberrypi-tips
GitHubで編集を提案

Discussion

ログインするとコメントできます