HOLD OFF ON BUILDING THIS for now (March 30 2017) for the simple reason that I know someone just made a slight variation on this design that might be interesting to build instead. It has 2 extra active components (transistors) but still a very simple design. The large capacitor I am using can then be replaced by a smaller one of lower voltage)

Warning: this project uses deadly voltages, as well as a sizeable capacitor to store these deadly voltages. Even after you disconnect the circuit from the grid, the capacitor still can give you a jolt to remember!!

Over 3 years ago, I published a simpel TRIAC AC dimmer for the arduino. That proved to be a very popular design. Yet in spite of the simplicity of the circuit the software needed was a bit complicated as it needed to keep track of the zero crossing of the AC signal, then keep track of the time and then finally open the TRIAC. So to avoid letting the arduino just wait for most of the time, an interrupt and a timer were necessary.

So why can't we just use PWM, like with LED's? Well, I explained that in that instructable, but there are possibilities to do that. Someone looking for that would no doubt end up at design by Ton Giesberts/Elektor Magazine that can do PWM of an AC source. This design is on Instructables as well.

That will work, but in spite of my admiration for Giesberts and Elektor, there is something fundamentally wrong with that circuit. I think it is necessary that I explain what is wrong before I come up with improvements. If you are not interested in the technical details, just skip to the next step.


At first glance, the Giesberts circuit seems like a complicated circuit, but we can bring it back to 2 or 3 components: A lamp, and a switch, but as in fact the switching is done in DC rather than AC, it becomes a lamp, a bridge rectifier and a switch. That switch, which is in fact the MOSFET and the components around it is controlled by the Arduino (or PIC or whatever). So, switching that on and off in a certain duty cycle will switch the lamp on and off and if done fast enough the lamp won't be seen anymore as flickering, but as being dimmed, similar as we do with LED's and PWM.

