Introduction: Arduino Controlled Electric Kettle

You first question is why? So I'll explain. With modern day planned obsolesence almost any kettle will not last a year if used frequently. My family uses one 10+ times a day. They would fail in different ways, some would boil continuously failing to trip, and the plug would invariably burn out when pulled. some would leak water from a level inspection window, cordless kettles would short in the base due to accumulated moisture underneath.

One older copper kettle I owned had a badly designed grub screw ground inside the kettle that was intermittent due to corrosion. On one occasion the kettle itself became live. Rarely the heating element itself would fail. All of them slowly poisoned me with BPA.

So I attempted to build a kettle with no weak points. No inspection window to leak, No bimetallic thermostat to fail, ground lugs bonded to earth for safety, immersion heater coil for durability and a stainless steel body for long life.

I hold no responsibility for what you do with this information. This has the potential to kill so do so at your own risk. I do not know if building this is legal in your country, that is your responsibility to find out. Although some told me not to do this my opinion is that creating a safe project for lifetime use is a better ideal than coaxing long life out of substandard appliances.

Tools needed:

ac rated multimeter, facetester, soldering iron, tool for crimping ring terminals. Metal working abilities.

Step 1: Bill of Materials

To start, I'll list off a bill of materials. Budget for ~400 euro.

220v 2.5kw heating element. Finding a small element is a little hard to come by but keep searching until you see pic related on aliexpress and you'll find it using the following search terms:

distilled water mechanical electrical heat pipe 10mm,2500 w heating tube,heater element

Spiral Stainless Steel Immersion Heater Iron Head Distilled Water Heating Element 220V 380V

Free Shipping AC 220V 2.5KW Stainless Steel Heating Element Distiller Immersion Heater Pipe

CNBTR Home Silver Tone Stainless Steel Electrical Spiral Heating Element Helix Booster For Water Heater AC 220V 2500W.

IEC 320 C13 Female Plug Rewirable Power Connector 3pin 10A /250V

IEC 320 Socket, two bolt hole type 10A

Plug and cable to suit your house wiring.

ACSSR I used a fotek solid state relay clone supposedly rated for 45 amps, a youtube teardown indicated it can handle 13 amps which is good enough. For safety you really should buy quality as these often fail shorted.

Thermal fuse 10A 250V 130 degrees Celsius.

HLK-PM01 or similar 5v dc psu. These use a 5mm separation on the ac poles. There is a safety law that requires 6mm separation to prevent arcs so If you can find a better psu then do so.

m10x1 thread vw golf mk2 coolant temperature sensor. I like these due to their small size but any similar sensor will do.

m10x1 thread nuts 304 or food grade stainless steel. Get a few of these because you always mess up the welds on the first. avoid the square weld nut type as the threads are badly cut, they will leak and destroy the brass sensor.

small arduino, any model will do but since size is a problem go for the genuine pro micro. I did use a clone nano but found capacitance problems made it crash when installed in the kettle.

2n2222 transistor

toggle switch and rubber boot to fit.

panel mount led I had to buy a 12v type and replace the led with a low voltage one with series resistance of 1K

3x1k resistor

1x485ohm resistor, for accuracy any resistor of equal resistance to the coolant temp sensor.

DC wire, AC wire, recycled is fine and some ring terminals to fit the ssr.

single sided copper stripboard.

assorted nuts.

Step 2: Build Notes

You've seen v1 kettle in the intro. It is nothing much to look at but it helped me set up the wiring. The arduino reads the resistance of the coolant temp sensor using the arduino as a voltmeter and the 485 ohm resistor as the other side of a voltage divider. The kettle dc ground appears as negative earth to the arduino, similar to the average automobile.

I aimed for a kettle capacity of 1.7 liters and it brings it to the boil in around 4 minutes, far faster than the 10 minutes a consumer kettle takes. The picture above of v2 shows a lcd that I used when trying to eliminate bugs. currently there are two bugs in the code. One bug relates to debouncing so that when the switch is moved too fast the kettle may not turn on, the other bug causes the kettle to not latch off, merely keep the temperature just below boiling point, but the timeout timer in the code prevents it from wasting power. Both should be easy fixes but I never got around to it.

A safety feature of the code is it will not turn on after power is connected. the switch must be cycled off and on again.

The kettle can be of any design, i would advise having a flat surface to mount the element to but my own was curved and it did not leak. I did not make the stainless kettle, I contracted it out to a local company who did a brilliant job quite cheaply by modifying my prototype design above to what was cheaper to build. I did run into an issue where the box was not large enough for the breadth of the ssr but I found that I could mount it between the element terminals. Hardly ideal, I know so make sure that does not happen to you.

It is not in the circuit diagram but place the thermal fuse in the + path between the ac socket and ssr.

I mounted the dc stripboard circuit using two m3 bolts and assorted nuts as standoffs, one at each end, with copper removed around the boltholes. When constructing the circuit, keep the ac and dc parts isolated at opposite sides. remove 6mm of copper pcb around each ac terminal. It is also no harm to put solder on the pcb to strengthen the trace.

If you use a metal handle, then cover it with insulating material.AC can make the hand muscles contract and grip firmly. On my own I used a rubber pipe, not pictured.