Raspberry Pi - Pump

This tutorial instructs you how to use Raspberry Pi to control a pump. You can modify this to create an irrigation system, an aquarium, a water refilling system ...

Hardware Preparation

1×Raspberry Pi 4 Model B
1×12V Pump
1×Vinyl Tube
1×12V Power Adapter
1×DC Power Jack
1×Jumper Wires
1×(Optional) Screw Terminal Adapter for Raspberry Pi

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Disclosure: Some of the links provided in this section are Amazon affiliate links. We may receive a commission for any purchases made through these links at no additional cost to you. We appreciate your support.

Overview of 12V Pump

The Pump Pinout

Raspberry Pi Pump pinout
image source: diyables.io

The 12V Pump typically has two pins:

  • The negative pin (black) should be connected to the ground of the DC power supply.
  • The positive pin (red) should be linked to the 12V of the DC power supply.

How to Control Pump using Raspberry Pi

To make 12V pump work, it needs to be powered by a 12V power supply. A relay must be used to control the pump from a Raspberry Pi. The Raspberry Pi can then be used to control the pump through the relay.

If you are unfamiliar with relays (pinout, how it works, how to program, etc.), please refer to the Raspberry Pi - Relay tutorial for more information.

Wiring Diagram

The wiring diagram between Raspberry Pi and Pump

This image is created using Fritzing. Click to enlarge image

Raspberry Pi Code for controlling Pump

The code below turns the pump ON for five seconds, followed by turning it OFF for five seconds, repeatedly.

Detailed Instructions

  • Make sure you have Raspbian or any other Raspberry Pi compatible operating system installed on your Pi.
  • Make sure your Raspberry Pi is connected to the same local network as your PC.
  • Make sure your Raspberry Pi is connected to the internet if you need to install some libraries.
  • If this is the first time you use Raspberry Pi, See how to set up the Raspberry Pi
  • Connect your PC to the Raspberry Pi via SSH using the built-in SSH client on Linux and macOS or PuTTY on Windows. See to how connect your PC to Raspberry Pi via SSH.
  • Make sure you have the RPi.GPIO library installed. If not, install it using the following command:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Create a Python script file pump.py and add the following code:
# This Raspberry Pi code was developed by newbiely.com # This Raspberry Pi code is made available for public use without any restriction # For comprehensive instructions and wiring diagrams, please visit: # https://newbiely.com/tutorials/raspberry-pi/raspberry-pi-pump import RPi.GPIO as GPIO import time # Set the GPIO mode (BCM or BOARD) GPIO.setmode(GPIO.BCM) # Define the GPIO pin controls the pump via the relay module RELAY_PIN = 12 # Set the relay pin as an output pin GPIO.setup(RELAY_PIN, GPIO.OUT) try: # Run the loop function indefinitely while True: # Turn the relay ON (HIGH) to turn on the pump GPIO.output(RELAY_PIN, GPIO.HIGH) time.sleep(5) # Wait for 5 seconds # Turn the relay OFF (LOW) to turn off the pump GPIO.output(RELAY_PIN, GPIO.LOW) time.sleep(5) # Wait for 5 seconds except KeyboardInterrupt: # If the user presses Ctrl+C, clean up the GPIO configuration GPIO.cleanup()
  • Save the file and run the Python script by executing the following command in the terminal:
python3 pump.py
  • Check the status of the pump.

The script runs in an infinite loop continuously until you press Ctrl + C in the terminal.

Code Explanation

Check out the line-by-line explanation contained in the comments of the source code!

Check out this Raspberry Pi tutorial to learn how to make a pump turn on after 10 seconds when a button is pressed.

Video Tutorial


  • As freelancers, We are AVAILABLE for HIRE. See how to outsource your project to us
  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!