Connect a relay board to your Raspberry Pi

If you want to switch things like lights with your Raspberry Pi, you need a relay board.
A relay is an electronic switch that can be switched with a low-voltage signal.
Exactly what the Raspberry Pi offers as GPIO pins.
The relay board I’ve found is ideal for the Raspberry Pi.
It has 8 relays and every relay can separately be switched with the Raspberry Pi because it has 8 GPIO pins.
Also, the voltage needed to switch the relays is 5V, this can be taken directly from the RPi.
This is why you don’t need any additional electronics.
Hardware
You need the following things.
I’ve bought these on banggood.com, but they’re widely available.
- 5V 8 channel relay board (or Sainsmart 5V 8 channel relay board)
- Female to female jumper cables
- Raspberry Pi
Pin scheme
WiringPi uses its own pin numbering system.
The scheme below connects relay 1 to WiringPi number 0, relay 2 to number 1, etc.
See this page to find the right pins on the Raspberry Pi.
Pin on RPi | Pin on relay board | WiringPi number |
---|---|---|
5V power | VCC | |
GND | GND | |
GPIO17 | INS1 | 0 |
GPIO18 | INS2 | 1 |
GPIO27 | INS3 | 2 |
GPIO22 | INS4 | 3 |
GPIO23 | INS5 | 4 |
GPIO24 | INS6 | 5 |
GPIO25 | INS7 | 6 |
GPIO4 | INS8 | 7 |
(This scheme is based on a revision 2 Raspberry Pi)
Software
I’m using WiringPi as library to control the connected relay board.
WiringPi is widely supported for popular languages like NodeJS, PHP, Python, etc.
- Install WiringPi
- Set every pin on OUT mode
gpio mode 0 out gpio mode 1 out gpio mode 2 out gpio mode 3 out gpio mode 4 out gpio mode 5 out gpio mode 6 out gpio mode 7 out
- Write 0/1 to the ‘WiringPi number’ from the pin scheme to test the relays
gpio write 0 0 gpio write 0 1 gpio write 1 0 gpio write 1 1
Now startup your IDE and build something awesome to control the electronics connected to the relay board!
Nacho
April 5, 2015 - 10:00 pm
As per documentation, Raspberry PI doesn’t support 5V and doesn’t have an over-voltage protection. Are you sure that this wiring is safe for our PI?
Tim
April 29, 2015 - 11:34 am
The 5V pin is directly connected to the 5V from the USB. It’s maybe not the safest solution, but it still works after 8 months.
Jason
October 2, 2016 - 5:17 am
This is wrong. You should pull the jumper, and connect +5v to JD-VCC. Then use +3.3v on the signal VCC. It may work, but this isnt good for the pi the way you wired it. The relay board is opto-isolated, which allows the 3.3v gpio to activate the coil that uses the 5v.
hansaplast26
February 17, 2017 - 3:34 pm
I would recommending the use of a driver instead of directly connecting relays to the GPIO pins, such as the ULN2803
Telimektar
March 15, 2018 - 7:45 pm
Jason +1 Everything what you say is true.