Build a relay circuit to switch power.
Today we are building a relay circuit to turn power points, lights and other appliances on or off.
Many of AAIMI's home-automation functions require the ability to switch appliances and lights on or off. This requires two circuits, a relay circuit and a relay-driver circuit.
The relay-driver circuit uses the 3.3V from the Raspberry Pi's GPIO pins (just a few mA) to provide 12V (at around 70mA) for the relay. The relay then uses that 12V to switch the appliance power on or off (up to 10A).
Today we are building the relay circuit. Later in the week we'll build the relay-driver circuit, and I'll provide some Python code to test it.
As usual I am using salvaged parts where possible. You will need the following components.
These relays use an electromagnetic coil to trigger an assembly that closes another circuit to activate higher voltage/current appliances.
I get them from old CRT televisions and monitors. They come in either 12V or 5V models. The one pictured above is a 5V unit.
I'm actually using the more common 12V relays. The power supply for my base station already has 5V and 12V power rails, which makes 12V relays a suitable choice for me. If you only have the 5V power you are using to power the Raspberry Pi you may be better off using 5V relays powered from the same power source.
You should choose the same voltage units for all of your relays so they can all be driven from the same relay driver.
A PCB board
You can buy these for less than a buck online and cut them in half to make several relay boards.
A LED and resistor
You don't have to use an idicator LED on your board but it's handy for testing and troubleshooting without appliances plugged in.
You will need to add a current limiting resistor inline with the LED (around 600 Ohm).
Terminals for AC cables
The relay is installed in line with one wire of the light or appliance you are powering. The best option would be to mount screw-terminals directly to the board. In my initial prototype my relays are mounting directly above the power points and light switches so I have attached a pair of short cables with screw terminals on the ends. These tuck into the wall unseen behind the switch or power point to intercept the active AC cable.
You could use screw terminals for the 12V input but I chose to use pins for this prototype. I have plenty of two-pin cables from inside TVs that can use these pins to neatly connect the relay board to the relay-driver board. For more distant units I will use screw terminals.
Below is the circuit diagram for our relay board.
The 12V power for the lower pins will come from the relay driver we build next week. The upper pins will connect to the appliance.
The relays are easy to figure out. They have four pins underneath, two of them evenly located on one end, and the other two in staggered formation on the other end.
The two evenly alligned pins are the 12V connectors to activate the relay coil. They work regardless of polarity, so connect your positive wire to whichever side you plan to mount your LED, and the GND to the other pin.
The two staggered pins on the other end are for your appliance power. They will intercept inline with the active wire in your appliance's power chord.
To mount the relay, align the pins with the holes in the PCB. The staggered pin doesn't exactly match the corresponding hole in the board, so angle that in first then allign the other three pins and push the relay down. Bend the four pins over to hold the unit in place while you solder wires or terminals on.
Solder one end of the R1 resistor to the 12V positive pin of the relay and route the other end to positive side of your LED. Solder a wire from the GND pin on the LED to the Ground connection on the PCB.
Testing the unit
You can test the relay circuit without anything attached to the appliance connectors.
Simply attach your 12V connectors to a 12V power supply and turn it on. You should here a click as the relay engages and your LED should light.
You can now connect your appliance and try again..
This time when you connect the 12V power the relay should click and your appliance should switch on.
Building a box
To safely use 240V power with your relay you need a solid enclosure. The last thing you want is someone grabbing one of those connections.
For my prototype I knocked up a quick box and sprayed it black to match the base-station.
This is a bit bulky for what it does but I will be adding a sensor array on the front later to make it a full AAIMI room controller, so I wanted a bit more room in the front for additional cabling. I chose to use a perspex top so I could see the LED for testing and troubleshooting.
Using this plug makes things safe and convenient. I always keep these plugs when I find them during my series of teardowns, as they allow you to use any desktop computer cable to connect the box to the wall
The plug has three wires of suitable length for this project. The colors in this case don't match the standard here, but the earth is easily identified by the yellow stripe. From the pinouts I determined the white wire was the live wire and the black was neutral.
The neutral and earth wires attach directly to the power point. The live wire connects to the power point via the relay circuit.
The image above shows the relay in place and the three wires awaiting connection to the power point.
I cut the see-through cover from a broken plasma TV screen. I think it adds a nice touch. After screwing that down the project is complete.
Where to next?
We now have a functional relay circuit, but we are not ready to connect it to the Raspberry Pi yet, because the Pi's GPIO pins only push 3.3V and our relay circuit requires 12V.
The next build in this series is a relay driver circuit to take the 3.3V from the Pi and safely route 12V to the relay. For this circuit we will use a ULN2003 transistor array that can drive seven relays.
After that I will show you the Python code to run the system from a Raspberry Pi.