So far so good. The theory behind the circuit is sound. However, the MOSFET needs a voltage on its gate to be switched on and as we cannot get that from an arduino for obvious reasons (it is only 5 Volt, which isnt enough AND you don't want your arduino to be connected to the mains grid), Giesberts uses an optocoupler. That optocoupler still needs a DC voltage and Giesberts is using the to DC rectified AC voltage for that.

giesberts2And that is where the problems start, because he is feeding the gate from the MOSFET, with a voltage that is shorted by that same MOSFET. In other words, if the MOSFET is fully opened the DC voltage coming from the rectifier is completely shorted. Therefore there will be no voltage anymore to put on the gate and the MOSFET will block again. This effect might not be so outspoken by a low dutycycle (= lamp on a low intensity), because of the presence of C1, that will retain its charge for a while and will be receiving new charge thanks to the low dutycycle, but at 25-80% dutycycle the voltage on C1 just cannot be sustained anymore and the lamp may start to flicker. What's worse is that at moments that the voltage on the gate drops, for a while the MOSFET will be still conducting, but not be fully saturized: it will slowly go from its nominal 0.04 Ohm resistance to infinite resistance and the slower this goes, the higher the power that needs to be dissipated in the MOSFET. That means a lot of heat. MOSFETS are good switches but bad resistors. They need to be switched ON and OFF fast. Currently the circuit heavily relies on D1 to keep the voltage on the gate of T1 at acceptable limits while the voltage is swinging between 0 Volt and Full peak At peak the rectified voltage is 230x1.4=330V The average rectified voltage is 230x0.9=207V

If we forget about the smoothing effect of the capacitor for a while and presume the optocoupler to be fully open the average voltage on the capacitor would be 22/88 * 207 =52 Volts and in peak 22/88 * 330= 83 Volts. That it is not is because of D1 and the fact that the MOSFET will short the Voltage.

If the optocoupler is not in saturation and its impedance therefore infinite, the capacitor C1 would charge up to full rectified voltage if not for D1. On average 3mA will flow through R3,R4 and R5 (207-10)/66k which equals a power consumption of 0.6 Watt in the resistors R3,R4, R5

Improvements giesberts3

The problems mentioned with the Giesberts circuit can be remedied by putting the lamp somewhere else: remove it from the AC line and put it in the Drain of the MOSFET. For the lamp it doesnt really matter if it is receiving DC or AC. You could make more improvements, as now there is no need to cater for a a voltage swinging between 0 and 330 Volt

Step 1: AC PWM Dimmer: IGBT or MOSFET

But as I was changing the design, I might as well take it a step further and use an IGBT (Insulated Gate Bipolar Transistor) Simply put, an IGBT is a device that is a MOSFET at its gate and a bipolar transistor at its Collector and Emitter, making it an ideal switch. Thus we can come to the following circuit: igbt-11

The IRG4PC30 acts as a fast switch that either switches the lamp on or off. It needs about 12 Volt on its gate to do that. The voltage divider R1/R2 should put about 13-15 volts* max on the Gate of the IGBT, switching the lamp fully ON. As there might be some fluctuations on the grid 4k7 is a safe value. If you want to be safe, make sure you have an IGBT with a Base Emmitter breakdown voltage of >= 20 Volt and put a zenerdiode of 15 V parrallel to R2. Possible IGBT's are IRGPC40W or IRG4PC30, but basically any will do provided they have a Base emmitter voltage rating of at least 20 Volts When the optocoupler receives a signal, it opens and pulls the voltage on R1/R2 to zero, effectively closing the IGBT. The PWM signal of an Arduino is faster than the 50Hz Frequency so you will basically see the PWM signal modulated on the 50Hz rectified sine wave, making the effective voltage lower. This circuit is ONLY for incandescant bulbs. It is NOT for any inductive load as it is DC biased. With regard to the capacitor C1, I have tested it with 100uF but will probably work with lower capacity as well.


  • Although the average voltage will be 230*0.9, C1 may eventually charge to 310-330 hence 4k7 is a safe value.


Reader acolimitchi pointed out to me that if you add the zener, the 6k8 resistor isnt really necessary anymore, which is true, so the circuit becomes like this:


With regard to MOSFETs vs IGBTs both have their pro's and con's and the voltage and switching rate this circuit is operating under may just be in an overlap of both spectra. Using a MOSFET rather than an IGBT is therefore possible. MOSFETS are generally also cheaper than IGBT's. A tried and tested MOSFET is the STP10NK60Z (Thanks Pavel). This MOSFET has a gate-source breakdown voltage of 30 Volt and has clamping diodes protecting the the gate. Another one that worked quite well is the relatively cheap IRF 730. MOSFETs usually need a bit of a higher voltage than IGBTs to switch so a 6k8 resistor should be fine. If you use a MOSFET without clamping diodes a zener of 15 Volt is adviseable.

I couldnt embed a video, but you will find it here. It is a 60 Watt lamp. The slight flicker you may see when the lamp is turned up, is an artefact. It is caused by my cellphone camera trying to adapt to the changing light intensity

Conclusion: stick to the MOSFET, they are on average 4 times cheaper than IGBT's

Bridge rectifier. I used a 1 amp 400 Volt DIL pack 0.25 euro
Diode 1n4001 or 1N4007 0.10 euro
Capacitor 100uF 350-400 Volt 1.36 euro
resistor 100k 0.5-06 Watt (actually it dissipates abt 480mW max) 0.12 euro
resistor 6k8 1/4 Watt 0.10 euro
Zener 15 Volt 0.5 Watt 0.08 euro
MOSFET IRF730 or STP10NK60 0.58 euro
Optocoupler 4n35 0.25 euro
Resistor between 330ohm-470ohm (possibly even 1k dpending on the Optocoupler) 0.10 euro

So, alltogether at single piece retail prices the cost is 2.94 euro

Step 2: AC PWM Dimmer for Arduino: Thoughts

Without any input signal the lamp will burn at max.

If you notice that When writing a zero PWM value to the circuit the lamp burns a bit less than when you switch off the Arduino, that means that the 4n35 is still opened a bit. Play around with t470 Ohm serial resistor, maybe you need a higher value.
The 100uF 400 Volt can be quite big. A 50 uF may work as well and maybe even a smaller value. However, you do not want the value to be too small thus as not to be able to deliver enough voltage for the Gate of the MosFet in fast switching.

Should you wonder if perhaps you can use a capacitor of a lower voltage -say 25 Volt- and connect that over the zener/6k8 resistor in order to replace the 400 Volt one... maybe that will work, but the 4N35 will make it lose its charge almost instantaneously and due to the large RC time (remember, there is 100k resistor) it might not have time to fully recharge again

The Arduino has a PWM frequency of about 500 Hz. That is ample enough. My guess is that around 100 would be more than enough. The Attiny85 delivers I think 280 Hz on its PWM pins. Software ofcourse can always elevate that if necessary.

This dimmer is not suitable for inductive loads

This dimmer does NOT need zero cross detection.

Heat development:
I tested this with a 60 Watt lamp at full brightness, without any heatsink: the temperature rose with 9 degrees above ambient after half an hour and an hour.
Then I tried with continous dimming from zero to full and back again.: The temperature rose with 10 degrees above ambient after about 10-15 minutes and stayed like that for the hour I tried.

With a 150 Watt halogen spot the temperature went up 15 degrees. It reached max temperature after about 10 minutes and then stayed the same for the hour tested.

This was measured with a DHT11 sensor directly clamped to the MOSFET

<p>I have read all your instructions and informations carefully for AC PWM Dimmer for Arduino Circuit. But what I want is to be able to control immersion water heater which is 1500 watts above 10 amps. I also know that this design supplies DC output but I think that is not problem for this heater as it should work on both AC/DC. It is just heat dissipation. If I choose an heavy duty power mosfet, can this work?</p>
<p>I think I replied this in a PM already :-)</p>
<p>i am usinge this circuit for dimming lamp<br>can i control celling fan speed<br>for this circuit <br>is btter for mee<br><br><br></p>
<p>If it is better for you, by all means. It will probably work on ceiling fans.</p>
<p>Hi Bloke , your circuit is wonderfull ,please tell me , is it working on induction load like Ceiling Fan ? i want to control my fan through mp3 ir remote (+, - ) Buttons .</p><p>kindly ,confirm me is this circuit will work on induction load ? </p><p>Which is the sketch file of arduino ? please upload it </p>
<p>You cannot use this for a ceiling fan as it feeds DC to the load.<br>You keep asking me for a sketch. There is no sketch as I cannot foresee what each individual wants to do with this circuit, but the only thing you need to do is to write a PWM value to the circuit</p>
Hi your circuit working great with incandescent bulb 60w. But i need to dim led bulb, what are the modification that i need to do?
<p>Hi thanx for the ansvers.<br><br>I would like to dim 2 x 40W/230v resistive (old style) bulbs, using an ESP8266.<br><br>I would like to use a 230v/12v Mini-PSU for the logic (Fet driving , and ESP).<br>http://www.ebay.com/itm/281772457643<br><br>And i'd put a Buck converter after the 12v PSU to get 3.3v for the ESP.<br><br>Reason:<br><br>1: I need 3.3v for the ESP anyways.<br>2: I would like to drop the capacitive PSU, primarily because of (1).<br><br>Q: Can a MosFet really switch AC ?<br>Seems like this schematic is switching unrectified mains w. a Mosfet<br>http://www.see-solutions.de/projekte/2007_02%20sch_2.pdf<br><br>Might be valid: I found this appnote : <br>http://www.st.com/en/evaluation-tools/steval-ild005v1.html<br>http://www.st.com/resource/en/application_note/dm00206695.pdf<br>Trick seems to be Dual Mosfets &quot;reversed&quot;<br><br>Well the diodebridge seems cheaper , but the Fet's could be more efficient (Ideal diode) - Correct ?<br><br>/Bingo</p>
<p>A Mosfet cannot switch AC, in the circuit that you refer to there are two mosfets to switch each phase of the Sinus wave. Also that circuit works with a zerocross detection and thus cannot use PWM </p>
<p>I'd like to use this circuit , as suggested here</p><p><a href="http://www.eevblog.com/forum/projects/ac-rectified-dc-mosfet-dimmer/" rel="nofollow">http://www.eevblog.com/forum/projects/ac-rectified...</a></p><p>But someone there isn't happy with it.</p><p>Any comments ?</p><p>I need 3.3v for an ESP8266 anyway , could i get rid of the Capacitive PSU and use a 230v-&gt;12v PSU instead for the FET driving, and then a DC-DC for the 3.3v to the ESP ?</p><p>/Bingo</p>
<p>Bingo, I was kinda focussed on the first part of yr question and forgot the 2nd part.<br>I am not entirely sure what it is you are trying to do. Do I understand correctly that you just want to use 12 Volt to drive the FET and use the 12 Volt as well to step down for a 3V3 source?<br>Sure you can do that. In fact that is what many Arduino PWM examples already show, even without an optocoupler but directly driven by an IO pin. The only issue is that 3V3 is a bit low to drive most FET's directly (although there are some fets that will), so you will need either a very low logig FET or indeed a circuit such as this to increase the gate voltage... but you can also do that with a transistor.<br><br>The reason I use an optocoupler here is to get full galvanic separation.<br>In your case I would just make it simple. Take a Low Logic Level MOSFET such as the IRLB8721PbF and trigger that directly from an I/O pin of your ESP. You may want to put a small resistor in between. Another choice perhaps is an FQP30N06L</p>
<p>His comments are this:</p><p>*First: if you switch off your Arduino, the lamps will be lit always. If you decide that the &quot;always on&quot; functionality is OK, then:<br>-indeed and I made that pretty clear<br>*There's<br> absolutely NO reason to use a 400 V cap. The cap will work just a well <br>connected to the junction of R4/R5, so a 25 V type is enough.</p><p>-this is dumb as the RCtime then comes into account, the Transistor will switch slowly, function as a resistor, get hot and ghet killed<br><br>*D5 is unnecessary.<br>-as I indicated, it is there for safety 'in case of'<br>*Reduce R5 to 5k6<br>-as I recall I have discussed the values of R5<br>*Place a resistor between R4/R5 and the 4N35<br>-you could, but there is no need. If too big again the voltage will not drop fast enough leaving the transistor in limbo, acting as a resistor rather than a switch. dissipating heat<br><br>Circuit is working fine for me for some time already</p>
<p>Ohh i know i'll prob loose the galvanic isolation , but it's in a closed box anyways , using the ESP for comms.</p>
<p>Any specific recommendations or alterations for 110VAC in the US? Do you have a load limiy for 110?</p>
<p>The Load is mainly depending on the FET you are using.<br>It is very well possible to use the circuit with 110 Volt, You need to make sure that the gate of the FET can receive its nominal Gate voltage, which lets say is about 15 Volts.<br>Initially I used a voltage divider, the 100k and 6k8, obviously for 119 Volt you have to change that ratio.<br>however, it is possible to use the circuit without a voltage divider, just with the 100k and 15 Volt zener diode.<br>At 220 Volt there is about 2mA flowing through the 100K resistor. If you just use the zener and the 100k, at 110 Volt that would be about 1mA. I reckon the additional gate current will not cause the voltage to drop significantly extra over the 100k, so I'd say just use the 100k and 15 V zener (or another voltage, if that would suit your FET better.<br><br>Now there is an advantage over using the voltage divider rather than just the 1 resistor and a zener: If you have just a zener and a resistor, if for whatever reason your zener would blow, your Fet most likely will go up in smoke (but it will die heroically). With the voltage divider at least there is a double safety, but on 110 Volts obviously you have to calculate a different value for the resistors say a 100 k plus a 15 k, or a 50 k+ 6k8 (or maybe a 7k5)</p>
<p>Hello, if using 110V what voltage rating would you recommend for the capacitor?</p><p>Thanks in advance. </p>
<p>Is this circuit useable for 220v Dimmerizable Led Lamps ??</p>
<p>By now this must be the most asked question in the comments. All I can say is: it depends on the LED lamp. If it is suitable for dimming by a 'classic' Triac dimmer, it will most likely work on this circuit too, but not all 'dimmable' leds are suitable for that</p>
<p>Very good instructable. It's perfect for a project I'm working on control dimmer for incandescent bulbs. As I intend use this solution to also turn on and off bulbs in a dinner/living rooms I had modified a little bit the circuit to do not keep the transistor inside the optocoupler always in saturation state. I attached an image with the change in the circuit. Do you think it's ok or not? In my country the AC power is 120V/60Hz. Substitute the 100K resistor by one around 50K is enough? Thanks in advance for any comment.</p>
<p>Hi Mtaver, have you been able to adapt it to 110v?</p><p>Thanks!</p>
<p>yes that would probably be ok.. Most likely you could even do without R5 and adapt the zener exactly to your FET, say 12 Volt, and lower the 100uF to 50uF</p>
<p>OK. Thank you for the tips. I already had used your other solution from 3<br> years ago with TRIAC and zero cross detection circuits but as you said <br>the software become complicated. Doing the PWM in DC way like with LEDs is easier regarding software.</p>
<p>yes indeed. software wise this is easier :-)</p>
<p>Thanks for your amazing project. Is this circuit works with 110v? In case of afirmative answer how works with the bridge rectifier? Should I conect the Phase (110v) or Neutral (N) or both (like in 220v?)<br><br>Thanks </p>
<p>is it possible to dim a LED strip with this circuit?</p>
<p>most likely not. I presume you mean a 220V AC fed ledstrip? Usually those have a transformer that doesnt like DC.<br>If it is just LED's ( that build up to the proper voltage) then yes you will be able to use this circuit very well</p>
<p>Thank you for sharing! Great project!</p><p>Here is my veroboard layout for this circuit. I've already built couple of these and it seems to work ok. I hope it will be useful for somebody.</p>
<p>Hi Sasha lee, thanks for sharing the veroboard version.</p><p>In this circuit still need the brigde rectifier?</p><p>What software you use to make a veroboad design.</p><p>Thanks!</p>
It's just 4 diodes instead of bridge rectifier chip. I use DIYLC to draw layouts
<p>I've been meaning to build this for a while so thanks diy_bloke for the project and Sasha for the board layout. I'm planing to use veroboard too but replacing the diodes (D3,D4,D5,D6) with a bridge rectifier. </p>
<p>Thanks Sasha, looks great :-)<br>I am happy you are satisfied with my circuit </p>
<p>I'm trying to build a dimmer for a AC leds I bought a bunch of led like this <a href="https://goo.gl/1LZKSN" rel="nofollow"> https://goo.gl/1LZKSN</a></p><p>however<br> all the example projects I can find use resistive loads like old <br>incandescent lights that no body use it anymore. Will this instructable<br> be the way to go for this kind of led? I'm little lost following all <br>the different proposed methods this is one of my first project in <br>electronics but I really need to find a way to fade these leds.</p>
<p>unless yr ac suitable leds are stated as dimmable, the chance you can dimm them is very slim. These lamps contain electronics that has to drop down the voltage and rectify it and that circuit generally doesnt respond well to a dimmer.</p><p>If u have ac suitable leds that are marked as dimmable (yours are not it seems) then that usually means that they respond to a classic triac dimmer. Some of these ac suitable leds though require a special dedicared led dimmer. </p><p>Individual leds ofcourse are easily dimmable with pwm</p>
I just realized how fool I've been. Ok moving on if I buy instead 12V DC led like these https://goo.gl/37DQNz<br>deemed as dimmable I can't use them with PWM I have to use a TRIAC?<br>And instead a normal 12V like this https://goo.gl/jgxVue<br>I should be able to dim anyway using PWM and a microcontroller?<br>It's hard to find spot with some decent warm light and I want to be able to dim them using arduino <br>Sorry for such basic questions you can't imagine how much you been helpful so far to me, you have explained a lot of things here that even if they don't apply directly to my needs they have been useful to understand a lot of concepts.
<p>with the first one, the 12 Vdimmable LED, I presume it needs a dedicated LED dimmer. The second one also has a bit of a problem.It is meant to replace a halogen 12 v spot. these are fed with AC, now it depends on how those are put together but most likely the electronics in it is minimal, at best a rectifier. If that is the case you MAY be able to dim it using 12 volt DC PWM.</p><p>However some of those dont have a rectifier, just antiparallel LED's. in that case you may be able to dim them with 12v dc pwm... but only half of the led' s. Best chance is just to try</p>
<p>Is there a reason other than cost to use an IGBT over an SSR?</p>
<p>I am not sure if we are completely on the same wave length here. I didnt make any cost comparison between an IGBT and an SSR. I discussed an IGBT and a MOSFET.<br>With regard to the latter, cost is basically the only factor.</p><p>With regard to an SSR, that is a completely different circuit/device, so there really isnt a comparison</p>
Yea that's true. I made some assumptions in my comment I didn't articulate clearly. Basically, I was thinking of both the SSR and IGBT as electronically controlled switching devices but when I looked up suitable components on Digi-key SSR's were much more expensive than IGBTs. So let me try again, is there a reason(s) you would not want to use an SSR instead of an IGBT?
<p>No that is certainly not the only reason. As I tried saying in my previous answer an SSR is a completely different thing. It is like asking if the price would be the only reason to buy a TV rather than a refrigerator.<br>An SSR with an integrated switch or in fact a relay. Although purely theoretically you could do PWM with a relay, with an SSR you cant. An SSR contains either a TRIAC or a Thyristor and although those could easily be opened by a pulse on the gate, closing them is a bit harder as one needs to minimize the current through the thyristor or triac. A simple zero level on the gate wont do anything</p>
<p>Thanks for the insight!</p>
<p>Hi! I need some help. I did your pwm dimmer and followed every step in here. I used an IGBT (IRG4PC30UPbF) instead of a MOSFET. However, when I operated it, it only worked on 100% and didn't dim nor turned off unless I pull the plug out of the outlet. I dont know what to do. </p>
<p>John, I am sorry to hear that. The circuit should just work with an IGBT. I am not sure what your background in electronics is, so forgive me if I go back to basics. The circuit as you can see is such that a 5Volt signal on the input of the 4n35 opens the secundary of the 4n35. As a result the 4n35 shorts out the circa 13Volt that is on the zener, and on the gate of the IGBT. When the IGBT gate is shorted to mass it should stop conducting. and your lamp should be OFF.<br><br>If that doesnt happen it means that either your 4n35 isnt operating as it should, or your IGBT is screwed up.<br><br>So I like you to do the following:<br>check your connections, especially that of the 4n35<br>Plug in your circuit and measure the voltage over the zener.<br>then apply a 5 volt signal to the input of the 4n35 (via the series resistor ofcourse).<br>What voltage do you then measure over the zener? Is the lamp off?</p>
<p>Hey! Thanks for the response! I have figured out the problem. It is that my IGBT is already busted. haha. So I replaced it with an IRF830 and it worked perfectly! :) <br><br>Could I use this dimmer for my AC blower fan? It is rated at 230V, 0.14A. </p>
<p>ah great you found it. Sadly cannot use it for AC. Can use my AC dimmer with TRIAC for that</p>
<p>I did the Giesbert circuit (the one with the red x mark) for my AC blower fan. It worked at first, then when I retested it again after an hour, it doesn't work anymore. I have replaced the optocoupler and the IRF830 already and nothing happened. Do you have any idea about where might be the source of error?</p>
<p>John, I am sorry to hear that. If you read the section on the Giesberts circuit that gives plenty of reasons why it stopped working. My experience with that circuit is that it seems to work fine for some while others continue to have problems with it.<br>Anyway, you are not really helped by that. If a circuit works well, but if you try it again an hour later it doesnt work anymore, other than a bad connection I start thinking 'heat problem' and then ofcourse the FET and the optocoupler are serious suspects. However, you already replaced both so I suggest you do the following:<br><br>remove optocoupler and FET<br>Check all your connections<br>Plug into th emains and ver very very careful from now on<br>measure the voltage over the zener. Is that 10 Volt?<br>measure the voltage over C1. Is that also 10 Volt?<br>If that is below 10 Volt, measure the voltage over the bridge rectifier and work your way down.<br>If it is 10 Volt, disconnect it from the mains and insert the optocoupler (watch out for a remaining charge on C1)<br>Put 5 Volt on the PWM pin in the circuit<br>measure the voltage over R2. How high is that? If that is close to 10 Volt the problem is with the MOSFET, if it is low, the problem is with the 4N35</p>
<p>Another inquiry (regarding the PWM dimmer):<br><br>I have tried to manually code PWM values for the dimmer. However, it seems like there is something wrong with the output voltage. When I assign 0-240 PWM value for the output pin of Arduino, the output voltage only varies very small (at 0, voltage is maximum at around 220V. at 240 PWM value, the voltage is around 125V). At PWM value of 240-248, the output voltage is not changing and stays at around 125V. When I set PWM value to 249-255, the output voltage suddenly drops to 15V and slowly decreases as PWM value increases. Do you have any idea where the problem might be coming from?</p>
<p>hmm that is a bit unexpected.<br>what is the value of the seriesresistor that you are using?<br>Are you using an Arduino?</p>
<p>series resistor on the LED side of the optocoupler? 330ohms. I am using Arduino clone. </p>

About This Instructable




Bio: I am a physician by trade. After a career in the pharmeceutical world I decided to take it a bit slower and do things I ... More »
More by diy_bloke:Working With the Funduino W5100 Ethernet Module. Uploading Data to ThingSpeak With MQTT Adding an MCP23017 I/O Extender to Arduino or ESP8266 
Add instructable to: