This is a very simple wifi enabled (ESP8266 12e) LED dimmer for single colored LED strips.
Its purpose was originally to be controlled by Node-RED (http://nodered.org) and node-red-contrib-homekit (https://flows.nodered.org/node/node-red-contrib-homekit) using MQTT events. Thus, one could control this with Apple Homekit.
Of course by using MQTT you can control it with whatever you like and not necessarily with Apple Homekit.
The layout is made with KiCad but I have also included an screenshot of the schematic, in case you want to make your own PCB with another software. You could simply produce this PCB for example by uploading the ESPDimmer.kicad_pcb
file directly in AISLER .
Nr. | Part | Package | Qty. |
---|---|---|---|
1 | Capacitor 100nF | 0402 | 2 |
2 | Capacitor 1uF | Package 0402 | 1 |
3 | Resistor 10k | Package 0805 | 1 |
4 | Voltage regulator TLV1117 | SOT-223 | 1 |
5 | AK300-2 Terminal for LED strip | - | 1 |
6 | ESP8266-12E | 1 | |
7 | Standard barrel jack for power supply | 1 | |
8 | 30V Single N-Channel Power MOSFET | TO-220 | 1 |
The firmware can be compiled in Arduino IDE using the available ESP8266 package. In order to flash the firmware you will need a USB-to-Serial adapter such as the FTDI232 that I am using (https://github.com/jandelgado/arduino/wiki/FTDI232-USB-to-Serial-converter). Keep in mind that you will have to update the Wifi credentials and also the MQTT broker hostname and port to fit your own.
Of course, you could write your own firmware or you use another one since this is basically a breakout board.
The default firmware subscribes to the topic "/light/1" and expects the following JSON messages to control the LED strip and its brightness.
- Turn on command:
{"On":1}
- Turn off command:
{"On":0}
- Set brightness level:
{"Brightness":<A VALUE BETWEEN 0 AND 100>}