Introduction: IoT LED Matrix

Subsequent to the work done of previous instructables (IoT Development With Mobile Directly), This instructables show how to develop an IoT LED Matrix with your mobile and a MINTIA sweet box.

Step 1: Preparation

Picture of Preparation
  • an empty MINTIA sweet box
  • 1 meter 144 units SK6812 3535 LED strip (only use 60 units)
  • ESP-12E
  • micro USB female connect board
  • 3.3 V regulate board
  • Lipo charge board
  • Lipo battery 343450
  • some coated copper wire
  • a small piece of PET plastic plate
  • a power switch
  • a USB to TTL cable for initial program the ESP board

Step 2: Flash NodeMCU Firmware and Nodemcu-httpserver

Picture of Flash NodeMCU Firmware and Nodemcu-httpserver

Follow my previous instructables to flash NodeMCU firmware and upload nodemcu-httpserver.

Step 3: Programming

Picture of Programming

After the previous steps, you can program the ESP board any time with your mobile or the notebook through WiFi connection.

But it is better to test it in an earliest stage:

  1. browse the ESP board with the IP recorded in previous step, you can see the index page.
  2. click the Editor link
  3. copy and paste the led-matrix.html.txt file content to the editor page textarea
  4. fill in save file as "led-matrix.html"
  5. press save button
  6. wait few ten seconds for save complete
  7. copy and paste the led-matrix.lua code to the editor page textarea
  8. fill in save file as "led-matrix.lua"
  9. press save button
  10. wait few ten seconds for save and compile complete
  11. test browse to http://[your ESP IP]/led-matrix.html

Step 4: Patch the MINTIA Sweet Box

Picture of Patch the MINTIA Sweet Box
  1. remove the sticker of the MINTIA sweet box
  2. split the box
  3. cut and remove all the plastic parts in the middle

Step 5: Check Component Thickness

Picture of Check Component Thickness

The MINTIA sweet box is around 7mm thick, the internal part is around 5mm thick. Deduct the LED strip thickness, only remain 3.3 mm for all other components.

The micro USB female board is a little thicker than that, so require some patch.

Step 6: Design Layout

Picture of Design Layout

Everything just fit in the MINTIA sweet box.

Step 7: LED Support Plate

Picture of LED Support Plate

Cut a PET plastic plate a little bit smaller than the MINITA internal size.

Step 8: Assembly LED Strip

Picture of Assembly LED Strip

Cut 6 LED strips with 10 SK6812 units each.

Stick all LED strips to the PET plastic plate to make it become a LED matrix.

Step 9: Soldering

Picture of Soldering

LED Strip Matrix

  • connect LED signal circuit in zigzag order from top left to bottom right
  • connect LED strip Vcc altogether -> 3.3 V regulate board Vout
  • connect LED strip GND altogether -> 3.3 V regulate board GND

ESP-12E Board

  • RESET PIN (PIN 1), EN PIN (PIN 3), Vcc PIN (PIN 8) -> 3.3 V regulate board Vout
  • GND PIN (PIN 15), GPIO15 (PIN 16) -> 3.3 V regulate board GND
  • GPIO02 PIN -> LED strip DIN
  • I have abused the micro USB connector D+ and D- PIN to Tx and Rx in case I need to debug

Lipo Charge Board

  • Battery +ve -> Lipo battery +ve -> power switch -> 3.3 V regulate board Vin
  • Battery -ve -> Lipo battery -ve -> 3.3 V regulate board GND
  • Vin -> micro USB board 5V
  • GND -> micro USB board GND

Step 10: Happy Coding!

Picture of Happy Coding!

You can now:

  • browse to http://[your ESP IP]/led-matrix.html for playing with your LED Matrix
  • browse to http://[your ESP IP]/editor.html for editing and enhance your own code

led-matrix.lua is only a simple example, ESP with LED strip can make much more:

  • utilize ESP board RTC and WiFi SNTP to make a slim clock
  • led-text.lua show how can use html5 canvas to draw text on LED matrix
  • and more


souravmae (author)2017-10-24

hi, I flashed the ESP-12E and now I'm on the assembly part.

but in India, I found only Sk6812 5050 or 3528 which is 12v RGB LED strip,

now I'm stuck at its connections with ESP and Battery. please help me in this matter.

I also bought a dc step up module to step up 3.3v to 12v.

陳亮 (author)souravmae2017-10-26

Hi souravmae, I have no experience on 12v LED strip. As mentioned in this instructables, SK6812 is compatible with WS2812, can you find 3.3v/5v WS2812 LED strip near you. If not, you may google "arduino 12v ws2812", I found some useful articles may help you.

souravmae (author)陳亮2017-10-26

Thanks, I find ws2812 LED strip on amazon(a bit costly only 60 LED in 1m)
Can you please elaborate how to connect these LED in zig zag ( basically im a mechanical engineer and I don't know about these stufs but im impressed with this project and i want to make it for myself)

陳亮 (author)souravmae2017-10-26

just cut between LED then soldering metal point one-by-one by wire.

souravmae (author)陳亮2017-10-27


in the attested pic, you solder GND->GND and VCC->VCC of consecutive strips. but I didn't get the connection of DIN.

can u please clarify the highlighted connection?

kind regards


陳亮 (author)souravmae2017-10-27

the 1st row dout connect to 2nd row din, the 2nd row dout connect to 3rd row din, etc

souravmae (author)陳亮2017-10-28

thanks for your reply..

Can to please tell me that how to find which one is the DOUT out of the four pins of the LED?

陳亮 (author)souravmae2017-10-29

both dout and din are the middle pin, the led strip originally connected 1st led dout to 2nd led din. if you cut the strip at the middle, just reconnect it with a wire.

souravmae (author)陳亮2017-10-29

please reply ASAP


souravmae (author)陳亮2017-10-26

This is the one which i have found on amazon

faytom (author)2016-12-20


Mohamed- (author)2016-11-08

Hi 陳亮, this project is impressive!.

Can you make this project and send it to me at the cost of your work and components with documentation?

we can do that on Fiverr if you want. please let me know

Kind regards

陳亮 (author)Mohamed-2016-11-08

Hi, thanks for your impression but sorry about I have no spare time to do that. You may follow this instructables to make one yourself.

xingchaow (author)2016-06-24

hello,陳亮.I try to complete your project, but found that uploads the firmware, I can not upload files, use make upload_server and make upload_http command errors. There are other solution? ?

陳亮 (author)xingchaow2016-06-24

hello, can you give further error detail? cannot find nodemcu-uploader? python run error? or hang while upload?

xingchaow (author)陳亮2016-06-27

Thanks for your help, I finished uploading firmware and http and server files in my windows system, I found that because the windows system does not support named http / file, so after uploading the file I need to change the file name, I use is ESPlorer tools. Over time I will write a step to share my Instructable.

陳亮 (author)xingchaow2016-08-20

I have just finished a WebSocket version LED Matrix, I think you may interested on it:

陳亮 (author)xingchaow2016-08-08

I have just finished the NodeMCU WebIDE instructables, please take a look:

陳亮 (author)xingchaow2016-06-27

I am looking forward for your instructables!

陳亮 (author)xingchaow2016-06-27

Hi, yes separate http/ folder is the design of nodemcu-httpserver. I am writing a new project call "nodemcu-webide" and will get rip of it.

xingchaow (author)2016-07-12

hello, 陳亮, Did you use nodemcu serial port forwarding? ? Do you have relevant information? I want to try to program using lua, complete wifi to serial data transfer to complete long-distance communication

xingchaow made it! (author)2016-07-05
<br><div id="inner-editor"></div>
hi, I have already completed the preparation of the hardware and software set up, butafter I uploaded the html page opens click interface you do, it does not work, not lightLED, a circuit diagram is based on your offer to build, will how do I to solve. Screenshotshows this. LED using the WS2812, we look forward to your reply
陳亮 (author)xingchaow2016-07-05

and also add "ws2812.init()" and "ws2812.write(string.char(0):rep(180))" to init.lua

xingchaow (author)陳亮2016-07-05

thank you,I done it ,it work.

陳亮 (author)xingchaow2016-07-05

I guess it may caused the NodeMCU ws2812 library update (I also encounter this problem too). The latest update makes WS2812 only works on GPIO02 pin only. And you also need change to change the code from "ws2812.write(4, buffer)" to "ws2812.write(buffer)".

destone28 (author)2016-07-05

Interesting instructable, good luck for the contest! ;-)

Enabl3rs (author)2016-06-26

Hi here,

Very cool project. I have a few questions.

Since this relies on nodemcu, the library for the ws2812, recommends to call initialize first. Isn't that necessary? It does also mention that it will use GPIO2, how do yo get it to work with GPIO5?

If I open led-matrix.html in a browser, it does neither let me choose any colors from the palette nor any dots of the matrix. Is that normal?

Keep up the good work.

Xie xie

陳亮 (author)Enabl3rs2016-06-26

The UI is writen in simple HTML5 code, it only can support in latest broswer version. I have tested it in Safari, Chrome and IE11.

陳亮 (author)Enabl3rs2016-06-26

Hi, Xie Xie. I also found it have a big change on ws2812 library in dev branch. But my code still work at master branch when I write this instructables.
If you are testing on latest dev branch, connect LED strip to GPIO02 and revise the function call to ws2812.write(buffer). And also add ws2812.init() in init.lua

Sarvasv Kulpati (author)2016-06-08

You seem to make really cool projects with the esp8266! Have you tried using the arduino IDE with them? It is much easier for people more accustomed with arduino to use it.

陳亮 (author)Sarvasv Kulpati2016-06-08

hi. Yes, c program is familiar for most people. But I think programming over WiFi is cool too! You can just pick this MINTIA sweet box and your mobile with you, then you can modify your Lua program anywhere and show what you have done to your friend instantly. its cool, right?

SamiulH (author)陳亮2016-06-15

Could you please do an instructable on that? It's kinda hard for beginners to get started with esp8266 and lua.

陳亮 (author)SamiulH2016-06-16

Lua is designed easy to learn, give it a chance.

PedroS126 (author)2016-06-15

Hi. It's possible to use this with ws2812 led's instead of the SK6812?

陳亮 (author)PedroS1262016-06-15

yes and no, both led use same 24bit grb signal sequence but I can only found 3535 size in SK6812. If you do not mind the size, it 100% works. Actually I am using ws2812 library in my program.

PedroS126 (author)陳亮2016-06-16

Thank you very much! I just needed to confirm that you didn't edit any config in the library.
The size isn't an issue, so i'll try to make a ws2812 matrix. Thanks once again.

陳亮 (author)PedroS1262016-06-16

good to see that! I will very happy if you can post an 'I Made it!' here later.

josephchrzempiec (author)2016-06-13

Hello where can i get some of them mint boxes at?

陳亮 (author)josephchrzempiec2016-06-13

try searh MINTIA at amazon or ebay

RafaelB54 (author)2016-06-09


its possible do it with arduino one ? thanks

陳亮 (author)RafaelB542016-06-09

This project require WiFi connection, ESP8266 is the cheapest WiFi solution Ican find. ESP8266 board has MCU itself, you can program it with Arduino IDE, no need add extra Arduino board.

NoseyNick (author)2016-06-07

Interesting! 'course you could do your LEDs LTR then RTL then LTR then RTL, alternating rows going left/right/left/right. Less wiring, and easy enough to fix the pixel order in software... But hey, nicely done, love the container too!

陳亮 (author)NoseyNick2016-06-09

If you like the MINTIA sweet box, you may also like my another project:

陳亮 (author)NoseyNick2016-06-07

hi nick, yes I have tried this arrangement in my previous instructables:

However, the LED strip I used this time have some limitation. The LED strip border width in both sides are not the same, only current arrangement can keep both vertical and horizontal gap of each LED unit at around 3.4mm.

NoseyNick (author)陳亮2016-06-08

Ah I see, makes sense. Thanks!

About This Instructable




Bio: Do it yourself if you cannot buy one!
More by 陳亮:Battery Powered ESP IoTBattery Powered ESP DesignESP32 Photo Clock
Add instructable to: