Items required for this project:
- 5v 2A Power Supply: Get them HERE I prefer these you can desolder the usb port and place a 4pin male header on the board and they provide solid enough power for anything I used.
- Nodemcu: If you wish to support basic get them HERE!!!All proceeds go into improving espbasic!!! if you need to keep costs down and wish to support espbasic by donation instead Purchase them from HERE! #1 supplier free 2day ship!
- IOT AC PWM Dimmer Module: Get it Here!
- Dupont Female To Female Jumper Wire: Get it HERE free 2day ship!
A little back story:
I have done a previous dimmer project. Did not realize it but I ran into an issue after installation as my testing was rather short and sweet since then I have spent hundreds of dollars trying to find the right product or combinations of products. This project incorporates the dimmer board that actually does the job finally a flicker free dimming experience! It is important to note that not all bulbs are made the same but for my example I am using walmart great value brand dimmable 100 watt equivalent daylight light bulbs. These bulbs have a good high a good mid range and a good low range of dimming it is important to test your bulbs there is a range from roughly 20 to 10% that this bulb does not allow smooth dimming but after substantial research I have found that this is due to the bulb and not the dimmer board. A regular incandescent for instance has zero flicker at all.
Another reason why this dimmer is awesome is you do not need to wait for basic to load for your light to turn on. So if you use this in conjunction with your light switch on your wall there is ZERO yes 0 wait time this was another huge selling point for me.
Now here is a video of the item after it has arrived in the mail unpacking:
How to hook your project up and start dimming:
First you start with your Nodemcu and load esp8266 basic to it.
Note this video was shot a while ago all code below is for version 3.x!!! keep this in mind when flashing.
Once basic is loaded we can proceed to hook up the connections as follows:
5v power supply POSITIVE ---> VIN on nodemcu
5v power supply COMMON GND ----> GND on nodemcu
IOT Dimmer VCNT ----> D5 on nodemcu
IOT Dimmer GND ------> GND on nodemcu
IOT Dimmer VCC -------> 3V on nodemcu
You may choose to bond all grounds to make sure they are all common to make sure there are no issues.
Next you take a 2 pin NEMA based plugin and hook it to AC input screw downs on IOT Dimmer Board
Next hook your light fixture to AC output or "load" screws on IOT Dimmer board!
Warning!!!! Be sure that there are no strands of wire or bare wire showing as this could cause a fire or arcing etc as I said before all of you reading are responsible for your own actions no mater age, sex, creed, religion etc.. If you are reading this be sure you are aware all liabilities are your own. While this is a high quality product with all components sourced from certified dealers it is possible that a user without the appropriate knowledge or safety could have loss of life or loss of property etc... Do not try this at home and be sure to consult your local electrician to see if this product meets all standards codes etc... I by reading I assume Zero responsibility even in the event of a faulty unit. If you do not agree do not read this information.
Now here is a video of how to find the range of your bulb:
Below is the code I used to find my lights range simply by plugging in a number from 0 to 890 I was able to find the operating range of these particular LED Light Bulbs.
High Range for me was 300
Mid Ranges for me was 400 - 750
Flicker Region was 750 - 780
Low Ranges 800 - 830
cls
let pinNo = D5
let Brightness = 890
print "Control PIN"
textbox pinNo
print " Brightness"
textbox Brightness
button " Set Brightness ", [SetBrightness]
button " Exit ", [TestExit]
wait
[SetBrightness]
io(pwo,pinNo,Brightness)
wait
[TestExit]
end
After I found my ranges I plugged in the information and crafted a 3 Level Dimmer button based.
wprint "LEVEL 1 BRIGHT "
button "LEVEL 1", [Highest]
wprint "LEVEL 2 MIDDLE"
button "LEVEL 2", [Midrange]
wprint "LEVEL 3 DIM "
button "LEVEL 3", [Dimmest]
wprint "OFF"
button "OFF", [LightOFF]
wait
[Highest]
io(pwo,D5,300)
wait
[Midrange]
io(pwo,D5,600)
wait
[Dimmest]
io(pwo,D5,820)
wait
[LightOFF]
io(pwo,D5,835)
wait
You get the picture you can have buttons in this manner you can use any values you want here.
Now optionally you can also do a slider and the slider code is as follows:
wprint "Dim Light: BRIGHT"
slider x, 300, 836
wprint "DIM"
button "SET", [set.pwm]
wait
[set.pwm]
io(pwo,14,x)
wait
All code is for version 3.x branch of esp8266 basic.
I hope you folks enjoy and if you really enjoy swing me some dogecoin links in my signature 25 cents for 1000 coins on weselldoges.com 1 coin will do better than a thumbs up! or donate to basic http://www.espbasic.com get involved share something etc... Whatever just jump in and start making this thing as great as it is.
Where I buy my ESP8266 boards from... (Banggood)